Ich habe kürzlich eine Reihe von Windows Server 2008 R2 / IIS 7.5-Servern auf neue Server migriert, auf denen Windows Server 2012 / IIS 8 ausgeführt wird.
Ich habe ein merkwürdiges Verhalten von IIS. Wir haben 2 identische Server, jeder Server betreibt 2 Websites, jede in ihrem eigenen App-Pool. Der Code für jede der Websites ist identisch. (Buchstäblich ... gleiche DLLs und alles, nur etwas andere Konfiguration).
Die App-Pools werden alle 24 Stunden nach einem Zeitplan recycelt, aber während dieses 24-Stunden-Zeitraums steigt die CPU-Auslastung des w3wp-Worker-Prozesses in Schritten von 12,5% (der Server verfügt über 8 Prozessoren, daher glaube ich nicht ein Zufall).
Sobald die CPU-Auslastung steigt, wird sie NICHT wieder sinken, bis die App wiederverwendet wird. Soweit ich das beurteilen kann, tut die App derzeit nichts und verarbeitet KEINE Anfragen. Ich kann den gesamten Datenverkehr zum Server blockieren und die CPU-Auslastung bleibt einfach dort. Ich kann die Website sogar neu starten und die CPU-Auslastung bleibt gleich. Die einzige Möglichkeit, die CPU-Auslastung zurückzusetzen, besteht darin, den App-Pool, auf dem er ausgeführt wird, zu recyceln oder neu zu starten.
Ich bin mir ziemlich sicher, dass dieses Problem nichts mit meinem Code zu tun hat, sondern mit einer schlechten IIS-Konfiguration oder einer Änderung in IIS 8, die mit der Hardwarekonfiguration schlecht funktioniert, oder so?
Ich bin mir nicht sicher, ob es wichtig ist oder nicht, aber dies sind Rackspace Performance Cloud-Server.
Hier ist ein Screenshot, der Ihnen die CPU-Auslastung auf diesen Servern über die Zeit zeigt (grüne Pfeile zeigen auf die Zeiten, zu denen der App-Pool recycelt wird. Sie können sehen, dass jedes Plateau ein ganzzahliges Vielfaches von 12,5% ist:
Hat jemand dieses Verhalten beobachtet? Ich habe diese Frage aus dem Jahr 2009 bei jemandem gefunden, der das gleiche Problem mit IIS 6 zu haben scheint:
IIS w3wp mit hoher CPU ohne Datenverkehr
Jede Hilfe wird sehr geschätzt