Windows - Webszerver teljesítményének optimalizálása

A webszerver üzemeltetés egyik sarkalatos pontja a kliensek kiszolgálásának folyamatossága és gyorsasága. Általában érvényes, hogy minél erősebb a hardver, annál jobb a kiszolgáló teljesítménye, de lehet akármilyen drága és gyors gépet venni, ha a Windows szoftveres beállításai lefojtják a teljesítményt. Az alábbiakban található 9 összetevő ellenőrzésével és szükség szerinti módosításával sokat tehetünk a gyorsabb kiszolgálás érdekében.
Szükségtelen szolgáltatások leállítása
A Windows számos szolgáltatást futtat, amik nagy területet fednek le a telnet kiszolgálástól kezdve a faxon át a DHCP-ig. Természetesen az inaktív, de a háttérben figyelő minden program igényel erőforrásokat és nagy részükre egy webszerveren semmi szükség.
Indítsuk el a Vezérlőpult > Felügyeleti eszközök > Szolgáltatások (Control Panel > Administrative Tools > Services) konzolt. Kattintsunk az "Állapot" ("Status") oszlopfejlécre az adatok sorbarendezése érdekében. Elvileg most a lista végén vannak összegyűjtve a futó szolgáltatások. Közülük a következőket lehet letiltani egy dedikált webszerveren:
  • Alerter
  • ClipBook
  • Computer Browser
  • DHCP Client
  • DHCP Server
  • Fax Service
  • File Replication
  • INfrared Monitor
  • Internet Connection Sharing
  • Messenger
  • NetMeeting Remote Desktop Sharing
  • Network DDE
  • Network DDE DSDM
  • NWLink NetBIOS
  • NWLink IPX/SPX
  • Print Spooler
  • TCP/IP NetBIOS Helper Service
  • Telephony
  • Telnet
  • Uninterruptible Power Supply
Minden esetben vegyük figyelembe, hogy az adott szolgáltatás leállításával más szolgáltatások is befejezhetik működésüket.
Átvitel optimalizálása hálózati alkalmazások számára
Alapértelmezésben a Windows 2000 Server minden verziója ezzel a beállítással konfigurálja a hálózati kapcsolatokat. Így jó esetben csak ellenőrizni kell, hogy egy alkalmazás nem állította-e el. Nyissuk meg a Vezérlőpult > Hálózati és telefonos kapcsolat (Control Panel > Network and Dial-up Connections) mappát. Kattintsunk a "Helyi kapcsolat"-ra ("Local Area Connection") a jobboldali egérgombbal és válasszuk a "Tulajdonságok" ("Properties") menüt. Lépjünk a "Fájl- és nyomtatómegosztás Microsoft Networkhöz" ("File and Printer Sharing for Microsoft Networks") elemre, majd a "Tulajdonságok" ("Properties") menüre. Itt láthatók a kiszolgáló szolgáltatás fő beállításai. Ellenőrizzük, hogy az "Átvitel optimalizálása hálózati alkalmazásokra" ("Maximum data throughput for network applications") rádiógomb aktív-e.
Erőforrások optimalizálása háttérszolgáltatásokra
A Windows alapvetően kétfelé osztja az erőforrásokat: előtérben futó alkalmazásokra és háttérszolgáltatásokra. Webkiszolgálóknál az előbbire nincs szükség. Az előző beállításokhoz hasonlóan a Windows 2000 Server verziókban alapértelmezésben helyes beállítás szerepel, csak ellenőriznünk kell. Keressük meg a következő helyet: Vezérlőpult > Rendszer > Speciális > Teljesítménybeállítások (Control Panel > System > Advanced > Performance Options). A megjelenő ablakban a "Háttérszolgáltatásokra" ("Background services") rádiógombnak kell bekapcsolva lenni.
Naplózások csökkentése
A különböző események naplózása sokszor nyer kiemelt fontosságot, ezért fontos, hogy megfelelő arányt állítsunk fel a csökkentés során. Igaz az is, hogy minél részletesebb a naplózás, annál könnyebb felderíteni az esetleges hibákat és az is, hogy ez egyenes arányban csökkenti a teljesítményt. Persze, ha nincs, aki feldolgozza a rögzített eredményt, akkor teljesen felesleges rögzíteni. Nézzük meg, hogy milyen lehetőségeink vannak:
Nyissuk meg a Felügyeleti eszközök > Internet szolgáltatáskezelő (Administrative Tools > Internet Services Manager) MMC konzolt és válasszuk ki a kérdéses webhelyet. Kattintsunk rá a jobboldali egérgombbal, majd lépjünk a "Tulajdonságok" ("Properties") menüre. A megjelenő ablak "Webhely" ("Web Site") oldalának alsó szekciójában letiltható a teljes naplózás a "Naplózás engedélyezése" ("Enable Logging") felirat előtti jelölőnégyzet kikapcsolásával.
Köztes megoldás, ha nem tiltjuk le, csak csökkentjük a rögzítendő adatok mennyiségét. Ehhez kattintsunk a "Tulajdonságok" ("Properties") gombra és lépjünk a "További tulajdonságok" ("Extended Properties") oldalra. Az oldal csak a "W3C bővített naplófájl formátum" ("W3C Extended Log File Format") esetében jelenik meg. Itt egyszerűen jelölőnégyzetek ki- és bekapcsolásával lehet szabályozni, hogy milyen adatok kerüljenek be a naplóállományba. Legtöbb esetben elegendő, ha meghagyjuk a következőket: "Dátum (date)" ("Date (date)"), "Időpont (time)" ("Time (time"), "Az ügyfél IP-címe (c-ip)" ("Client IP Address (c-ip)"), "Kiszolgálóport (s-port)" ("Server Port (s-port)"), "Módszer (cs-method)" ("Method (cs-method)").
Fentiek a teljes webhelyre vonatkoztak, azonban naplózni a virtuális könyvtárak, könyvtárak és fájlok szintjén is lehet az eléréseket. Kattintsunk például az egyik virtuális könyvtárral és nyissuk meg a tulajdonság lapját. Ha töröljük a "Látogatások naplózása" ("Enable Loging") jelölőnégyzetet, akkor megszűnik a bejegyzések létrehozása minden egyes alkalommal, amikor valaki eléri a tartalmát.
Teljesítményhangolás a látogatások számának megadásával
Nyissuk meg a webhely tulajdonságlapját és kattintsunk a "Teljesítmény" ("Performance") fülre. Az ablak felső részén egy csúszkával lehet szabályozni, hogy naponta hány látogatás várható. Milyen jelentőséggel bír ez a beállítás? A Windows 2000 ehhez igazítja a memóriafoglalásokat. Ha több látogatót állítunk be, akkor több memóriát kap a webszolgáltatás. Nem helyes úgy gondolkodni, hogy akkor állítsunk be minél nagyobb értéket, úgyis sok RAM van a gépben, mert a teljesítmény akkor a legjobb, ha a memóriafoglalás és a látogatási szám közel azonos szinten van. Ekkor egy dinamikus után állítás történik és felgyorsul a szolgáltatás.
Sávszélesség szabályozás
Több webhely használata esetén szabályozzuk a maximálisan igénybe vehető sávszélességet. Így nem fordulhat elő, hogy az egyik webhely túlzott terhelése miatt a másik elérhetetlen lesz. Szintén a "Teljesítmény" ("Performance") oldalon végezhetjük el a szükséges beállításokat. Aktivizáljuk a "Sávszélesség szabályozásának engedélyezése" ("Enable bandwidth throttling") jelölőnégyzetet és a "Maximális hálózathasználat" ("Maximum network use") mezőbe írjuk be a megfelelő értéket, ami a rendelkezésre álló fizikai sávszélesség osztva a webhelyek számával. Természetesen aszimmetrikus értékeket is alkalmazhatunk, ha az egyik webhely jobban látogatott vagy kiemelt szerepet játszik.
Processzorhasználat szabályozása
Szintén több webhely esetén a processzorhasználatot ugyanúgy érdemes szabályozni, mint a sávszélesség használatot. Ehhez kapcsoljuk be a "Folyamatszabályozás engedélyezése" ("Enable process throttling") jelölőnégyzetet és a 100%-os értéket osszuk el a webhelyek számával. A beállításokra ugyanaz érvényes, mint az előző esetben.
Egyidejű kapcsolatok számának korlátozása
Minél többen látogatnak egyidőben egy adott webhelyre, annál több erőforrásra van szüksége a kiszolgálónak. Ez akkor kezd problémát okozni, ha elfogy az összes erőforrás. Ilyenkor ugyanis előfordulhat, hogy nemhogy az új kapcsolatokat, de a régieket sem tudja kezelni. Jó lenne tudni, hogy mi az a látogatási szám, ami még kiszolgálható egyidőben. Ezt azonban az összes szóba jöhető körülmény befolyásolja: hardver, szoftver, sávszélesség, a weboldalak tartalma, stb. Igazából csak találgatni lehet. Ha azt tapasztaljuk, hogy látogatási csúcsidőszakban nagyon lelassul, esetleg teljesen megáll a webszerver, akkor a naplófájlokból próbáljuk meg hozzávetőlegesen meghatározni a látogatási számot. Lépjünk a webhely tulajdonságlapjának "Webhely" ("Web Site") oldalára és a "Kapcsolatok" ("Connections") szekcióban aktivizáljuk a "Legfeljebb" ("Limited To") rádiógombot, végül írjunk be a mellette lévő mezőbe a lelassulást okozó kapcsolatszámnál kisebb értéket. Szükség esetén csökkentsük tovább a számot.
HTTP Keep-Alive engedélyezése
Ugyanebben a szekcióban ellenőrizzük a "HTTP Keep-Alive engedélyezése" ("HTTP Keep-Alives Enabled") jelölőnégyzet bekapcsolt állapotát. Így az egyszer már létrehozott kapcsolat nem bontódik a lekérdezések során, ami csökkenti a kiszolgáló és a kliens közti tényleges kommunikáció idejét illetve adatmennyiségét.