Važna funkcija bilo kojeg web poslužitelja je mogućnost ograničavanja upotrebe resursa CPU-a za određeno web mjesto, u protivnom jedna web stranica može monopolizirati resurse CPU-a, što može biti neprihvatljivo, posebno za web hosting poslužitelje koji dijele resurse između nekoliko klijenata s različitih web mjesta. IIS (Internet informacijske usluge) 7.0 i starije verzije postojala je mogućnost praćenja upotrebe CPU-a web aplikacijama i isključivanje baze aplikacija nekoliko minuta što je premašilo navedeno ograničenje. Potpuna sposobnost kontrole potrošnje resursa procesora dostupnih svakom paketu aplikacija pojavila se tek u sustavu IIS 8.0 (Windows Server 2012 i novije verzije). Ta se značajka zove Procesno leptir i umjesto privremenog zaustavljanja baze podataka koji je previše agresivan za procesor, omogućuje vam postavljanje maksimalnog broja resursa CPU-a dostupnih za svaki IIS skup.
U ovom ćemo članku pokazati kako ograničiti upotrebu procesora u aplikacijskim fondovima u IIS 8 (i novijima) koristeći primjer web poslužitelja temeljenog na Windows Server 2012.
Otvorite konzolu Upravitelj internetskih informacijskih usluga (IIS) (% systemroot% \ system32 \ inetsrv \ iis.msc), proširite svoj poslužitelj u stablu i odaberite odjeljak Aplikacijski bazeni. Postavke procesiranja umetanja procesora u IIS nalaze se u odjeljku s parametrima svakog bazena.
vijeće. Tako da za svaku web lokaciju koja radi na IIS-u možete postaviti vlastita ograničenja CPU-a, za svaku web lokaciju morate kreirati vlastiti paket aplikacija.- Ako morate omogućiti ograničenja za određeni bazen, odaberite ga na popisu i idite na odjeljak postavki Napredne postavke.
- Ako trebate postaviti zadana ograničenja za sve bazene, odaberite odjeljak Postavite zadane baze podataka aplikacija.
U prozoru postavki Napredne postavke zanimaju nas parametri navedeni u odjeljku CPU:
- granica - Maksimalni% vremena procesora koje može koristiti aplikacijski skup. Ako je ta vrijednost premašena, izvodi se akcija navedena u polju Ograničenje. U IIS-u je 8 posto navedeno u tisućama (1/1000 posto). Na primjer, da biste ograničili potrošnju CPU-a na 20%, u polju Limit morate navesti 20 000. U IIS 8.5 vrijednost je navedena u običnim postocima. Ograničenje upotrebe možete onemogućiti postavljanjem 0
- Ograničenje djelovanja - radnja koja se izvodi s bazenom kada je prekoračena granica upotrebe CPU-a
- Ograničenje intervala (u minutama) - učestalost provjere i resetiranja rezultata preuzimanja kada je tijek rada pauziran. Ovaj se parametar ne koristi za CPU Throttling i koristi se za kompatibilnost s prethodnim verzijama IIS-a..
U polju Ograniči radnja možete odabrati jednu od sljedećih radnji koje će se izvesti kad je prekoračena zadana granica.
- nisu neka aktivnost - ne poduzimaju se akcije i događaj prekoračenja CPU-a bilježi se u zapisnik
- KillW3wp (Ubiti radnički procesi) - tijek rada bazena koji je premašio ograničenje obustavlja se tijekom vremena određenog u polju Limit Interval. U dnevnik se dodaje odgovarajući unos..
- gasa - strogo ograničenje dostupnih resursa CPU-a vrijednošću navedenom u polju Limit. Vrijednost polja Limit u ovom se slučaju zanemaruje, a događaj se zapisuje u dnevnik.
- ThrottleUnderLimit - ograničenja rade samo pri velikom opterećenju poslužitelja. U slučaju besplatnih resursa CPU-a, bazen može premašiti navedeni limit.
Možete konfigurirati CPU Throttling iz naredbenog retka pomoću uslužnog programa appcmd. Na primjer, da biste postavili DefaultAppPool bazen na ograničenje od 30% CPU-a, trebate pokrenuti naredbu:
% systemroot% \ system32 \ inetsrv \ appcmd postavi apppool DefaultAppPool /cpu.limitlinks0000 /cpu.action:Throttle
Ograničenje možete omogućiti za sve IIS bazene na sljedeći način:
% systemroot% \ system32 \ inetsrv \ appcmd postavljen config -section: system.applicationHost / applicationPools /applicationPoolDefaults.cpu.limit:10000 /cpu.action:Throttle / commit: apphost
Također treba napomenuti da se regulacija opterećenja primjenjuje ne samo na glavni postupak, već i na sve podružnice, ako postoje.
Dakle, u IIS 8 postoji mogućnost fleksibilne regulacije učitavanja poslužitelja pokretanjem web aplikacija. Ali morate razumjeti da se CPU Throttling koristi samo za ograničavanje maksimalnog opterećenja CPU-a, ali ne i za rezerviranje snage CPU-a za web aplikaciju..