Omejitev CPU-ja za aplikacijski bazen v IIS 8

Pomembna funkcija katerega koli spletnega strežnika je zmožnost omejevanja uporabe virov CPE na določenem spletnem mestu, sicer lahko eno spletno mesto monopolizira vire CPU, kar je morda nesprejemljivo, zlasti za strežnike spletnega gostovanja, ki si virov delijo med več odjemalcev z različnih spletnih mest. V IIS (Internetne informacijske storitve) 7,0 in starejših različicah je obstajala možnost spremljanja porabe CPE-jev s spletnimi aplikacijami in prekinjanja baze aplikacij nekaj minut, kar je preseglo določeno mejo. Popolna zmožnost nadzora nad porabo virov CPU, ki so na voljo za vsak programski paket, se je pojavila le v IIS 8.0 (Windows Server 2012 in novejši). Ta funkcija je imenovana CPU Throttling in namesto da začasno ustavite območje aplikacij, ki je preveč agresiven za procesor, vam omogoča, da nastavite največje število virov CPU, ki so na voljo za vsak skupino IIS.

V tem članku bomo pokazali, kako omejiti uporabo CPE aplikacijskih področij v IIS 8 (in novejši) na primeru spletnega strežnika, ki temelji na sistemu Windows Server 2012.

Odprta konzola Upravitelj internetnih informacijskih storitev (IIS) (% systemroot% \ system32 \ inetsrv \ iis.msc), razširite strežnik v drevesu in izberite razdelek Področja uporabe. Nastavitve nastavitve procesorja v IIS so nameščene v razdelku s parametri vsakega polja.

Namig. Tako da lahko za vsako spletno mesto, ki deluje na IIS, nastavite svoje omejitve CPU-ja, za vsako spletno mesto morate ustvariti svoj lastni bazen.
  • Če morate za določen bazen omogočiti omejitve, ga izberite na seznamu in pojdite na razdelek z nastavitvami Napredne nastavitve.
  • Če morate za vse bazene nastaviti privzete meje, izberite razdelek Nastavite privzete vrednosti bazena aplikacij.

V oknu z nastavitvami Napredne nastavitve nas zanimajo parametri, navedeni v razdelku CPU:

  • Omejiti - Največji odstotek časa procesorja, ki ga lahko uporabi aplikacijski bazen. Če je ta vrednost presežena, se izvede dejanje, določeno v polju Omejitev. V IIS je 8 odstotkov določenih v tisočih (1/1000 odstotkov). Na primer, če želite omejiti porabo CPU na 20%, morate v polju Limit navesti 20 000. V IIS 8.5 je vrednost navedena v navadnih odstotkih. Omejitev uporabe lahko onemogočite tako, da nastavite 0
  • Omejitev - dejanje, ki se izvaja s skupino, ko je presežena omejitev porabe CPE-ja
  • Omejitev intervala (minut) - pogostost preverjanja in ponastavitve rezultatov prenosa, ko je potek dela prekinjen. Ta parameter se ne uporablja za CPU Throttling in se uporablja za združljivost s prejšnjimi različicami IIS..

Namig. Te nastavitve veljajo samo za uporabnika, iz katerega se izvaja bazen. Vsak bazen se privzeto sproži iz njegovega računa, zato je obremenitev vsakega bazena individualno urejena. Če uporabljate namenski račun za izvajanje več skupin, bodo nastavitve zanje enake.

V polju Omejitev dejanja lahko izberete eno od naslednjih dejanj, ki se bodo izvedla, ko bo presežena določena omejitev.

  • NoAction - nič ne ukrepa in v dnevniku se zapiše dogodek prekoračitve procesorske enote
  • Killw3wp (Ubij delovne procese) - delovni potek bazena, ki je presegel omejitev, se ustavi za čas, ki je določen v polju Limit Interval. V dnevnik se doda ustrezen vnos..
  • Dušica - stroga omejitev razpoložljivih virov CPU z vrednostjo, določeno v polju Limit. Vrednost polja Omejitev se v tem primeru prezre in dogodek zapiše v dnevnik.
  • ThrottleUnderLimit - omejitve delujejo le pri visoki obremenitvi strežnika. Ob prisotnosti brezplačnih virov CPU lahko skupino preseže določeno mejo.

CPU Throttling lahko konfigurirate iz ukazne vrstice s pomočjo pripomočka appcmd. Na primer, da nastavite polje DefaultAppPool na največ 30% uporabe CPE-ja, morate zagnati ukaz:

% systemroot% \ system32 \ inetsrv \ appcmd nastavi apppool DefaultAppPool /cpu.limit00000000 /cpu.action:Throttle

Omejitev za vse skupine IIS lahko omogočite na naslednji način:

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

Prav tako je treba opozoriti, da ureditev obremenitve ne velja samo za glavni postopek, ampak tudi za vse odvisne družbe, če obstajajo.

Tako v IIS 8 obstaja možnost prožne regulacije nalaganja strežnikov z zagonom spletnih aplikacij. Morate pa razumeti, da se CPU Throttling uporablja samo za omejitev največje obremenitve CPE-ja, ne pa tudi za pridrževanje moči CPU-ja za spletno aplikacijo..