LDP/LDP/guide/docbook/Tuning-Linux/tuning_linux.sgml

254 lines
7.5 KiB
Plaintext

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
<!entity disk SYSTEM "disk.sgml">
<!entity network SYSTEM "network.sgml">
<!entity conventions SYSTEM "conventions.sgml">
<!entity kernel SYSTEM "kernel.sgml">
<!entity fundamentals SYSTEM "fundamentals.sgml">
<!entity apps SYSTEM "apps.sgml">
<!entity measurement SYSTEM "measurement.sgml">
]>
<book id="index">
<!-- Header -->
<bookinfo>
<!-- title of HOWTO, include the word HOWTO -->
<title>Tuning Linux</title>
<author>
<firstname>Mark</firstname>
<surname>Komarinski</surname>
<affiliation>
<address>
<email>mkomarinski@wayga.org</email>
</address>
</affiliation>
</author>
<author>
<firstname>Michael</firstname>
<othername>C.</othername>
<surname>Jett</surname>
</author>
<revhistory>
<revision>
<revnumber>0.30</revnumber>
<date>2001-4-17</date>
<authorinitials>mfk</authorinitials>
<revremark>
Outline stuff from Michael C. Jett
</revremark>
</revision>
<revision>
<revnumber>0.20</revnumber>
<date>2001-3-27</date>
<authorinitials>mfk</authorinitials>
<revremark>
Created network and disk chapters. Need more info!
</revremark>
</revision>
<revision>
<revnumber>0.10</revnumber>
<date>2001-2-28</date>
<authorinitials>mfk</authorinitials>
<revremark>
Second pass. Time to add some data.
</revremark>
</revision>
<revision>
<revnumber>0.01</revnumber>
<date>2001-01-25</date>
<authorinitials>mfk</authorinitials>
<revremark>
First pass for the book. Define the outline.
</revremark>
</revision>
</revhistory>
<abstract>
<indexterm>
<primary>introduction</primary>
</indexterm>
<para>
This work covers tuning Linux and the hardware it runs on
for the best efficiency. This can make existing hardware
run faster, or give network architechts information to make
informed decisions about servers and their requirements.
</para>
</abstract>
</bookinfo>
<preface id="foreward">
<title>Foreward</title>
<indexterm>
<primary>Foreward</primary>
</indexterm>
<para>
The idea of a book on tuning Linux for performance is pretty much
a moving target. Linux makes advances at a rapid pace, and things
change often. Since its introduction in 1991, Linux has gone
from a state where it could not compile itself (and barely boot)
into a system that can take up to three full CD-ROMs to install
much of the software. It rivals operating systems twice its
age in terms of performance and stability. Its complete
heritage may never be known because of the thousands of people
around the world who have contributed patches, drivers, and
enhancements to make Linux better.
</para>
<para>
This advancement means that some portions of Linux
can literally turn on a dime. The Linux 2.0 kernel used
a program called ipfwadm to administer its firewall settings.
When 2.2 came out, the program was ipchains, and used completely
different concepts than ipfwadm. The 2.4 kernel uses iptables,
which itself is different from its predecessors. This means
that Linux has little baggage holding it back when it comes
to backwards compatability. Some open source applications
need no changes, most may need to be recompiled, and some
require programming changes that can be done by any
programmer. The idea of backwards compatability in Linux
is a foreign concept.
</para>
<para>
But tuning Linux is more than just tuning what you have. It
is looking at your requirements, evaluating the technology that
can solve that requirement, and going with the balance between
cost and performance. Not everyone can afford the best cards, but
the difference between good and poor performance can be a very small
cost as compared to the overall system cost.
</para>
</preface>
<preface id="copyright">
<title>Copyright</title>
<para>
This document is Copyright (c) 2001-2016 Mark F. Komarinski
<email>mkomarinski@wayga.org</email>.
</para>
<para>
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,
Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover
Texts, and with no Back-Cover Texts. A copy of the license is available at https://www.gnu.org/licenses/fdl.html.
</para>
</preface>
<!-- Section1: intro -->
<chapter id="intro">
<title>Introduction</title>
<indexterm>
<primary>introduction</primary>
</indexterm>
<para>
This book is arranged into a few major sections. This will
allow you to read the sections of the book that apply to
the kind of tuning you want to do.
</para>
<itemizedlist>
<listitem>
<para>
Fundamentals
</para>
<blockquote>
<para>
What is the nature of performance tuning? How should you go about
looking at an entire system in terms of improving the services it
provides to others? What common strategies are available? We will go
through the basics of performance tuning in detail for this chapter.
</para>
</blockquote>
</listitem>
<listitem>
<para>
Measuring performance
</para>
<blockquote>
<para>
This chapter will deal with measuring performance from a system on
various levels, outling common tools bundled with your Linux system or
available on the Internet. Once you know how fast your system is in
its current state, you have a baseline to measure against.
</para>
</blockquote>
</listitem>
<listitem>
<para>
Disk
</para>
<blockquote>
<para>
This section will compare various kinds of permanent storage. We'll
take a look at hard drives, how to write to them, and any tradeoffs
between reliability and raw speed.
</para>
</blockquote>
</listitem>
<listitem>
<para>
Kernel
</para>
<blockquote>
<para>
This section will cover some of the popular kernels that
are available and how you can use the built in tools
to tune it for maximum performance. We'll cover things
like the /proc directory,
<indexterm>
<primary>sysctl</primary>
</indexterm>
sysctl, and recompiling kernels.
</para>
</blockquote>
</listitem>
<listitem>
<para>
Network
</para>
<blockquote>
<para>
There are a variety of networking schemes, and one will fit your need.
Even once you have chosen your networking method, there are ways of
enhancing it for even better performance.
</para>
</blockquote>
</listitem>
<listitem>
<para>
Applications
</para>
<blockquote>
<para>
This section is not strictly about Linux, but poorly
configured applications can quickly erode any advantages
from other tuning methods. We will take a look at
tuning various web servers, database applications, and
cluster software.
</para>
</blockquote>
</listitem>
</itemizedlist>
&conventions;
</chapter>
&fundamentals;
&measurement;
&disk;
&network;
&kernel;
&apps;
</book>