Niedawno przeprowadziłem migrację zestawu serwerów Windows Server 2008 R2 / IIS 7.5 na nowe serwery z systemem Windows Server 2012 / IIS 8.
Występują dziwne zachowania z IIS. Mamy 2 identyczne serwery, każdy serwer obsługuje 2 strony internetowe, każdy w swojej własnej puli aplikacji. Kod każdej strony internetowej jest identyczny. (Dosłownie ... te same pliki dll i wszystko, tylko nieco inna konfiguracja).
Pule aplikacji są ustawione na cykliczne odtwarzanie zgodnie z harmonogramem co 24 godziny, ale podczas tego 24-godzinnego okresu użycie procesora przez proces roboczy w3wp wzrasta o 12,5% (serwer ma 8 procesorów, więc nie sądzę, że to jest przypadek).
Gdy użycie procesora gwałtownie wzrośnie, NIE ZWRACA się, dopóki aplikacja nie zrestartuje się. O ile mogę stwierdzić, w tej chwili aplikacja nic nie robi i nie obsługuje ŻADNYCH żądań. Mogę zablokować cały ruch do serwera, a użycie procesora po prostu tam pozostanie. Mogę nawet zrestartować stronę internetową, a użycie procesora pozostaje takie samo. Jedynym sposobem zresetowania użycia procesora jest ponowne uruchomienie lub ponowne uruchomienie puli aplikacji, na której działa.
Jestem nieco pewien, że ten problem nie ma nic wspólnego z moim kodem, ale coś w rodzaju złej konfiguracji IIS lub zmiany w IIS 8, która źle działa z konfiguracją sprzętu czy coś takiego?
Nie jestem pewien, czy to ważne, czy nie, ale są to serwery Rackspace Performance Cloud.
Oto zrzut ekranu pokazujący obciążenie procesora w miarę upływu czasu na tych serwerach (zielone strzałki wskazują czasy, w których pula aplikacji jest odtwarzana ponownie. Widać, że każdy plateau stanowi integralną wielokrotność 12,5%:
Czy ktoś zauważył to zachowanie? Znalazłem to pytanie z 2009 roku, gdy ktoś miał coś, co wydaje się być tym samym problemem w IIS 6:
Usługi IIS w3wp używają wysokiej mocy procesora bez ruchu
Każda pomoc jest mile widziana