KSysGuard неправильно сообщает об использовании памяти

KSysGuard неправильно сообщает об использовании памяти

Пару раз в последнее время я замечал, что мой ноутбук работает немного медленно, а индикатор диска сильно мерцает. Это i7 с SSD и 12 ГБ ОЗУ, так что я не ожидаю большой замедленности при простом просмотре.

В последний раз это меня достало, поэтому я быстро заглянул в системный монитор (KSysGuard), и он показал, что мой раздел подкачки размером 2 ГБ используется на 100%, но физическая память составляет всего 4,8 ГБ из 11,6 (куда и ведет график). Поэтому я подумал, что попробую очистить раздел подкачки, выключив и включив его снова ( swapoff -a, swapon -a), но swapoff не удалось из-за нехватки оперативной памяти.

Это меня смутило, так как, согласно KSysGuard, у меня должно быть около 7 ГБ свободного места, поэтому я подумал, что посмотрю, что скажет top. Top показал около 150 МБ свободной оперативной памяти и 2048/2048 МБ подкачки. Неудивительно, что он работал немного медленно!

Почему KSysGuard так сильно занижает данные об использовании памяти и как сделать так, чтобы он был самым информативным?

решение1

Согласно комментариям, я увеличил файл подкачки с 2 ГБ до 6 ГБ, используя следующее:

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

Соответственно, приведенные выше команды отключают подкачку, перемещая страницы обратно в физическую память, удаляют файл подкачки, создают новый файл размером 6 ГБ с именем swapfile, устанавливают разрешения только для root, настраивают файл для использования подкачки и, наконец, снова включают подкачку с новым файлом.

Затем я добавил vm.swappiness=70в конец предпоследнего раздела, чтобы /etc/sysctl.confсделать подкачку в файл подкачки немного более агрессивной (сэкономив немного физической памяти).

Однако, чтобы ответить на вопрос, почему KSysGuard, похоже, лгал о количестве используемой оперативной памяти, это потому, что диаграмма по умолчанию «История памяти и подкачки» на самом деле показывает только данные с датчика «Память приложения». Чтобы решить эту проблему, я добавил вкладку под названием «Память» в KSysGuard и включил 2 графика — один для физической памяти и один для подкачки. График физической памяти имеет следующие настроенные датчики: «Использованная память», «Свободная память», «Буферная память», «Кэш-память». На самом деле требуются только «Использованная память» и «Кэш», но именно метрика «Использованная память» сообщает вам, сколько памяти фактически было использовано.

решение2

Из комментариев...

Примечание: помните, что неиспользуемая оперативная память используется для файловых и дисковых буферов.

Реальная проблема в том, что у вас слишком мало места подкачки размером 2 ГБ, и ваш диск работает на пределе возможностей.

Я бы увеличил ваш swap как минимум до 6G и изменил бы vm.swappiness с 60 по умолчанию до 80.

Для проверки различных настроек vm.swappiness используйте sudo sysctl vm.swappiness=80. Значения vm.swappiness больше значения по умолчанию 60 больше используют swap. Значения меньше 60 больше используют оперативную память.

Чтобы сделать его постоянным, отредактируйте /etc/sysctl.confи добавьте vm.swappiness=80в конец, затем перезагрузите компьютер.

Связанный контент