Я диагностирую машину с медленными холмами из-за тяжелого использования подкачки после выполнения в течение нескольких дней. Система имеет 16 ГБ поршня и должна обычно быть прекрасной, сохранять это большой объем поршня используется кэшем и освобожденной на потребности. Непрерывное использование шлифует систему к останову, в то время как целых 12 ГБ заняты в кэше.
Перед упоминанием этого я хорошо знаю о Linux, Съел Мой Поршень.
Типичный дисплей свободных после 3 - 4 дней выполнения:
total used free shared buff/cache available
Mem: 15G 4.4G 184M 280M 10G 116M
Swap: 15G 7.8G 8.1G
Для поиска и устранения неисправностей я опустился до нуля swapiness.
$ cat /proc/sys/vm/swappiness
0
Кроме того, я не могу вручную назвать очистку кэша с любым значимым эффектом.
$ 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
И о "подкачке", можно использовать 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