O kernel do Linux não consegue lidar com situações de falta de memória normalmente

Na lista de discussão para desenvolvedores do kernel Linux criado Problema ao lidar com situações de pouca memória no Linux:

Há um problema conhecido que tem atormentado muitas pessoas há muitos anos e pode ser reproduzido em menos de alguns minutos no kernel Linux 5.2.6 mais recente. Todos os parâmetros do kernel são definidos com valores padrão.

Etapas:

  • Inicialize com o parâmetro “mem=4G”.
  • Desative o suporte a swap (sudo swapoff -a).
  • Lançamos qualquer navegador da web, por exemplo, Chrome/Chromium e/ou Firefox.
  • Começamos a abrir abas de sites e observar como a quantidade de memória livre diminui.

Assim que surge uma situação em que uma nova guia requer mais RAM do que a disponível, o sistema congela quase completamente. Você terá dificuldade até mesmo para mover o cursor do mouse. O indicador do disco rígido piscará sem parar (não sei por quê). Você não poderá iniciar novos aplicativos ou fechar os que estão em execução.

Esta pequena crise pode durar minutos ou mais. Acho que o sistema não deveria se comportar dessa maneira. Acho que algo precisa ser feito para evitar esses “congelamentos”.

Tenho certeza que é possível alterar alguns parâmetros do sysctl para evitar esse tipo de situação, mas algo me diz que esse pode ser o padrão para todos, porque usuários não técnicos que encontrarem esse problema simplesmente desistirão de usar o Linux e não care. para buscar soluções no Google.

В comentários no Reddit, alguns usuários sugerem habilitar a troca, mas isso não resolve o problema, apenas o adia e muitas vezes o piora. Como uma possível solução no futuro, o que apareceu no kernel pode estar envolvido 4.20 e melhorado no núcleo 5.2 Subsistema PSI (Pressure Stall Information), que permite analisar informações sobre o tempo de espera para recebimento de diversos recursos (CPU, memória, I/O). Este subsistema permite organizar precocemente o monitoramento da falta de memória, determinar a origem dos problemas e encerrar aplicações sem importância sem causar efeitos perceptíveis ao usuário.

Fonte: opennet.ru

Adicionar um comentário