Bármely webszerver fontos funkciója az a képesség, hogy korlátozza a CPU-erőforrások egy adott webhelyen történő használatát, különben egy webhely monopolizálhatja a CPU-erőforrásokat, ami elfogadhatatlan lehet, különösen az olyan webtárhely-kiszolgálók esetében, amelyek erőforrásokat osztanak meg több ügyfél között, különböző webhelyekkel. az IIS (Internetes információs szolgáltatások) 7.0 és a korábbi verziókban lehetővé vált a webes alkalmazások általi CPU-használat figyelése, és néhány percig leválasztható az alkalmazáskészlet, amely meghaladta a megadott korlátot. Az egyes alkalmazáskészletekhez rendelkezésre álló CPU-erőforrások felhasználásának teljes ellenőrzése csak a 2006-ban jelent meg IIS 8.0 (Windows Server 2012 vagy újabb). Ezt a funkciót hívják CPU fojtószelep és az alkalmazáskészlet ideiglenes leállítása helyett, amely túl agresszív a processzor számára, lehetővé teszi az egyes IIS-készletekhez rendelkezésre álló CPU-erőforrások maximális számának beállítását..
Ebben a cikkben bemutatjuk, hogyan lehet korlátozni az IIS 8 (és újabb) alkalmazáskészletek CPU használatát a Windows Server 2012 alapú webszerver példájával..
Nyissa meg a konzolt Internet Information Services (IIS) menedzser (% systemroot% \ system32 \ inetsrv \ iis.msc), bontsa ki a kiszolgálót a fában, és válassza ki a részt Alkalmazáskészletek. A fékező CPU-beállítások az IIS-ben az egyes készlet paramétereinek szakaszában találhatók.
tanács. Annak érdekében, hogy minden IIS-en futó webhelyhez beállíthassa a saját CPU-korlátait, minden webhelyhez létre kell hoznia saját App Pool-ot.- Ha engedélyeznie kell a korlátozásokat egy adott készletre, válassza ki azt a listában, és lépjen a beállítások szakaszba Speciális beállítások.
- Ha minden medencéhez alapértelmezett korlátokat kell beállítania, válassza ki a részt Állítsa be az alkalmazáskészlet alapértelmezéseit.
A beállítások ablakban Speciális beállítások érdekli a CPU szakaszban megadott paraméterek:
- határ - A processzoridő maximális% -a, amelyet az alkalmazáskészlet felhasználhat. Ha ezt az értéket túllépik, akkor a Határ mezőben megadott műveletet hajtják végre. Az IIS-ben a 8 százalékot ezrednevekben (1/1000 százalék) adják meg. Például a CPU-fogyasztás 20% -ra történő korlátozásához a Limit mezőben 20 000-et kell megadnia. Az IIS 8.5-ben az értéket rendes százalékban adják meg. A 0-os beállítással letilthatja a használati korlátozást
- Akció korlátozása - művelet, amelyet a pool használatával hajtanak végre, ha a CPU felhasználási korlátot túllépik
- Határidő (perc) - a letöltési eredmények ellenőrzésének és visszaállításának gyakorisága, ha a munkafolyamatot szüneteltetik. Ezt a paramétert nem használják a CPU fojtáshoz, és az IIS korábbi verzióival való kompatibilitásra használják..
A Művelet korlátozása mezőben kiválaszthatja a következő műveletek egyikét, amelyeket a megadott határ túllépésekor hajtanak végre.
- NoAction - semmilyen intézkedést nem teszünk, és a CPU túllépésének eseményét rögzítjük a naplóban
- KillW3wp (Gyilkos munkafolyamatok) - a korlátot meghaladó készlet munkafolyamata felfüggesztésre kerül a Korlátozási intervallum mezőben megadott ideig. A megfelelő bejegyzés hozzáadásra kerül a naplóba..
- gázkar - a rendelkezésre álló CPU-erőforrások szigorú korlátozása a Limit mezőben megadott értékkel. A Limit mező értékét ebben az esetben figyelmen kívül hagyják, és egy eseményt írnak a naplóba.
- ThrottleUnderLimit - A korlátozások csak magas szerver terhelés mellett működnek. Ingyenes CPU-erőforrások jelenléte esetén a készlet meghaladhatja a meghatározott határértéket.
A CPU-fojtást a segédprogram segítségével a parancssorból konfigurálhatja appcmd. Például ahhoz, hogy a DefaultAppPool készletet a CPU-használat 30% -ára korlátozza, a következő parancsot kell futtatnia:
% systemroot% \ system32 \ inetsrv \ appcmd set apppool DefaultAppPool /cpu.limitlinks0000 /cpu.action:Throttle
A korlátozást az összes IIS-készlethez az alábbiak szerint engedélyezheti:
% systemroot% \ system32 \ inetsrv \ appcmd set config -section: system.applicationHost / applicationPools /applicationPoolDefaults.cpu.limit:10000 /cpu.action:Throttle / vállalás: apphost
Azt is meg kell jegyezni, hogy a terhelés-szabályozás nem csak a fő folyamatra vonatkozik, hanem minden leányvállalatra is, ha van ilyen.
Így az IIS 8-ban lehetőség van a kiszolgálók betöltésének rugalmas szabályozására a webes alkalmazások futtatásával. De meg kell értenie, hogy a CPU-fojtást csak a maximális CPU-terhelés korlátozására használják, és nem a CPU-teljesítmény fenntartására egy webes alkalmazás számára..