IIS8 - server too busy, hardware load minimaal

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • sjender101
  • Registratie: Oktober 2009
  • Laatst online: 22-08-2022
Hallo,

Op onze Windows 2012 server met IIS8 heb ik het volgende probleem.
Er staan ongeveer 5000 sites als testcasus hierop met wisselende bezoekersaantallen.

Het CPU gebruik is gemiddeld 25%
Het RAM gebruik is op z'n hoogst 10GB van 24GB.

Toch worden er op willekeurige basis "server too busy" meldingen gegeven voor HTTP requests.
Vaak gebeurt dit als het aantal w3wp.exe processes richting de 500 loopt.
Maar het kan ook wel gebeuren dat er 700 draaien en er nog geen probleem is.

Deze melding wordt alleen weergegeven op ASP(.NET) pagina's, HTML en PHP hebben hier geen last van en zijn gewoon razendsnel.

Wat ik vermoed is dat er een maximum aantal .NET w3wp.exe processen open mag staan, mocht er dan 1 bijkomen, dat er dan een "server too busy" wordt gegeven, totdat er weer een proces vrijkomt.

In de machine.config hebben we de volgende aanpassing gedaan, maar dat biedt geen oplossing.
<processModel enable="true" requestQueueLimit="100000"/>

In de perfmon zien we ook niets raars (of we hebben de verkeerde counters).

Samenvatting: is er een limiet op het aantal ASP(.NET) w3wp.exe processen, en hoe verhogen we dat?

Acties:
  • 0 Henk 'm!

  • CMD-Snake
  • Registratie: Oktober 2011
  • Laatst online: 13-11-2022
Hoe staat je caching voor ASP.NET? Caching op unlimited zetten kan nog wel eens voor problemen zorgen. En hoe staat je ASP queue? Je kan ook tegen je maximaal aantal requests aanlopen en dan krijg je ook een error 500 geserveerd. Zie ter informatie ook deze site:

http://www.iis.net/config...stem.webserver/asp/limits

Hier staan diverse limieten in IIS beschreven en hoe je die kan aanpassen eventueel. In de beschrijvingen gaan ze tot IIS 7.5, maar het gaat imho ook gewoon op voor IIS 8. Let wel dat limieten erg hoog zetten ook vreemde en onwenselijke gevolgen kan hebben.

Overigens heb ik geen idee of Server 2012 een limiet heeft voor het aantal ASP.NET processen, maar mogelijk dat die er is. Hoeveel worker processen heb je eigenlijk erbij?

Acties:
  • 0 Henk 'm!

  • Razwer
  • Registratie: December 2000
  • Laatst online: 25-06 09:10
heb je prios ingesteld op je appools (cpu throttling)?
Als je een appool recycled werkt alles wel weer?

[ Voor 8% gewijzigd door Razwer op 02-04-2013 18:10 ]

Newton's 3rd law of motion. Amateur moraalridder.


Acties:
  • 0 Henk 'm!

  • sjender101
  • Registratie: Oktober 2009
  • Laatst online: 22-08-2022
Bedankt voor de input.

Is deze pagina ook van toepassing op ASP.net?
http://www.iis.net/config...stem.webserver/asp/limits
Het lijkt mij dat dit alleen voor classic ASP bedoeld is, terwijl .NET dezelfde (al dan niet meer) klachten heeft.

Na een IISRESET draait alles weer even een tijdje goed, totdat we weer rond de 500 w3wp processen zitten, en soms begint hij pas te sputteren bij 650/700.

Ik heb nu CPU throtling aangezet met de volgende waardes.
LIMIT: 5000
ACTION: ThrottleUnderLoad

Ik zal even kijken of dat beter werkt.

Hoewel ik zelf het vermoeden is dat er ergens een limiet op het aantal ASP.net worker processes zit, kan het denk ik geen kwaad om dit testen.
Bedankt voor de input, ik worstel hier al 2 weken mee, zonder resultaat helaas...

Acties:
  • 0 Henk 'm!

  • Razwer
  • Registratie: December 2000
  • Laatst online: 25-06 09:10
iisreset is geen appool recycle, dat is een zwaarder mechanisme dan een recycle
http://technet.microsoft....ry/cc770764(v=ws.10).aspx

Als een appool recycle de boel fixed kan er genoeg getweaked worden aan de appool settings. IIS8 heeft redelijk wat aanpassingen op appool niveau.

Klein voorbeeldje: http://blogs.msdn.com/b/v...cation-pool-settings.aspx

Newton's 3rd law of motion. Amateur moraalridder.


Acties:
  • 0 Henk 'm!

  • CMD-Snake
  • Registratie: Oktober 2011
  • Laatst online: 13-11-2022
sjender101 schreef op dinsdag 02 april 2013 @ 19:33:

Hoewel ik zelf het vermoeden is dat er ergens een limiet op het aantal ASP.net worker processes zit, kan het denk ik geen kwaad om dit testen.
Bedankt voor de input, ik worstel hier al 2 weken mee, zonder resultaat helaas...
Hoeveel workerprocessen heb je dan? Stel twee per ASP proces (en je sprak over 500-700 daarvan) dan kom je uit op 1000-1400 workerprocessen. Geen idee of hier een limiet ligt, maar het is veel.

Heb je geen logging waar je meer uit kunt halen?

Acties:
  • 0 Henk 'm!

  • Razwer
  • Registratie: December 2000
  • Laatst online: 25-06 09:10
hoe zit uberhaupt je application pool config in elkaar? je hebt alleen maar gesproken over server settings maar elke site draait op een appool en dat is nou juist waar je zeer waarschijnlijk je configs mag gaan aanpassen.

Newton's 3rd law of motion. Amateur moraalridder.


Acties:
  • 0 Henk 'm!

  • sjender101
  • Registratie: Oktober 2009
  • Laatst online: 22-08-2022
Of een appool recycle de boel oplost is lastig te zeggen.
Meestal als een site de melding geeft is het na 1 of 2 keer refreshen weg (soms ook niet).

Het aantal worker processes is naar mijn idee gelijk aan het aantal w3wp processen.
Dus om de vraag te beantwoorden hoeveel worker processes er draaien, dat zijn er rond de 500/700.

Logging....
Goed punt, Ik heb al wel met perfmon enige counters in de gaten gehouden, maar niets piekt wanneer het fout gaat. Als iemand suggesties heeft voor wat en hoe ik het beste kan loggen om hier iets raars uit te halen, dan hoor ik het graag!

Hier ook een screenshot van mijn appool instellingen.
Let erop dat de beperkende waardes voor physical memory, virtual memory en request limit bewust zijn ingeperkt om dit probleem nog een klein beetje in toom te houden, zonder die limieten gaan de 'server too busy's' echt helemaal los...
Afbeeldingslocatie: http://sanderendounia.nl/zooi/appool.png

Kan het zijn dat 1 site de hele asp.net queue vol zet?
Zo ja, is er een manier om te achterhalen welke dit is?

Acties:
  • 0 Henk 'm!

  • Dekaasboer
  • Registratie: Augustus 2003
  • Laatst online: 16:25
Je hebt het over 5k sites. In hoeveel pools heb je die ondergebracht? Wat is de structuur?

Waarom een web-garden met 5-700 processen? Dan zijn die processen alleen nog maar aan het vechten over wie er aan de beurt is?

Als je het nu eens reduceert naar 1 of 2 per core?

http://axrotterdam.blogspot.nl


Acties:
  • 0 Henk 'm!

  • CMD-Snake
  • Registratie: Oktober 2011
  • Laatst online: 13-11-2022
sjender101 schreef op woensdag 03 april 2013 @ 09:29:
Het aantal worker processes is naar mijn idee gelijk aan het aantal w3wp processen.
Dus om de vraag te beantwoorden hoeveel worker processes er draaien, dat zijn er rond de 500/700.
Hoeft niet. Je kan in IIS hier limieten aan meegeven. Dus bijvoorbeeld vier workerprocessen per ASP proces. Als het rustig is kan je maar een worker proces hebben, maar als het druk is kan het ASP proces er nog drie bij nemen. Het is een maximum. Dus als je maximum hoog staat krijg je dus ineens heel veel processen op een machine.
Kan het zijn dat 1 site de hele asp.net queue vol zet?
Zo ja, is er een manier om te achterhalen welke dit is?
Zie hier nog een MSDN linkje:
MSDN: ASP.NET Performance Monitoring, and When to Alert Administrators

Dit is voor troubleshooten als je problemen hebt met ASP sites. Er staat ook beschrijven welke performance counters handig zijn om te loggen, waaronder het aantal requests in queue. Dan moet je die vergelijken met je queue maximum.

Tevens kan je ook nog last hebben van slecht programmeerwerk. Als een ASP request de boel bezet houdt kan je ook problemen krijgen, hoe lang je queue ook is. Een ASP applicatie kan ook resources reserveren waardoor de andere requests niet meer aan de beurt komen. Dan loop je ook uit de queue zeker als een request erg lang duurt.

Edit:

Zie ook dit ter informatie: http://blogs.msdn.com/b/r...e-on-integrated-mode.aspx

[ Voor 11% gewijzigd door CMD-Snake op 03-04-2013 10:09 ]


Acties:
  • 0 Henk 'm!

  • sjender101
  • Registratie: Oktober 2009
  • Laatst online: 22-08-2022
Volgens mij moet ik mijn definitie van processen eens aanpassen?!

De 5000 sites zijn onderverdeeld in ongeveer 3500 application pools (dit is niet te veranderen).
Ik had het idee dat 1 (geactiveerde) application pool 1 w3wp.exe veroorzaakte, maar dat is dus niet zo?

In de screenshot staat dat een application pool maar 1 worker process mag hebben, naar welk limiet moet ik dan kijken hoeveel worker processes een ASP proces mag hebben?

Ik zal de counters in het linkje eens toevoegen en een screenshotje maken en hier posten.

Acties:
  • 0 Henk 'm!

  • CMD-Snake
  • Registratie: Oktober 2011
  • Laatst online: 13-11-2022
sjender101 schreef op woensdag 03 april 2013 @ 10:17:
In de screenshot staat dat een application pool maar 1 worker process mag hebben, naar welk limiet moet ik dan kijken hoeveel worker processes een ASP proces mag hebben?
Je hebt gelijk, je hebt inderdaad maar 1 worker process maximaal per pool. Even over wat dingen heen gelezen. :z
Ik zal de counters in het linkje eens toevoegen en een screenshotje maken en hier posten.
Je zou nog kunnen proberen je maximaal aantal concurrent requests per CPU op te voeren. Zie hier: http://forums.asp.net/t/1447626.aspx/1

Achtergrondinformatie:
http://blogs.msdn.com/b/t...e-on-iis-7-0-and-6-0.aspx

Requests asynchroon uitvoeren kan ook hulp bieden:
http://stackoverflow.com/...and-asynchronous-requests

Maar dit moet ook in de code verwerkt zijn.

Maar, let wel, geen hoeveelheid resources kan op tegen slecht programmeren. Als een van je programmeurs gewoon besluit om resources permanent te claimen dan blijven die bezet ten koste van andere requests.

Acties:
  • 0 Henk 'm!

  • Razwer
  • Registratie: December 2000
  • Laatst online: 25-06 09:10
had je deze basic steps als geprobeerd? http://www.codegain.com/a...usy-error-in-asp-net.aspx

Newton's 3rd law of motion. Amateur moraalridder.


Acties:
  • 0 Henk 'm!

  • sjender101
  • Registratie: Oktober 2009
  • Laatst online: 22-08-2022
Het aantal requests per CPU had ik al opgevoerd, zonder resultaat helaas....
Hier een screenshot van de perfmon met de voorgestelde counters uit de link hierboven.

Afbeeldingslocatie: http://sanderendounia.nl/zooi/perfmon.png

Een aantal zaken hebben mijn aandacht.
Er zijn namelijk 3 lijnen die kaarsrecht lopen, wat mij doet vermoeden dat er een limiet is bereikt...
Private Bytes (w3wp) 350.000.000
Virtual Bytes (w3wp) 999.276.544 (hier het duidelijkst een limiet te zijn bereikt)
Handle count (w3wp) 477

Ik heb zojuist ook een iisreset uitgevoerd (na de screenshot) en alle waardes daalden, behalve Handle count...
Je zou bij een iisreset toch ook verwachten dat deze zou zakken?

De basic steps die je aangeeft resulteren in een een configuration error, ik ga eens nakijken of dit ook voor IIS8 nog te doen is.

edit: in perfmon dacht ik dat w3wp stond voor alle w3w processen bij elkaar, dit lijkt niet zo te zijn, sommige w3wp#nr gaan over de w3wp heen...
Na het uitlezen van virtual bytes TOTAL, kom ik uit op een waarde 5.6718e+010, wat volgens mij uitkomt op 56.718.000.000, dus 56GB, lijkt me enigszins aan de hoge kant...

[ Voor 19% gewijzigd door sjender101 op 03-04-2013 11:27 ]


Acties:
  • 0 Henk 'm!

  • sjender101
  • Registratie: Oktober 2009
  • Laatst online: 22-08-2022
Ik heb ook zojuist getest of de server too busy weg gaat bij een bepaalde site na recyclen van de app pool.
Dat is niet het geval.
Dus ik vermoed nog steeds een globale serversetting ergens.

Heeft iemand nog ideeen?

Acties:
  • 0 Henk 'm!

  • Razwer
  • Registratie: December 2000
  • Laatst online: 25-06 09:10
wat zijn je hardware specs?

Newton's 3rd law of motion. Amateur moraalridder.


Acties:
  • 0 Henk 'm!

  • sjender101
  • Registratie: Oktober 2009
  • Laatst online: 22-08-2022
De hardware specs zijn:

Intel XEON CPU E3-1230 V2
24GB DDR3 RAM
250GB WD RE4 HD

Wat misschien nog relevante info is, is dat er 3 van deze servers achter een hardware load balancer staan.
In feite hebben we dus 3 machines die identiek zijn aan deze, achter een Foundry Load balancer.
Echter hebben ze alle drie hetzelfde probleem

[ Voor 7% gewijzigd door sjender101 op 08-04-2013 11:17 ]


Acties:
  • 0 Henk 'm!

  • Razwer
  • Registratie: December 2000
  • Laatst online: 25-06 09:10
wat is je disk config? want die hdd is niet echt super deluxe. Wat doet je disk op het moment dat je server too busy krijgt?
Ik dacht eerst misschien HT maar nu ik je disk zie is dat niet echt super deluxe... helemaal niet als het in een RAID1 oid zit. Al helemaal als je er 5000 sites op host (lijkt me sterk eigenlijk op eenmalig 250gb maar de vraag moet toch gesteld worden).

Voor een consumenten class hdd is het een topper, maar voor enterprise is het toch echt een bagger schijf. of zitten al je sites op een SAN?

[ Voor 15% gewijzigd door Razwer op 08-04-2013 15:37 ]

Newton's 3rd law of motion. Amateur moraalridder.


Acties:
  • 0 Henk 'm!

  • sjender101
  • Registratie: Oktober 2009
  • Laatst online: 22-08-2022
Sites staan inderdaad op een SAN.
Daar is genoeg ruimte en capaciteit.

Acties:
  • 0 Henk 'm!

  • sjender101
  • Registratie: Oktober 2009
  • Laatst online: 22-08-2022
Hallo allemaal, probleem is gevonden.
Bedankt voor alle reacties en het meedenken.

Het waren een berg FileChangeNotifications die roet in het eten gooide.
Ik heb in de regedit FCNMode op 2 gezet.
Dit lost de 'server too busy' op, echter hebben we dan het probleem dat de application pool niet meer uit zichzelf na X wijzigingen herstart om de nieuwe data in het geheugen te zetten.
Dat is weer een andere zaak.

Nogmaals bedankt voor het meedenken allemaal.
Pagina: 1