KSysGuard informa incorrectamente el uso de la memoria

KSysGuard informa incorrectamente el uso de la memoria

Recientemente, un par de veces noté que mi computadora portátil funcionaba un poco lenta y que la luz del disco parpadeaba mucho. Es un i7 con SSD y 12 GB de RAM, por lo que no espero mucha lentitud al navegar.

Esta última vez, me molestó, así que eché un vistazo rápido al Monitor del sistema (KSysGuard) y mostraba que mi partición de intercambio de 2 GB estaba utilizada al 100%, pero la memoria física solo era de 4,8 GB de 11,6 (que es donde aparece el gráfico). va a). Así que pensé en intentar vaciar el intercambio apagándolo y encendiéndolo nuevamente ( swapoff -a, swapon -a), pero el intercambio falló debido a una RAM insuficiente.

Esto me confundió, ya que debería tener unos 7 GB de repuesto, según KSysGuard, así que pensé en ver qué tenía que decir top. Top mostró alrededor de 150 MB de RAM libre y 2048/2048 MB de intercambio en uso. ¡No es de extrañar que estuviera funcionando un poco lento!

¿Por qué KSysGuard subestima tanto el uso de memoria y cómo puedo hacer que sea más revelador?

Respuesta1

Según los comentarios, aumenté mi archivo de intercambio de 2GiB a 6GiB usando lo siguiente:

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, los comandos anteriores desactivan el intercambio moviendo las páginas de nuevo a la memoria física, eliminan el archivo de intercambio, crean un nuevo archivo de 6 GiB llamado archivo de intercambio, establecen los permisos solo como root, configuran el archivo para uso de intercambio y finalmente vuelven a activar el intercambio con el archivo nuevo.

Luego agregué vm.swappiness=70al final de la penúltima sección para /etc/sysctl.confque el intercambio al archivo de página sea un poco más agresivo (ahorrando algo de memoria física).

Sin embargo, para responder realmente a la pregunta de por qué KSysGuard parecía estar mintiendo sobre la cantidad de RAM en uso, es porque el gráfico predeterminado de "Memoria e historial de intercambio" en realidad solo muestra datos del sensor de "Memoria de aplicaciones". Para resolver esto, agregué una pestaña llamada Memoria en KSysGuard e incluí 2 gráficos: uno para memoria física y otro para intercambio. El gráfico de memoria física tiene configurados los siguientes sensores: Memoria usada, Memoria libre, Memoria buffer, Memoria caché. En realidad, solo se requieren Usado y Caché, pero es la métrica Usada la que le indica cuánta memoria se ha usado realmente.

Respuesta2

De los comentarios...

Nota: recuerde que la RAM no utilizada se utiliza para los buffers de archivos y discos.

El verdadero problema es que su espacio de intercambio 2G es demasiado pequeño y su disco falla.

Aumentaría su intercambio a al menos 6G y modificaría su vm.swappiness del valor predeterminado de 60 a 80.

Para probar varias configuraciones de vm.swappiness, utilice sudo sysctl vm.swappiness=80. Los valores de vm.swappiness superiores al valor predeterminado de 60 hacen un mayor uso del intercambio. Los valores inferiores a 60 utilizan más RAM.

Para hacerlo permanente, edítelo /etc/sysctl.confy agréguelo vm.swappiness=80al final, luego reinicie.

información relacionada