Congelamento do Ubuntu quando pouca memória

4

Meu servidor Ubuntu funcionou por um mês sem nenhum problema. Mas na semana passada comecei a usar programas que exigem mais memória. E quando a memória livre é de cerca de 100MB, o sistema completamente congelar. Eu não consigo digitar nada, mova o cursor, conecte a massa .. simplesmente nada .. mas é estranho, o disco rígido ainda está funcionando (está piscando) .. Eu posso reproduzir totalmente esse problema e ocorre quase sempre quando a memória livre está por perto 100MB Mas eu tenho arquivo de swap, e neste arquivo de swap é espaço livre suficiente .. Aqui está o meu status de memória 1 segundo antes de ser congelado.

    Every 1.0s free -mh                                               Mon Mar 19 17:05:33 2018                                     

               total         used          free         shared      buff/cache     available
Mem:             11G         10G           115M          1.2G             1.5G         115M
Swap:           7.9G        2.4G           5.5G

Aqui está o meu kernel linux

Linux xxx 4.15.1-041501-generic #201802031831 SMP Sat Feb 3 18:32:13 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Aqui está a minha versão do Ubuntu

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 17.10
Release:        17.10
Codename:       artful

Aqui estão minhas configurações de swap, overcommit_memory e overcommit_ratio

vm.swappiness = 60
vm.overcommit_memory = 0
vm.overcommit_ratio = 50

Aqui está minha configuração de hardware

Motherboard: PRIME B350-PLUS
CPU            : AMD Ryzen 7 1700 Eight-Core Processor
RAM           : 4GB + 8GB DDR4
Hard drive  : Samsung 960 evo 250GB

Claro, posso atualizar minha memória para 16 GB, mas ainda quero ter meu sistema estável. Alguém tem alguma idéia do que poderia estar errado?

    
por user1247373 21.03.2018 / 10:26

1 resposta

1

Acredito que essa é a mesma pergunta que esta, mesmo que você tenha ativado a troca: link

Basicamente, o kernel (ou kswapd0) está removendo todas as páginas de código (executáveis) de cada processo ativo para liberar mais memória RAM, portanto, em cada switch de contexto quando um processo retoma a execução, ele precisa ser relido do disco para a memória e só então pode continuar a execução.

Isso precisa acontecer tantas vezes por segundo, juntamente com o fato de que o disco é muito mais lento que a RAM, que o sistema operacional é visto como efetivamente congelando. É como se a RAM fosse temporariamente substituída pelo disco, e tudo isso porque o kernel comete o erro de é despejar o arquivo dos processos em execução páginas executáveis de back-end também, em vez de apenas as inativas.

Se você quer tentar e ver o que acontece se o kernel não remover esses, você pode recompilar o kernel com este patch, visto em esta pergunta. O que deve acontecer é que o sistema operacional deve congelar por no máximo 1 segundo agora em vez de minutos (ou permanentemente) e deve haver pouca ou nenhuma discusão.

    
por Marcus Linsner 31.08.2018 / 12:33