Before you can tweak your Linux sever to increase performance you first have to measure its system performance. This interview of the editors of <i>Performance Tuning for Linux Servers</i> (IBM Press) discusses the Linux system monitoring tools you should deploy to gather that vital information.
There is no doubt that Linux servers play a pivotal role in many organizations. However, that pivotal role also means that performance is of paramount importance. Depending on how your Linux server is configured and which applications are running, and when, the given workload of one server versus another similar server can be significantly different. In that environment, using the proper measurement tool is imperative.
In Performance Tuning for Linux Servers, the editors, Sandra Johnson, GerritHuizenga, and BadariPulavarty, explain the various technologies available for optimizing Web, file, print, database, and application servers operating under Linux. A sample chapter from that book, System Performance Monitoring, is available from TechRepublic.
In the following interview, the editors take a few minutes to discuss performance tuning techniques, optimization factors, preferred tools, and several soon-to-be-available Linux server performance measuring applications. They're combined expertise could prove extremely useful as you continue to refine the system performance of you Linux boxes.
Title: Performance Tuning for Linux Servers
Author: Edited by Sandra Johnson, GerritHuizenga, and BadariPulavarty
Publisher:International Business Machines Corp
Chapter 16: System Performance Monitoring
ISBN: 013144753X; Published: May 27, 2005; Copyright 2005
[TechRepublic] Optimizing server performance is a common function among the TechRepublic membership, which is primarily composed of information technology professionals working in either administrative or executive capacities. Are the techniques used to tune a Linux server that much different than the techniques used to tune a server running another operating system? Can you discuss the significant differences please?
[Book Editors] In general, the techniques for tuning servers are similar. For example, do a baseline assessment by conducting initial runs, then measuring, analyzing and tuning, and repeating this process until the exit criteria is met. However, the differences are in tools used for measuring or the tuning techniques. For example, sysstat, the /proc file system (procfs), sysctl, and sysfs are valuable Linux tools and configuration commands for Linux performance measurement and tuning. On the other hand, the System Management Interface Tool (SMIT) can be used for performance tuning in AIX.
[TechRepublic] When it comes to optimizing Linux servers, which factors play the most important role? If you could only optimize four factors what would they be?
[Book Editors] The four main areas of focus with the performance team in the IBM Linux Technology Center include the network, disk I/O, file systems and memory. There are many different factors that contribute to performance degradation in these Linux components. For example, the network buffer size may be too large or small, the block size for file systems, or the number of outstanding I/O requests need to be tuned, and the amount of allocated memory may need to be adjusted. These are just a small sub-set of the types of performance issues that limit the optimal execution of server applications.
[TechRepublic] The book mentions several Linux-based performance management tools, which tool do you recommend overwhelminglyâ€"the one tool no Linux-server system administrator can do without? Why?
[Book Editors] I recommend sar, which is part of the sysstat package. sar can be used to collect a wealth of information on system activity, some of which includes CPU utilization, memory usage, paging rates, rate of context switches and interrupts, and network and buffer usage. This tool can be used to pinpoint a potential bottleneck, and then as a tool which focuses on a specific component, i.e., iostat for I/O, can be used for further investigation and analysis.
[TechRepublic] What performance optimization features for Linux servers do you see coming in the near future? Is there a particularly noteworthy management tool or kernel change pending that will increase overall server performance?
[Book Editors] There are some potential changes related to file systems and I/O that could result in performance optimizations. For example, existing patches that facilitate multiple block allocation, delayed allocation and extent-based layout are candidates for inclusion in the Linux base. These options are associated with the ext3 file system, which is one of the most heavily used Linux file systems. In addition, pluggable and per disk I/O schedulers are already in the mainline code, and they may be considered for inclusion in Red Hat, SUSE and other distributions. This would enable the use of separate I/O schedulers for a database, I/O, etc., which could optimize performance for some applications.