Di recente ho migrato un set di server Windows Server 2008 R2 / IIS 7.5 su nuovi server che eseguono Windows Server 2012 / IIS 8.
Sto riscontrando un comportamento strano da parte di IIS. Abbiamo 2 server identici, ogni server esegue 2 siti Web, ognuno nel proprio pool di app. Il codice per ciascuno dei siti Web è identico. (Letteralmente ... stesse dll e tutto, solo una configurazione leggermente diversa).
I pool di app sono impostati per essere riciclati su una pianificazione ogni 24 ore, ma durante quel periodo di 24 ore, l'utilizzo della CPU del processo di lavoro w3wp aumenta con incrementi del 12,5% (il server ha 8 processori, quindi non credo che sia una coincidenza).
Una volta che l'utilizzo della CPU salta, NON tornerà indietro fino a quando l'app non ricicla. Per quanto ne so, l'app al momento non sta facendo nulla e non sta elaborando NESSUNA richiesta. Posso bloccare tutto il traffico verso il server e l'utilizzo della CPU rimarrà lì. Posso anche riavviare il sito Web e l'utilizzo della CPU rimane lo stesso. L'unico modo per ripristinare l'utilizzo della CPU è riciclare o riavviare il pool di app su cui viene eseguito.
Sono abbastanza certo che questo problema non ha nulla a che fare con il mio codice, ma una sorta di scarsa configurazione IIS o una modifica in IIS 8 che funziona male con la configurazione hardware o qualcosa del genere?
Non sono sicuro che sia importante o meno, ma si tratta di server Rackspace Performance Cloud.
Ecco uno screenshot per mostrare il carico della CPU nel tempo su questi server (le frecce verdi indicano i tempi in cui il pool di app ricicla. Puoi vedere che ogni plateau è un multiplo integrale del 12,5%:
Qualcuno ha osservato questo comportamento? Ho trovato questa domanda dal 2009 con qualcuno che ha quello che sembra essere lo stesso problema con IIS 6:
IIS w3wp utilizzando CPU alta senza traffico
Ogni aiuto è molto apprezzato