Obmedzenie CPU pre oblasť aplikácií v IIS 8

Dôležitou funkciou každého webového servera je schopnosť obmedziť využívanie zdrojov CPU konkrétnou stránkou, inak môže jedna stránka monopolizovať prostriedky CPU, ktoré môžu byť neprijateľné, najmä pre servery webhostingu zdieľajúce zdroje medzi niekoľkými klientmi s rôznymi stránkami. IIS (Internetové informačné služby) 7.0 a staršie verzie, bolo možné monitorovať využitie CPU webovými aplikáciami a odpojiť fond aplikácií na niekoľko minút, čo presiahlo určený limit. Plná schopnosť kontrolovať spotrebu zdrojov CPU dostupných pre každú oblasť aplikácií sa objavila iba v roku 2008 IIS 8.0 (Windows Server 2012 a vyšší). Táto funkcia sa volá Throttling CPU a namiesto dočasného zastavenia oblasti aplikácií, ktorá je pre procesor príliš agresívna, umožňuje nastaviť maximálny počet prostriedkov CPU dostupných pre každú oblasť IIS.

V tomto článku ukážeme, ako obmedziť využitie CPU aplikačných fondov v IIS 8 (a vyššie) pomocou príkladu webového servera založeného na systéme Windows Server 2012..

Otvorte konzolu Správca internetových informačných služieb (IIS) (% systemroot% \ system32 \ inetsrv \ iis.msc), rozbaľte server v strome a vyberte časť Fondy aplikácií. Nastavenia obmedzovania CPU v IIS sa nachádzajú v sekcii parametrov každej oblasti.

rada. Aby ste pre každý web bežiaci na IIS mohli nastaviť svoje vlastné limity CPU, musíte pre každý web vytvoriť vlastný fond aplikácií..
  • Ak potrebujete povoliť obmedzenia pre konkrétnu oblasť, vyberte ju v zozname a prejdite do časti Nastavenia Rozšírené nastavenia.
  • Ak potrebujete nastaviť predvolené limity pre všetky oblasti, vyberte oddiel Nastavte predvolené hodnoty fondu aplikácií.

V okne nastavení Rozšírené nastavenia zaujímajú nás parametre uvedené v časti CPU:

  • limit - Maximálne% času procesora, ktoré môže fond aplikácií použiť. Ak je táto hodnota prekročená, vykoná sa akcia uvedená v poli Limit. V IIS je 8 percent špecifikovaných v tisícinách (1/1000 percent). Napríklad, aby ste obmedzili spotrebu CPU na 20%, musíte do poľa Limit zadať 20 000. V službe IIS 8.5 je táto hodnota uvedená v bežných percentách. Limit použitia môžete zakázať nastavením 0
  • Limit akcie - akcia, ktorá sa vykonáva s fondom po prekročení limitu využitia CPU
  • Časový limit (minúty) - frekvencia kontroly a resetovania výsledkov sťahovania, keď je pracovný tok pozastavený. Tento parameter sa nepoužíva pre Throttling CPU a používa sa na kompatibilitu s predchádzajúcimi verziami IIS..

rada. Tieto nastavenia sa vzťahujú iba na používateľa, od ktorého je spustená oblasť. V predvolenom nastavení sa každý fond spúšťa z účtu, takže zaťaženie každého fondu je regulované individuálne. Ak používate vyhradený účet na spustenie viacerých fondov, nastavenia pre ne budú rovnaké.

V poli Limit Action (Akcia obmedzenia) môžete vybrať jednu z nasledujúcich akcií, ktoré sa vykonajú po prekročení stanoveného limitu.

  • ZADNA - nevykoná sa žiadna akcia a do protokolu sa zaznamená udalosť pretečenia CPU
  • KillW3wp (Zabiť pracovné procesy) - pracovný tok oblasti, ktorá prekročila limit, je pozastavený na dobu uvedenú v poli Limit Interval. Zodpovedajúca položka sa pridá do denníka..
  • škrtiacej ventil - prísne obmedzenie dostupných prostriedkov CPU hodnotou stanovenou v poli Limit. Hodnota poľa Limit je v tomto prípade ignorovaná a udalosť sa zapíše do denníka.
  • ThrottleUnderLimit - obmedzenia fungujú iba pri vysokom zaťažení servera. V prítomnosti voľných zdrojov CPU môže skupina prekročiť určený limit.

Pomocou pomôcky môžete nakonfigurovať nástroj Throttling z príkazového riadku appcmd. Napríklad, ak chcete nastaviť oblasť DefaultAppPool na limit 30% využitia CPU, musíte spustiť príkaz:

% systemroot% \ system32 \ inetsrv \ appcmd set apppool DefaultAppPool /cpu.limitlinks0000 /cpu.action:Throttle

Obmedzenie pre všetky oblasti IIS môžete povoliť takto:

% systemroot% \ system32 \ inetsrv \ appcmd set config -section: system.applicationHost / applicationPools /applicationPoolDefaults.cpu.limit:10000 /cpu.action:Throttle / commit: apphost

Malo by sa tiež poznamenať, že regulácia zaťaženia sa uplatňuje nielen na hlavný proces, ale aj na všetky dcérske spoločnosti, ak existujú.

V IIS 8 teda existuje možnosť flexibilnej regulácie zaťaženia servera pomocou webových aplikácií. Musíte však pochopiť, že proces Throttling sa používa iba na obmedzenie maximálneho zaťaženia procesora, ale nie na rezervovanie výkonu procesora pre webovú aplikáciu..