GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:è possibile attivare Oom-killer durante lo scambio forzato?

È possibile fare in modo che il sistema scambi preventivamente le pagine inattive (vm.swappiness ), ma invocare oom-killer quando il sistema esaurisce la RAM (invece di esaurire la memoria) ed è costretto a scambiare?

L'obiettivo finale è evitare che il sistema si fermi quando inizia a rompersi il disco a causa di gravi errori di pagina, ma lasciare comunque che le pagine inattive vengano scambiate.

Un altro desiderio sarebbe configurare la quantità di memoria di scambio che il sistema è costretto a utilizzare prima che si attivi oom-killer. In questo modo il sistema può immergersi un po' nello scambio, purché non vada troppo lontano. Oppure potrei impostare una tale soglia per attivare oom-killer prima di utilizzare tutta la RAM in modo che ci sia sempre spazio per la cache del file system (e quindi evitare più thrashing del disco).

Non sembra che sarebbe così difficile da fare. Sembra che tu possa semplicemente dire all'oom-killer di attivarsi quando il sistema ha X ram usato/libero. Ma questo è il motivo per cui sto chiedendo; Non lo so.

Per chiarimenti, non sto cercando di disattivare lo scambio o di modificare il vm.swappiness parametro

Risposta accettata:

Ho anche lottato con quel problema. Voglio solo che il mio sistema rimanga reattivo, qualunque cosa accada, e preferisco perdere i processi piuttosto che aspettare qualche minuto. Non sembra esserci alcun modo per ottenere questo risultato usando il kernel oom killer.

Tuttavia, nello spazio utente, possiamo fare quello che vogliamo. Quindi ho scritto il demone Early OOM
( https://github.com/rfjakob/earlyoom ) che interromperà il processo più grande (tramite RSS) una volta che la RAM disponibile scenderà al di sotto del 10%.

Senza earlyoom, è stato facile bloccare la mia macchina (8 GB di RAM) avviando http://www.unrealengine.com/html5/ alcune volte. Ora, le schede colpevoli del browser vengono eliminate prima che le cose sfuggano di mano.


Linux
  1. Linux:scambio di chiavi in ​​un terminale virtuale?

  2. Possibile utilizzare un .dll su Linux

  3. Linux:non creare partizioni di swap?

  4. Linux:scambia in blocchi più grandi

  5. Linux:come annullare esplicitamente lo scambio di tutto ciò che è possibile?

Requisiti di sistema di Kali Linux

Comando di spegnimento di Linux

Comando Fsck in Linux

Linux è un sistema operativo o un kernel?

Gestione dello swap nel moderno sistema Linux

Documentare il tempo di attività del sistema in Linux