Я получаю сумму всей зарезервированной памяти в килобайтах, используя следующую команду: -
ps aux --sort -rss | awk '{sum +=$6} END {print sum}'
OUTPUT: 14746220 i.e. 14.74GB
Однако free -g возвращает 27GB
как использовалось. Почему есть разница между двумя выходами? Разве ps не показывает все выделение памяти?
У меня была точно такая же ситуация. htop
и top
оба сообщили об использовании около 95% (исключая буферы/кэш), как и free -m
. При суммировании процессов из ps
, я использовал только около 10% памяти. Я нашел эти сайты бесценными:
В моем случае это был кэш dentries/inode, который заполнял память. Я не знаю, почему free
не засчитал их как буферы/кэш. Промыть эту информацию можно следующей командой, которая не навредит системе:
echo 3 > /proc/sys/vm/drop_caches
Информация об этом подробно описана здесь: https://linux-mm.org/Drop_Caches