PDA

Bekijk Volledige Versie : w3wp.exe, welk domein gebruikt de cpu het meest



nieuwhier
07/11/10, 19:17
Hoi,

Ik zoek goede debug methodes om erachter te komen welk domein nu precies hoog cpu verbruik veroorzaakt op een windows 2008/plesk server. De meeste domeinen zitten in dezelfde app-pool dus daar kan ik het niet direct aan zien.

Iets vergelijkbaars als de Apache Server Status maar dan voor IIS.

groet,
Michel.

MediaServe
08/11/10, 01:00
Naar mijn mening hoor je per domein c.q. website een aparte Application Pool aan te maken. Je kunt dan eenvoudig in de Task Manager zien welke Application Pool de meeste bronnen gebruikt. Dit zou je sowieso beter kunnen doen, omdat een crashende website dan geen effect meer zal hebben op andere websites.

Sterker nog, vanaf IIS 7.0 moet je dit wel gaan doen, omdat je de uitvoerende gebruiker instelt in de Application Pool en niet langer in de website zelf. Tenzij je alle websites door dezelfde gebruiker wilt laten uitvoeren natuurlijk :p

Clanhost
08/11/10, 10:05
Ik heb dit probleem ook een keer gehad en veel onderzoek naar gedaan destijds. De enige oplossing die ik kon vinden is aparte Application Pools en dan de proces ID's uitlezen en vervolgens CPU usage monitoren. Voor zover ik weet is het technisch niet mogelijk om verschillende sites van elkaar te onderscheiden op een andere manier.

nieuwhier
08/11/10, 10:41
>>Naar mijn mening hoor je per domein c.q. website een aparte Application Pool aan te maken.
Dat vind ik niet direct nodig tenzij de klant zelf al aangeeft een stevige site te willen plaatsen, per klant werkt het goed alleen op dit punt eigenlijk niet.


Voor zover ik weet is het technisch niet mogelijk om verschillende sites van elkaar te onderscheiden op een andere manier.
Dat was ook een beetje mijn eigen conclusie ja. Per klant heb ik een app pool dus ik zie op zich wel welke klant het is maar er zijn sommige klanten met (te) veel domeinen en het zou zeer handig zijn om direct inzicht te krijgen daarin.

Clanhost
08/11/10, 11:04
Daar heb je wel een punt inderdaad. In principe is het wel een nette oplossing om elke klant zijn eigen Application Pool te geven voor een aantal sites. Maar dan loop je wel tegen dit probleem aan op het moment dat een bepaalde site het model voorbij groeit.

ARKO
08/11/10, 11:41
Probeer eens IISGuard, te vinden op: http://www.iis.net/community/default.aspx?tabid=34&g=6&i=1283

nieuwhier
08/11/10, 11:51
Probeer eens IISGuard, te vinden op: http://www.iis.net/community/default.aspx?tabid=34&g=6&i=1283

Thx die had ik gezien, maar hij gaat helaas niet verder dan IIS6...

Clanhost
08/11/10, 11:58
Heb je al eens gekeken op deze site: http://www.port80software.com/

Daar heb ik vroeger wel eens enkele producten van gebruikt. Ik zie dat ze ook wat performance en security tools hebben.

ARKO
08/11/10, 13:30
Sorry ik had niet gezien dat deze maar tot IIS 6 werkt, ik had het vroeger een keer gebruikt.

* De producten van Port 80 software zijn voor heel andere doeleinden dan welke hier worden gevraagd.

ARKO
08/11/10, 13:44
Ik weet niet precies wat deze tool doet, maar misschien heb je er wat aan: http://iismonitor.motobit.com

Het lijkt erop dat die niet helemaal werkt met IIS 7 omdat er staat IIS 6 (7), maar op de version history pagina staat weer wel IIS 7: http://iismonitor.motobit.com/help/iistrace/version-history.htm

gjtje
08/11/10, 14:17
perfmon kan wel iets laten zien per site, 'k weet niet of dat genoeg is.

interip
09/11/10, 13:21
Lastig, ik denk hard met je mee. Ik vraag me af als je dat process kilt of er een entry in de iis log wordt weggeschreven ?. Je zou dan kunnen zoeken in de logfile's naar dat entry op een bepaalde tijdstip. Maar ben bang dat als het w3wp process gekild wordt iis ook niets in de logfile van desbetreffende file kan wegschrijven. Optie van Clanhost lijkt mij dan het beste maar dan moet je dus aparte application pool (liefst met een unieke userid) aanmaken per domein/hosting.

nieuwhier
09/11/10, 13:35
Per domein een app pool gaat hem niet echt worden. Een klant heeft bijv. 80 domeinen in zijn account zitten, hij gebruikt er maar 2 of 3 actief en dan zou je voor die andere 78 onnodig app pools hebben.

Het is wel raar van microsoft dat ze niet een monitortool leveren om 'in' de w3wp processen te kijken, met perfmon kan dat (volgens mij) niet.

De oplossing op de site van motobit zou wellicht kunnen maar laatste update is van 2007, krijg niet zo de indruk dat hij echt goed geschikt voor iis7 is. Ga ik nog wel naar kijken.

ARKO
09/11/10, 16:03
De oplossing op de site van motobit zou wellicht kunnen maar laatste update is van 2007, krijg niet zo de indruk dat hij echt goed geschikt voor iis7 is. Ga ik nog wel naar kijken.

Voor IIS 6 werkte het iig wel, ik zal het gewoon even proberen als ik jou was. Het werkt best makkelijk. Post je resultaat weer even hier.

nieuwhier
19/11/10, 17:34
Ik zou nog even een terugkoppeling geven.

De afgelopen periode e.e.a. geprobeerd maar compatabiliteit met de nieuwe IIS versies is niet echt goed.

terug naar het tonen van de worker processes in de IIS manager. Ik kreeg daar altijd al fouten: IIS 7 Worker Processes – Category does not exist

Het artikel uitgevoerd op deze pagina(http://blog.richardramdat.com/2010/06/iis-7-worker-processes-category-does-not-exist/), de boel herstart en voila. Het werkt daar opeens weer. Nu kan ik wel vrij aardig in de application pool kijken welk proces de boel ver....t

Nu nog een script maken voor zabbix en dan is het helemaal goed. Maar dat zal niet 1-2-3 gebeuren denk ik.

Nitroserve
01/12/10, 13:50
Wij hebben voor ieder hosting account (niet ieder domein of subdomein) een application pool draaien.

Voordeel is als iemand zijn eigen site en application pool om zeep helpt, dat alle andere sites dan netjes blijven draaien...

Indien ik in de task manager een w3wp ziet met een hoge load, dan gebruik ik appcmd om te kijken welke site het is.
appcmd list wp > c:\sites.txt

In sites.txt zoek je het process id op, en voila, je hebt de boosdoener.

nieuwhier
01/12/10, 14:18
Maar daar zie je toch alleen de app-pools processen mee ?
Wat handiger is, vind ik dan, is appcmd list REQUEST
Alleen staat daar geen verwijzing in naar welke website het precies is.

Nitroserve
01/12/10, 19:56
In de lijst zie je dan inderdaad de namen van de application pools.
Voor ons is dit een handige methode, echter kan ik me voorstellen dat je hier niets aan hebt als je je application pools niet apart houdt.

nieuwhier
01/12/10, 20:34
Jawel, ik heb de pools wel per hostingpakket, maar sommige klanten hebben daar tientallen domeinen inzitten en daar zat het hem nou juist in, welk domein is het.
Maar met de methode die ik beschrijf op 19 November 2010, 17:34 in dit artikel werkt goed, zou het alleen nog willen scripten eigenlijk.