IBM00.qxd
3/22/2006
1:06 PM
Page xvii
Elõszó A (nyílt forráskódú) Linux operációs rendszernek hasznára vált a kis hardverigény, a stabilitás és a folyamatos fejlesztés. A Linux sok helyen webkiszolgálóként üzemel. Sok esetben az olyan vállalati szolgáltatásokat, mint az elektronikus levelezés, a tûzfal, a helyettes kiszolgáló (proxy), az átjáró, az adatbázisok, az alkalmazások, a fájlkiszolgáló, a nyomtatás stb. is Linux segítségével bonyolítják. A Linux mára a nagyteljesítményû vállalati kiszolgálók versenyképes operációs rendszerévé lépett elõ. Nagy Wall Street-i cégek, filmgyártók és más vállalatok is kezdenek érdeklõdni a Linux iránt. Minél több kiszolgálót állítanak csatasorba, annál kritikusabbá válik azok teljesítménye a teljes rendszerre nézve, ez pedig érinti az összes felhasználót. Bár a problémát a kiszolgáló cseréjével is megoldhatjuk, sok esetben célszerûbb csak azokhoz az elemekhez nyúlni, amelyek valóban javításra szorulnak. A gyenge teljesítményért gyakran egyetlen alrendszer, egy nem megfelelõen beállított operációs rendszer vagy egy rosszul beállított alkalmazás szûk keresztmetszete a felelõs. A teljesítmény fokozásának kulcsa a rendelkezésre álló hardver- és szoftverbeállítások ismeretében, a teljesítménymérõ eszközök használatának elsajátításában és az ezek használata során kapott eredmények elemzésében rejlik. A könyv során az Olvasó elsajátíthatja a Linux kiszolgálók teljesítményének fokozásához szükséges tudást és ismereteket. A könyv több olyan fejezetet is tartalmaz, amelyeket gyakorló Linux-felhasználók írtak, így az õ tapasztalataikon keresztül ismerhetjük meg a linuxos teljesítményfigyelés, kiértékelés és mérés, elemzés és finomhangolás rejtelmeit. Kitérünk arra is, hogyan hozhatjuk ki a legtöbbet Intel alapú hardveren és Linux operációs rendszeren futó üzleti kiszolgálóinkból.
IBM00.qxd
xviii
3/22/2006
1:06 PM
Page xviii
Linux kiszolgálók teljesítményének fokozása
A könyv egyszerû módon és fokozatosan vezet be a teljesítményfokozás világába. A Linux rendszermag bemutatása után a Linux kiszolgálókkal, a teljesítményfigyelõ eszközökkel, majd a teljesítményjavító megoldásokkal foglalkozunk. Ezek után a Linux kiszolgálók teljesítményjellemzésével folytatjuk, amit olyan példák követnek, amelyek megoldásait számos helyzetben felhasználhatjuk. A könyv példáiban két Linux-kiadással találkozunk: a Red Hat Enterprise Linux és a Novel SUSE Linux Enterprise Server változatokkal. Ezen kívül feltételezzük, hogy a kiszolgáló Intel alapú hardverre épül, mivel a Linux-közösségen belül ez a legnépszerûbb. A Linux teljesítményének fokozása más rendszerekben is hasonlóan történik. A kiszolgálóalkalmazások között szerepel egy webkiszolgáló, egy fájl- és nyomtatókiszolgáló, egy adatbázis-kiszolgáló, egy hálózatkezelõ kiszolgáló és egy webalkalmazás-kiszolgáló. A könyv anyaga a Linux 2.4-es, 2.5-ös és 2.6-os rendszermag-változatain alapul. A könyv öt részbõl áll: Linux – áttekintés, Teljesítményelemzõ eszközök, Rendszerhangolás, A Linux kiszolgálóalkalmazások teljesítményjellemzése és Hangolási esettanulmányok. • Az elsõ részben a Linux telepítésérõl, a Linux rendszermagról és a kiszolgáló rendszerekrõl kapunk áttekintést. • A második rész részletesen foglalkozik a teljesítményelemzõ eszközök három csoportjával, amelyek a következõ feladatokat látják el: rendszerteljesítmény-figyelés, rendszernyomkövetés és mérés. • A harmadik részben a hangolás alapelveivel és a lehetséges stratégiákkal foglalkozunk, emellett kitérünk az ütemezõ, a memória, az I/O, a fájlrendszer, a hálózat és a kód teljesítményének fokozására is. • A negyedik rész a kiszolgálóalkalmazások teljesítményjellemzõit tárgyalja, beleértve a teljesítményt befolyásoló tényezõket is. Ennek kapcsán web-, fájl-, adatbázis- és alkalmazáskiszolgálókat vizsgálunk meg közelebbrõl. • Az ötödik részben példákon keresztül követhetjük nyomon, hogyan hasznosíthatjuk az eddig tanultakat különféle helyzetek megoldására. Ütemezéssel, I/O-val, fájlrendszerhangolással, valamint hálózati és kereskedelmi terheléssel kapcsolatos esettanulmányokkal is találkozunk. • A könyvben helyet kapott egy függelék is, ahol felsoroljuk a rendszermag számos hangolható paraméterét, és kitérünk a sysctl, a /pros és a sysfs felületek használatára.
IBM00.qxd
3/22/2006
1:06 PM
Page xix
Linux kiszolgálók teljesítményének fokozása
Köszönetnyilvánítás Ezt a könyvet azoknak a fejlesztõknek, rendszergazdáknak és felhasználóknak ajánlom, akik számtalan órát töltöttek el a Linux teljesítményének elemzésével és hangolásával. A könyv hosszú hónapok munkájának gyümölcse, és számos embernek tartozom köszönettel azért, hogy végül elkészülhetett. A könyv megírásának ötlete 2002 õszén született, amikor Bill Hartner, Duc Vianney, Peter Wong és én számtalan „mi lenne, ha” típusú kérdést tettünk fel különféle linuxos teljesítményfokozással foglalkozó cikkek kapcsán. Néhány héttel késõbb, amikor Bill kapcsolatba lépett a Prentice Hallnál dolgozó Mark Taubbal, és felvázolta neki a tervezett könyvet, az ötlet egyik pillanatról a másikra valósággá vált. Hálás köszönet Billnek, Ducnak és Peternek az elsõ találkozóra hozott ötleteikért. Szeretnék köszönetet mondani Mark Taubnak is, aki hozzásegített bennünket ötleteink megvalósulásához. A munkában részt vevõ szerzõk, társszerzõk és szerkesztõk összeszedése eseményekben igen gazdag idõszak volt. Köszönettel tartozom minden fejezet szerzõjének, amiért elfogadták a felkérést, és kitartóan dolgoztak a könyv anyagán. A társszerkesztõk – Gerrit Huizenga és Badari Pulavarty – nevét szeretném külön kiemelni, mivel a sorozatos változások ellenére fáradhatatlanul kitartottak. Örökké hálás leszek Christine Lorenznek, aki a kötelezõ adagját túlteljesítve végezte a szerkesztést, tartotta a kapcsolatot a szerzõkkel, a szerkesztõkkel és a kiadóval, és teljes egészében magára vette a munka vezetésének terhét. A számos különbözõ emberrel való együttmûködés nagy kihívást jelentett, de Chris hatalmas állhatatosságról tett tanúbizonyságot. Végül szeretnék köszönetet mondani a mentoromnak, Joan Mitchellnek, amiért folyamatosan megosztotta velem gondolatait és tapasztalatait, miközben a könyvön dolgoztam.
Dr. Sandra K. Johnson
xix
IBM00.qxd
xx
3/22/2006
1:06 PM
Page xx
Linux kiszolgálók teljesítményének fokozása
A szerkesztõkrõl Dr. Sandra K. Johnson rangidõs mûszaki szakember, több mint 16 évnyi tapasztalattal. Számos különféle területtel foglalkozott, többek között gyorsítótár-protokollok, memóriaalrendszerek, párhuzamos I/O alrendszerek, Java kiszolgálók és Linux rendszerek terhelésjellemzésével és teljesítményelemzésével. Korábban teljesítménymérnökként dolgozott az IBM Linux Technology Centerben, jelenleg pedig az IBM Systems and Technology Group globális kis- és középméretû vállalatokért felelõs mûszaki igazgatója. Gerrit Huizenge szoftvermérnökként és tervezõként dolgozik a Beavertonban (Oregon) mûködõ IBM Linux Technology Centerben. Gerrit húsz éve foglalkozik olyan operációs rendszeri szolgáltatások építésével, tervezésével és megvalósításával, amelyeknél elsõrendû szempont a teljesítmény, a méretezhetõség, a szabványok betartása és a biztonság. Mielõtt az IBM-hez került, Gerrit volt a Sequent Computer Systems, Inc. operációs rendszerekért felelõs mûszaki igazgatója. Badari Pulavarty rangidõs mérnökként erõsíti az IBM csapatát az oregoni Beavertonban. Badari a UNIX operációs rendszerek fejlesztésének területén 15 éves tapasztalattal rendelkezik. Érdeklõdésének középpontjában a Linux VM, az I/O, a fájlrendszerek és a tároló alrendszerek teljesítményével kapcsolatos kérdések állnak.
A szerzõkrõl Vaijayanthimala Anand gyakorlott szoftvermérnök, hálózati protokollok és illesztõprogramok fejlesztésében és tervezésében szerzett többévnyi tapasztalattal. Az elmúlt három évben a Linux rendszermag teljesítményével foglalkozott. A houstoni egyetemen szerzett diplomát informatikából. Steve Best a texasi Austinben mûködõ IBM Linux Technology Center alkalmazottja. Jelenleg egy naplózó Linux-fájlrendszeren dolgozik. Steve otthonosan mozog az operációs rendszerek fejlesztésének számos területén (elsõsorban fájlrendszerek, nemzetközivé tétel és biztonság). Dr. Edward G. Bradford gyakorlott mérnök. Ed több mint 15 éve foglalkozik UNIX operációs rendszerek fejlesztésével és kezelésével. Jelenleg a Linux teljesítményének más rendszerekkel való összehasonlításán dolgozik. Mark Brown több mint húsz éves UNIX- és Linux-tapasztalatot mondhat magáénak; többek között tagja a GNU C Library Steering Committe csapatának. Elsõsorban operációs
IBM00.qxd
3/22/2006
1:06 PM
Page xxi
Linux kiszolgálók teljesítményének fokozása rendszerek API és ABI felületeinek leírásával, illetve a C futásidejû könyvtárral kapcsolatos kérdésekkel foglalkozik. Mingming Cao Linux rendszermagfejlesztõ az oregoni Beavertonban mûködõ IBM Linux Technology Centerben. Leginkább folyamatok között kapcsolattartással, fájlrendszerekkel és I/O-val foglalkozik. Ruth Forester teljesítménymérnök a beavertoni IBM Technology Centerben. 15 éve foglalkozik a UNIX és az adatbázisok teljesítményével. Részt vett a TPCD kifejlesztésében, és hét évig szolgálta a TPC-t. Dolgozott az alkalmazások teljesítményén és a teljesítmény L1L2-L3 gyorsítótárakra gyakorolt hatásán. Steven French az IBM Linux Technology Centerének fájlrendszerekért felelõs mérnöke, aki több mint 15 éve foglalkozik hálózati programok tervezésével és megvalósításával. Õ a Linux rendszermagban lévõ CIFS fájlrendszer szerzõje, tagja a Samba csoportnak, és õ a Storage Networking Industry Association elnöke. Dominique Heger elsõsorban operációs rendszerek teljesítményével, teljesítménymodellezéssel, algoritmusokkal, adatszerkezetekkel és I/O-méretezéssel foglalkozik. Dolgozott az IBM-nek, a Hewlett-Packardnak és a Unisysnek. Információs rendszerekbõl szerzett diplomát. Michael Hohnbaum szoftvermérnök a beavertoni IBM Technology Centerben. Az elmúlt húsz évben nagy SMP rendszerek operációs rendszereivel foglalkozott. Michael jelenleg egy nyílt forráskódú virtuális kiszolgálón dolgozik. Dr. Khoa Huynh rangidõs szoftvermérnökként dolgozik a texasi Austinban üzemelõ IBM Linux Technology Centerben. Több mint 15 éve foglalkozik az operációs rendszerek különbözõ területeivel, a teljesítménytõl a rendszermagon és a hálózatkezelésen keresztül egészen a szolgáltatásig és a terméktámogatásig. Érdeklõdésének középpontjában a rendszertervezés, a teljesítményértékelés és a szoftverminõség állnak. Dr. Wilfred C. Jamison szoftvermérnök jelenleg az IBM SOA és On Demand Solutions termékein dolgozik. A WebSphere teljesítményfokozásának szakértõje, számos cikke jelent meg a teljesítménykezelés, a Java teljesítményfokozás és a teljesítményjavítás memóriakezelési vonatkozásaival kapcsolatosan. Korábban õ vezette a WebSphere Performance for the Linux Platform elnevezésû csoportot, amely a WebSphere alkalmazáskiszolgáló teljesítményét vizsgálta a különbözõ rendszerekben (IA32, S390, POWER4). Hanna Lider szoftvermérnök a beavertoni IBM Linux Technology Centerben. Tíz éve foglalkozik a UNIX-szal. Nemzetközi és helyi Linux rendszermag-konferenciákon és gyûléseken tart elõadásokat. Jelenleg az IBM xSeries rendszereinek Linux-támogatásán dolgozik.
xxi
IBM00.qxd
xxii
3/22/2006
1:06 PM
Page xxii
Linux kiszolgálók teljesítményének fokozása
Chris McDermott szoftvermérnök a beavertoni IBM Linux Technology Centerben. Tizenöt éves tapasztalattal rendelkezik a Linux/UNIX operációs rendszereket illetõen. Jelenleg a Linux rendszermag és a kapcsolódó szolgáltatások xSeries hardveren történõ életre keltésén dolgozik. Eric Nahum 1996 óta tagja az IBM kutatási csoportjának. Informatikából doktorált a massachusettsi egyetemen, és 14 évet töltött különféle teljesítményhez kapcsolódó fejlesztésekkel. Steven Pratt 15 éve áll az IBM alkalmazásában. Informatikadiplomáját a Worcester Polytechnic Institute falain belül szerezte. Kötetkezeléssel és fájlrendszerekkel 1994 óta foglalkozik, és 1998 óta fejleszt Linux rendszerre. Részt vett az OS/2 HPFS és JFP fájlrendszereinek kifejlesztésében, és õ volt az OS/2 LVM és a Linux EVMS (Enterprise Volume Management System) egyik vezetõ tervezõje. Az elmúlt három évben a fájl- és lemezszintû I/O-teljesítménnyel foglalkozott. Chandra Seetharaman operációsrendszer-mérnök, aki több mint egy évtizede foglalkozik UNIX/Linux operációs rendszerekkel. Jelenleg a Linux CKRM (Class Based Kernel Resource Management; osztály alapú rendszermagerõforrás-kezelés) fejlesztése tölti ki az idejét. Az IBM Beavertonban (Oregon állam) lévõ irodájában dolgozik. Narasimha Sharoff szoftvermérnök az IBM beavertoni központjában. Pillanatnyilag linuxos rendszerkezelési feladatokon dolgozik. Diplomáit az indiai Mysore és az OGI/OHSU egyetemeken szerezte. Nivedita Singhvi szoftvermérnök a beavertoni IBM Linux Technology Centerben. Leginkább linuxos hálózatkezeléssel és I/O-fejlesztéssel szeret foglalkozni. Jelenleg virtualizációs megoldásokon dolgozik. John Tran 2000 óta tevékenykedik szoftverfejlesztõként az IBM torontói laboratóriumában. Fõ területe a DB2 teljesítménye Linuxon. Dr. Duc J. Vianney rangidõs rendszermérnök, több mint 25 évnyi teljesítménykiértékelési és -mérési tapasztalattal a háta mögött. A Harris Computer Systems, majd a Gould Computer Systems után 1989-ben csatlakozott az IBM-hez, hogy a DOS, az OS/2, a WIN-OS/2 és a Linux operációs rendszereken dolgozzon. Jelenleg a Power alapú Linux-rendszerek teljesítménnyel kapcsolatos kérdéseivel foglalkozik. Peter Wai Yee Wong rangidõs szoftvermérnök az austini IBM Linux Technology Centerben. Tíz éve foglalkozik teljesítményelemzéssel az adatbázisok és a grafika területén. Peter informatikából doktorált az ohiói állami egyetemen.