Domanda

Ho notato che in una delle mie applicazioni web di produzione, quando riciclo manualmente una piscina app, il processo di lavoro riciclato può assumere verso l'alto di 60 + secondi per essere effettivamente completamente distrutta, sulla base di guardarlo in Task Manager. Tuttavia, se mi fermo completamente la piscina app, il processo di lavoro se ne va quasi istantaneamente -. In 1-2 secondi

Quindi, la mia domanda è duplice:

a) Perché ci vuole così tanto tempo per distruggere il processo (e più significato, rilasciare le risorse utilizzate / bloccate da essa) quando il pool di applicazione viene riciclato al posto di fermo; e

b) Assumendo che ho smesso di traffico da essere diretto al server, non v'è alcun motivo per non stop / start anziché riciclano?


Modifica
 Per chiarire, prima che io sia di riciclo o arrestare il pool di app, mi fermo il traffico vengano inviati al server in questione (il server è in un cluster con bilanciamento del carico e ho rimuovere il server dal bilanciamento del carico). Quindi, in teoria, non ci dovrebbero essere richieste provenienti al sito Web al momento che sto facendo di tutto per il pool di app.


Modifica Parte Deux:
 Dopo aver letto il legame di Igal, sembra abbastanza ovvio per me che cosa sta accadendo. Quando ho riciclare il pool di app, il nuovo processo viene avviato, ma dal momento che non v'è alcun traffico a tutti, non sta registrando il nuovo processo di funzionamento, in modo da non spegnere il vecchio fino a quando il timeout (che è di 90 secondi).

Con questa conoscenza, è chiaro per me che la funzionalità "Recycle" è specificamente destinato ad essere utilizzato midstream su un server di vivere, e dal momento che sto drenante manualmente il traffico in anticipo, dovrei usare Stop / Start, invece.

È stato utile?

Soluzione

a) A causa di sovrapposta Recycling . C'è un periodo di tempo che il processo di "vecchio" attende il nuovo per iniziare.

b) No. Per quanto ne so.

Altri suggerimenti

Un riciclo se ricordo bene consente a tutte le richieste attuali per terminare poi si riciclare il pool di applicazioni. Una fermata semplicemente si conclude che nel momento esatto in cui lo si interrompe.

questo link ,

  

Arresto - fermando un pool di applicazioni, si comunica tutti i processi di lavoro di IIS che servono il pool di applicazioni per spegnere,   e ad evitare i processi di lavoro supplementari venga avviato fino   il pool di applicazioni viene avviato nuovamente. Questo avvia una graziosa   spegnimento dei processi di lavoro, con ogni processo di lavoro tentare   per drenare tutto l'esso di richieste e quindi uscire.

     

Se un processo di lavoro non uscire entro la quantità di tempo specificato   dalla proprietà di configurazione ShutdownTimeLimit nel processmodel   elemento di definizione di ciascun pool di applicazioni (default: 90 sec), WAS   sarà con forza terminarlo (questo non accade se un debugger nativo   è allegato).

     

Quindi, fermandosi un pool di applicazioni è un'azione dirompente che   cause scaricano dei domini di applicazione ASP.NET, processi figli FastCGI,   e la perdita di qualsiasi stato di applicazione in-process.

     

Riciclaggio - riciclaggio un pool di applicazioni fa sì che tutti attualmente in esecuzione processi di lavoro IIS in quel pool di applicazioni di essere con grazia   l'arresto, ma a differenza di fermare la piscina, nuovi processi di lavoro IIS può   essere avviato su richiesta per gestire le richieste successive.

     

Riciclaggio un pool di applicazioni è un buon modo per provocare il reset del   stato dell'applicazione e la configurazione della cache da parte del lavoratore di IIS   processi che non viene aggiornato automaticamente (per lo più a livello mondiale   chiavi di registro), senza interrompere il funzionamento del server. Questo   rende riciclare il pool di applicazioni una grande alternativa a una   IISRESET nella maggior parte dei casi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top