Az IIS 8 alkalmazáskészletének CPU korlátozása

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..

tanács. Ezek a beállítások csak arra a felhasználóra vonatkoznak, ahonnan a készlet működik. Alapértelmezés szerint az egyes poolok a számlájukról indulnak, így az egyes poolok terhelését külön-külön szabályozzák. Ha dedikált fiókot használ több készlet futtatásához, akkor a beállítások azonosak lesznek.

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..