Il kernel Linux non riesce a gestire in modo morbido le situazioni di mancanza di memoria.

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

È un problema noto che affligge molte persone da anni e può essere riprodotto in meno di pochi minuti sulla versione più recente del kernel Linux 5.2.6. Tutti i parametri del kernel sono impostati sui valori predefiniti.

Passaggi:

  • Avviamo con il parametro 'mem=4G'.
  • Disabilitiamo il supporto dello swap (sudo swapoff -a).
  • Avviamo qualsiasi browser web, ad esempio Chrome/Chromium o/e Firefox.
  • Iniziamo ad aprire schede con siti 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 praticamente completamente. Avrete difficoltà persino a spostare il cursore del mouse. L'indicatore del disco fisso lampeggerà ininterrottamente (non capisco perché). Non sarete in grado di avviare nuove applicazioni o chiudere quelle attualmente aperte.

Questa piccola crisi può durare minuti o più a lungo. Suppongo che il sistema non dovrebbe comportarsi in questo modo. Penso che sia necessario fare qualcosa per evitare tali "blocchi".

Sono quasi sicuro che sia possibile modificare alcune impostazioni di sysctl per evitare situazioni simili, ma ho la sensazione che si possa fare di default per tutti, poiché gli utenti non tecnici, di fronte a simili problemi, semplicemente smetteranno di usare Linux e non avranno tempo per cercare soluzioni su Google.

In commenti Su Reddit, alcuni utenti suggeriscono di abilitare lo swap, ma questo non risolve il problema, lo rinvia solo e spesso lo aggrava. Come possibile soluzione futura, potrebbe essere coinvolta la nuova funzionalità nel kernel 4.20 e migliorata nel kernel 5.2 sottosistema PSI (Pressure Stall Information), che consente di analizzare le informazioni sui tempi di attesa per ottenere diverse risorse (CPU, memoria, I/O). Questo sottosistema offre la possibilità di monitorare la carenza di memoria in una fase iniziale, identificare le fonti dei problemi e terminare le applicazioni non essenziali, senza arrivare a creare 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