Algumas vezes recentemente notei que meu laptop estava um pouco lento e a luz do disco tremia muito. É um i7 com SSD e 12 GB de RAM, então não espero muita lentidão apenas na navegação.
Da última vez, isso me incomodou, então dei uma olhada rápida no System Monitor (KSysGuard) e ele estava mostrando que minha partição swap de 2 GB estava 100% utilizada, mas a memória física estava apenas em 4,8 GB de 11,6 (que é onde o gráfico vai para). Então pensei em tentar esvaziar o swap desligando-o e ligando-o novamente ( swapoff -a
, swapon -a
), mas o swapoff falhou devido à RAM insuficiente.
Isso me confundiu, pois eu deveria ter cerca de 7GB sobrando, de acordo com o KSysGuard, então pensei em ver o que top tinha a dizer. Top mostrou cerca de 150 MB de RAM livre e 2.048/2.048 MB de swap em uso. Não admira que estivesse um pouco lento!
Por que o KSysGuard subestimaria tanto o uso de memória e como posso torná-lo mais revelador?
Responder1
De acordo com os comentários, aumentei meu arquivo de troca de 2GiB para 6GiB usando o seguinte:
sudo swapoff -a
sudo rm /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=6144
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Respectivamente, os comandos acima desativam a troca movendo as páginas de volta para a memória física, removem o arquivo de troca, criam um novo arquivo de 6GiB chamado swapfile, definem as permissões apenas para root, configuram o arquivo para uso de troca e finalmente ativam a troca novamente com o novo arquivo.
Em seguida, adicionei vm.swappiness=70
no final da penúltima seção para /etc/sysctl.conf
tornar a troca para o arquivo de paginação um pouco mais agressiva (economizando um pouco de memória física).
No entanto, para realmente responder à questão de por que o KSysGuard parecia estar mentindo sobre a quantidade de RAM em uso, é porque o gráfico padrão "Memória e histórico de troca" na verdade mostra apenas dados do sensor "Memória do aplicativo". Para resolver isso, adicionei uma aba chamada Memória no KSysGuard e incluí 2 gráficos - um para memória física e outro para troca. O gráfico da memória física possui os seguintes sensores configurados: Memória Utilizada, Memória Livre, Memória Buffer, Memória Cache. Apenas Usado e Cache são realmente necessários, mas é a métrica Usado que informa quanta memória foi realmente usada.
Responder2
Dos comentários...
Nota: lembre-se de que a RAM não utilizada é usada para buffers de arquivos e discos.
O verdadeiro problema é que seu espaço de troca 2G é muito pequeno e seu disco está se debatendo.
Eu aumentaria seu swap para pelo menos 6G e modificaria seu vm.swappiness do padrão de 60 para 80.
Para testar várias configurações de vm.swappiness, use sudo sysctl vm.swappiness=80
. Valores vm.swappiness maiores que o padrão de 60 fazem mais uso de swap. Valores inferiores a 60 utilizam mais RAM.
Para torná-lo permanente, edite /etc/sysctl.conf
e adicione vm.swappiness=80
no final e reinicie.