Il kernel Linux non è in grado di gestire con garbo le situazioni di memoria insufficiente

Sulla mailing list degli sviluppatori del kernel Linux sollevato Problema con la gestione della situazione di memoria insufficiente in Linux:

Esiste un problema noto che affligge molte persone da molti anni e che può essere riprodotto in meno di pochi minuti sull'ultimo kernel Linux 5.2.6. Tutti i parametri del kernel sono impostati sui valori predefiniti.

passaggi:

  • Avviare con il parametro "mem=4G".
  • Disattiva il supporto dello scambio (sudo swapoff -a).
  • Lanciamo qualsiasi browser web, ad esempio Chrome/Chromium e/o Firefox.
  • Iniziamo ad aprire le schede con i siti e osserviamo come diminuisce la quantità di memoria libera.

Non appena si verifica una situazione in cui una nuova scheda richiede più RAM di quella disponibile, il sistema si blocca quasi completamente. Avrai difficoltà anche a spostare il cursore del mouse. L'indicatore del disco rigido lampeggerà ininterrottamente (non so perché). Non sarai in grado di avviare nuove applicazioni o chiudere quelle attualmente in esecuzione.

Questa piccola crisi può durare minuti o più. Immagino che il sistema non dovrebbe comportarsi in questo modo. Penso che sia necessario fare qualcosa per evitare tali “congelamenti”.

Sono abbastanza sicuro che sia possibile modificare alcuni parametri sysctl per evitare questo tipo di situazione, ma qualcosa mi dice che questa potrebbe essere l'impostazione predefinita per tutti perché gli utenti non tecnici che riscontrano questo problema semplicemente rinunceranno a usare Linux e non lo faranno cura. per cercare soluzioni su Google.

В commenti su Reddit alcuni utenti suggeriscono di abilitare lo swap, ma questo non risolve il problema, lo posticipa soltanto e spesso lo peggiora. Come possibile soluzione in futuro, potrebbe essere coinvolto il problema apparso nel kernel 4.20 e migliorato nel nucleo 5.2 Sottosistema PSI (Pressure Stall Information), che consente di analizzare informazioni sul tempo di attesa per la ricezione di varie risorse (CPU, memoria, I/O). Questo sottosistema consente di organizzare tempestivamente il monitoraggio della carenza di memoria, di determinare l'origine dei problemi e di terminare le applicazioni non importanti senza causare effetti visibili all'utente.

Fonte: opennet.ru

Aggiungi un commento