Я пытаюсь устранить неисправность машины с замедлением из-за интенсивного использования swap после запуска в течение нескольких дней. Система имеет 16 ГБ оперативной памяти и обычно должна быть в порядке, за исключением того, что большой объем бара используется кешем и не освобождается от необходимости.
Прежде чем вы упомянули об этом, я хорошо знаю Linux Ate My Ram.
] Типичный показ свободного после 3 - 4 дней работы:
total used free shared buff/cache available
Mem: 15G 4.4G 184M 280M 10G 116M
Swap: 15G 7.8G 8.1G
Чтобы устранить неисправность, я сбросил обход на ноль.
$ cat /proc/sys/vm/swappiness
0
Кроме того, m [
$ sudo su -c "free -h && sync && echo 3 > /proc/sys/vm/drop_caches && free -h"
total used free shared buff/cache available
Mem: 15G 4.4G 166M 280M 10G 104M
Swap: 15G 7.8G 8.1G
total used free shared buff/cache available
Mem: 15G 4.4G 186M 280M 10G 115M
Swap: 15G 7.8G 8.1G
Мне интересно, может ли это иметь отношение к бортовому видео с Skylake. Независимо от того, я не уверен, как продолжить рассмотрение проблемы, большинство интернет-ресурсов говорят, что использование кеша является нормальным и освобождается по мере необходимости - когда это явно не так. Где я должен смотреть дальше?
Чтобы узнать о «кеше памяти», используйте slabtop, используя -s, вы можете отсортировать вывод, а c - размер кеша, поэтому используйте:
sudo slabtop -s c
Для меня большая часть кеша связана с inode_cache
И о «swap». Вы можете использовать файл status в каждом каталоге процессов в /proc, чтобы узнать, какой из них из них используется своп.
Для конкретной программы:
cd /proc/$(pgrep -x programname)
grep -i swap status
Чтобы получить список всех размеров кеша процесса:
cd /proc
find -maxdepth 2 -iname status -exec grep -i -e name -e swap {} \; -exec echo "---" \;
вывод будет аналогичен:
---
Name: atd
VmSwap: 0 kB
---
Name: rsyslogd
VmSwap: 0 kB
---
Name: cron
VmSwap: 0 kB
Чтобы узнать о «кеше памяти», используйте slabtop, используя -s, вы можете отсортировать вывод, а c - размер кеша, поэтому используйте:
sudo slabtop -s c
Для меня большая часть кеша связана с inode_cache
И о «swap». Вы можете использовать файл status в каждом каталоге процессов в /proc, чтобы узнать, какой из них из них используется своп.
Для конкретной программы:
cd /proc/$(pgrep -x programname)
grep -i swap status
Чтобы получить список всех размеров кеша процесса:
cd /proc
find -maxdepth 2 -iname status -exec grep -i -e name -e swap {} \; -exec echo "---" \;
вывод будет аналогичен:
---
Name: atd
VmSwap: 0 kB
---
Name: rsyslogd
VmSwap: 0 kB
---
Name: cron
VmSwap: 0 kB
Чтобы узнать о «кеше памяти», используйте slabtop, используя -s, вы можете отсортировать вывод, а c - размер кеша, поэтому используйте:
sudo slabtop -s c
Для меня большая часть кеша связана с inode_cache
И о «swap». Вы можете использовать файл status в каждом каталоге процессов в /proc, чтобы узнать, какой из них из них используется своп.
Для конкретной программы:
cd /proc/$(pgrep -x programname)
grep -i swap status
Чтобы получить список всех размеров кеша процесса:
cd /proc
find -maxdepth 2 -iname status -exec grep -i -e name -e swap {} \; -exec echo "---" \;
вывод будет аналогичен:
---
Name: atd
VmSwap: 0 kB
---
Name: rsyslogd
VmSwap: 0 kB
---
Name: cron
VmSwap: 0 kB