O núcleo de Linux non pode xestionar situacións sen memoria con gracia

Na lista de correo do programador do núcleo de Linux levantado Problema co manexo da situación de pouca memoria en Linux:

Hai un problema coñecido que afecta a moitas persoas durante moitos anos e que se pode reproducir en menos duns minutos no último núcleo de Linux 5.2.6. Todos os parámetros do núcleo están configurados cos valores predeterminados.

Pasos:

  • Arranque co parámetro "mem=4G".
  • Desactivar o soporte de intercambio (sudo swapoff -a).
  • Lanzamos calquera navegador web, por exemplo, Chrome/Chromium e/ou Firefox.
  • Comezamos a abrir pestanas con sitios e observamos como diminúe a cantidade de memoria libre.

En canto xorde unha situación na que unha nova pestana require máis memoria RAM da que está dispoñible, o sistema conxélase case por completo. Terá dificultade incluso para mover o cursor do rato. O indicador do disco duro parpadeará sen parar (non sei por que). Non poderás iniciar novas aplicacións nin pechar as que se están executando actualmente.

Esta pequena crise pode durar minutos ou máis. Supoño que o sistema non debería comportarse deste xeito. Creo que hai que facer algo para evitar tales "conxelacións".

Estou bastante seguro de que é posible cambiar algúns parámetros sysctl para evitar este tipo de situación, pero algo me di que este podería ser o predeterminado para todos porque os usuarios non técnicos que se atopen con este problema simplemente deixarán de usar Linux e non o farán. coidado. para buscar solucións en Google.

В comentarios en Reddit, algúns usuarios suxiren habilitar o intercambio, pero isto non resolve o problema, só o pospón e moitas veces o empeora. Como posible solución no futuro, pode estar implicado o aparecido no núcleo 4.20 e mellorado no núcleo 5.2 Subsistema PSI (Pressure Stall Information), que permite analizar información sobre o tempo de espera para recibir diversos recursos (CPU, memoria, E/S). Este subsistema permite organizar o seguimento da escaseza de memoria nunha fase inicial, determinar a orixe dos problemas e finalizar aplicacións sen importancia sen causar efectos perceptibles para o usuario.

Fonte: opennet.ru

Engadir un comentario