Content area
Full Text
Everywhere you look someone is trying to sell you a Linux-- based solution, touting some superior capability or other inherent attribute of this popular open-source operating system. It is claimed that Linux is more robust, more secure and more efficient in its use of hardware resources compared with the market leader in Intelbased systems, Microsoft Windows NT. That's all fine and good, but how do you know Linux is using your hardware to its fullest? Here are tips on manipulating some of Linux's performance-tuning parameters to make the system scream.
I/O Tuning
You'll face two types of performance bottlenecks when designing a system: input/output and program execution. We'll concentrate on I/O performance because it is the area most commonly addressed by IT managers and administrators. Most improvements in the arena of program execution must be discovered and implemented by the programmer, not the IT department. (It is useful, however, to know when your CPU is taxed; see "Tweaks and Hints" on page 164 for more information on tracking CPU usage.)
If you're running Linux as a Web server or a file server, your tuning priorities are going to be different than if you're running it as a desktop. On a server, you tend to maximize speed and responsiveness at the cost of "space" (RAM and disk space). While the Linux desktop market does exist, maximizing Linux's use as a server is our goal here.
Network Settings
Most tunable values in the Linux kernel are found under the /proc directory of your file system. In the domain of network tuning, there are many tumbles, and you should leave most of them alone. In /proc/ sys/net, especially the subdirectories ipv4 and core, there are a number of files that, when read, reveal current kernel networking values and, when written to, let you change those networking values. (These files are poorly documented in the file Documentation/ networking/ip-sysctl.tv in the Linux kernel source-code distribution.) If you pose the question, "How do I tune Linux's TCP/IP network stack?" to the Linux kernel development mailing list, you'll be told you should leave it alone. The default values are intended to provide the best performance in as many cases as possible. They are tunable to provide support for odd cases when dealing...