Limiti della CPU per i pool di applicazioni in IIS 7.5

Vedo che in iis 7.5 posso impostare un limite di utilizzo di CPU% per un determinato periodo di tempo per un pool di applicazioni. Potrei uccidere anche il process lavorativo se questo limite è stato violato. Se lo dica per fare questo, il process di lavoratore si riavvia automaticamente dopo che viene ucciso o è necessario un intervento manuale?

Oltre a Overflow Stack c'è la menzione che può essere riavviato al termine dell'intervallo …

2 Solutions collect form web for “Limiti della CPU per i pool di applicazioni in IIS 7.5”

Questo sembra uno di quei casi in cui la simulazione (o l'accesso al codice sorgente …> sospiri <) probabilmente sarà l'unico modo per vedere quale sia il comportmento con qualsiasi grado di fiducia.

La documentazione per la voce del registro events per il riciclaggio delle quote CPU riport il riciclaggio come segue:

Per impostazione predefinita, il riciclo di pool di applicazioni viene sovrapposto, il che significa che il process di lavoratore da chiudere continuerà a funzionare fino a quando non viene avviato un nuovo process di lavoro. Dopo l'avvio di un nuovo process di lavorazione, vengono inviate nuove richieste. Il vecchio process di lavorazione si spegne dopo aver terminato l'elaborazione delle sue richieste esistenti o dopo un time-out configurato, a seconda di quale sia il primo. Questo modo di riciclaggio assicura un servizio ininterrotto ai clienti. Tuttavia, se un'applicazione nel pool di applicazioni non può eseguire più di una istanza di se stessa alla volta, la rotazione sovrapposta può essere distriggersta.

Mi sembra che, per definizione, chiudere un process di lavoratore a causa di un eccessivo consumo di CPU significherebbe che le richieste in sospeso non potessero essere completate (poiché stanno esaurendo la quota del CPU).

Per parlare con la tua preoccupazione principale: non vedo nulla che mi port a credere che un nuovo process di lavoratore non si trasformi automaticamente. L'istruzione nel collegamento Stack Overflow mi fa domandare se l'algorithm utilizzato da IIS può infatti bind il riciclaggio alla risoluzione del timer utilizzato per misurare l'esaurimento delle quote CPU. Il modo migliore che conosco per determinare che sarebbe quello di scrivere un componente lato server lato spreco di CPU, distribuirlo in un ambiente di prova e vedere come funziona il suo comportmento di riciclaggio. Una componente semplice che si trova in un ciclo stretto per alcuni secondi e quindi restituisce una string nota combinata con un client che esegue un cablaggio di prova con qualcosa di simile a un pool di processi paralleli "wget". Hammer su di esso con un gruppo di richieste parallele da un cliente e relazione su come le richieste possano ricevere la risposta adeguata rispetto a messaggi di errore, ecc (mi fa sentire così sciocco da wherer ricorrere a cose come questo, al contrario di andare a cercare al codice sorgente …)

Dato i commenti nell'altra risposta, ho fatto i miei test, che ripeterò qui.

Nel mio test, limitando un pool di applicazioni (v4.0 Integrated) ad un piccolo limite della CPU (0,01%) e un piccolo intervallo (1 minuto) con l'azione KillW3WP abilitata, superando questo limite uccide w3wp arrestando il pool di applicazioni .

Una volta raggiunto il limite di intervallo, il pool di applicazioni viene automaticamente riavviato .

Cambiare l'azione su Nessuna azione non altera il process w3wp.

In entrambi i casi viene registrato un evento di sistema 5025.

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.