Server Tuning for High Performance
Years of maintaining a stable platform with only minor tuning issues can lull you into a false sense of security. A few months ago, I was involved in a change of server platforms of the external servers at WRQ. Looking at it in retrospect, it was a great learning experience that showed how years of maintaining a stable platform with only minor tuning issues can lull you into a false sense of security-particularly when you change both server hardware and software. What I'd like to discuss this month are a few observations I've gained from this experience, and hopefully shed some light on a few approaches you can take when optimizing server performance. This column is definitely going to show some Unix bias, but fundamentally, the same tuning issues apply to any Web platform.s
sI tend to see tuning as being divided into four categories: CPU usage, disk I/O, memory utilization, and network performance. In reality, many times a certain tuning issue can span multiple categories, but if you tend to analyze your server as four distinct processes, you will tend to find more potential areas for improvement than if you had viewed the server as one system. Let's look at some of the potential tuning issues you face when taking this approach.s Years of maintaining a stable platform with only minor tuning issues can lull you into a false sense of security.ssA few months ago, I was involved in a change of server platforms of the external servers at WRQ.
sI find it useful, when tuning, to try to get a baseline measurement of these four parameters over the course of a week. This gives me an idea of when peak load times occur, and an understanding of what resources are being used by the various processes on the server. You will find baseline readings to be particularly useful as a comparison tool when your server starts misbehaving. Some Web administrators tend to focus solely on HTTP server log files for baseline measurements.s
sWhile HTTP server logs can provide a great deal of information, they are only a part of the total picture. Most platforms have system accounting and performance monitoring utilities that can log CPU, disk, and memory activity. Although these programs can themselves alter the accuracy of the readings, they are very useful. Other tools, such as netstat, should be employed to gain additional information for snapshots of network performance.