Il kernel Linux non riesce a gestire dolcemente le situazioni di insufficienza di memoria

Nella mailing list degli sviluppatori del kernel Linux sollevata la questione della gestione della situazione di esaurimento della memoria libera in Linux:

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

Passi:

  • Avviamo con il parametro «mem=4G».
  • Disattiviamo il supporto per lo swap (sudo swapoff -a).
  • Avviamo qualsiasi browser web, ad esempio, Chrome/Chromium o/ed Firefox.
  • Iniziamo ad aprire schede con siti web e osserviamo come diminuisce la quantità di memoria libera.

Non appena si verifica una situazione in cui una nuova scheda richiede più memoria RAM di quella disponibile, il sistema si blocca quasi completamente. Avrete difficoltà persino a spostare il cursore del mouse. L'indicatore del disco rigido lampeggia incessantemente (non capisco perché). Non riuscirete a lanciare nuove applicazioni né a chiudere quelle attualmente in esecuzione.

Questa piccola crisi può durare minuti o anche di più. Penso che il sistema non dovrebbe comportarsi in questo modo. Credo che si debba fare qualcosa per evitare tali “blocchi”.

Sono quasi sicuro che sia possibile modificare alcuni parametri sysctl per evitare situazioni simili, ma qualcosa mi suggerisce che ciò dovrebbe essere fatto di default per tutti, poiché gli utenti non tecnici, di fronte a un problema del genere, potrebbero semplicemente rinunciare all'uso di Linux e non avrebbero voglia di cercare soluzioni su Google.

In commenti su Reddit alcuni utenti propongono di abilitare lo swap, ma questo non risolve il problema, lo rimanda solo e spesso lo aggrava. Come possibile soluzione futura potrebbe essere coinvolto il nuovo 4.20 e migliorato nel kernel 5.2 sottosistema PSI (Pressure Stall Information), che consente di analizzare le informazioni sui tempi di attesa per ottenere varie risorse (CPU, memoria, input/output). Questo sottosistema permette di monitorare la mancanza di memoria in una fase iniziale, identificare la fonte dei problemi e terminare applicazioni non importanti, senza arrivare a effetti visibili per l'utente.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster