GNU/Linux >> Linux Esercitazione >  >> Linux

Perché OOM-Killer non può semplicemente uccidere il processo che richiede troppo?

Considera questo scenario:

  • Hai 4 GB di memoria libera.
  • Un processo difettoso alloca 3.999 GB.
  • Apri un task manager per terminare il processo in fuga. Il task manager alloca 0,002 GB.

Se il processo che è stato ucciso è stato l'ultimo processo a richiedere memoria, il tuo task manager verrebbe ucciso.

Oppure:

  • Hai 4 GB di memoria libera.
  • Un processo difettoso alloca 3.999 GB.
  • Apri un task manager per terminare il processo in fuga. Il server X alloca 0,002 GB per gestire la finestra del task manager.

Ora il tuo server X viene ucciso. Non ha causato il problema; era solo "nel posto sbagliato al momento sbagliato". È stato il primo processo ad allocare più memoria quando non ne era rimasta, ma non è stato il processo che ha utilizzato tutta la memoria all'inizio.


Linux
  1. Linux:limite all'utilizzo della memoria per un singolo processo Linux?

  2. Linux:è il processo che ha un terminale di controllo o è la sessione che ha un terminale di controllo?

  3. Oltre 10 esempi per uccidere un processo in Linux

  4. Cosa ha ucciso il mio processo e perché?

  5. Come ottenere l'ID del processo per terminare un processo nohup?

Perché usare il desktop Pantheon per Linux Elementary OS

Come posso limitare la cache utilizzata dalla copia in modo che ci sia ancora memoria disponibile per un'altra cache?

Come posso visualizzare l'utilizzo della memoria di ciascun processo se eseguo un 'ps -ef'?

Cosa fare quando Ctrl + C non può terminare un processo?

Perché non riesco a scorrere nel terminale?

Come uccidere un processo che non muore mai?