Не могу понять, куда теряется память.
Дело в том, что сумма по процессам в ps показывает одно, а доступная память (считал как inactive+free+cached) - совсем другое.
Разница в 10 гигабайт. Есть подозрение, что что-то течет, но при этом память не освобождает, даже после завершения процесса.
Сбор памяти проверял простым кодом на bash
#!/bin/sh
d=`date +%F_%H`
f=/root/vm_utilize/$d.log
ps axu | awk '{print $11 " " $5}' | grep -v ' 0$' | grep -v VSZ >> $f
sum=0
for i in `ps axu | awk '{print $5}' | grep -v VSZ`; do
sum=$(($sum + $i))
done
echo $sum >> $f
UPD:
slabtop помог увидеть:
OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME
21155820 21155820 100% 0.19K 1057791 20 4231164K dentry
Это очень много!
Описание проблемы нашел вот здесь -
serverfault.com/questions/561350/unusually-high-de...
Обновил в итоге libcurl.
Вопрос закрыт.
Описано тут:
forum.openvz.org/index.php?t=msg&goto=48093&
Там есть решение:
sync && echo 2 >/proc/sys/vm/drop_caches
Дополнительно обсуждалось тут:
Вся память постепенно уходит под Cached
linsovet.org.ua/content/linux-flush-system-caches