LINUX.ORG.RU

Отжирается память катастрофически


0

0
Привет!

У меня следующий трабл: я написал демонический процесс, этот процесс за время своей работы умудряется использовать всю доступную физическую память - 8Гиг, хотя я ничего плохого не делаю, все ресурсы освобождаются, Valgrind-ом проверял,он говорит о каких-то незначительных утечках порядка 100 Кбайт, я вот думаю что может так влиять в коде на используемую память? Помогите разобраться...


Ответ на: комментарий от cvv
В общем ситуация такая мой демон должен обрабатывать много файлов, так вот, он открывает файл читает инфу, обрабатывает её, записывает инфу в новый файл, закрывает оба файла и удаляет исходный файл, прикол в том что когда я стоплю этот демон, у меня сожрана вся оперативка, но когда я удаляю файлы-результаты работы демона, физическая память почему-то освобождается, может кто сталкивался с таким, подскажите ....
snoopy
() автор топика
ты куда смотришь? 
   ps aux | grep daemon 
или
   free

З.Ы. я подозреваю что ты путаешь память занимаемую процессом со 
свободной/занятой памятью в системе, это я о файловом/дисковом кеше.
sdio ★★★★★
()
Ответ на: комментарий от sdio
и я имею в виду свободную память в системе, которая непонятным образом освобождается после удаления файлов
snoopy
() автор топика
Ответ на: комментарий от snoopy
Приведи соответствующую твоему процессу строку вывода ps uax. И первую строку с названиями колонок.
anonymous
()
Ответ на: комментарий от snoopy
Будь проще, выполни команды и покажи их вывод

free
./daemon daemon.cfg &
sleep 10               #или сколько там ему надо чтобы пожрать ОЗУ
ps aux | grep daemon
free
killall daemon; sleep 5
free
rm files*; sleep 5
free


Доступно?
sdio ★★★★★
()
Ответ на: комментарий от sdio
я понял, кажется в чем дело, поскольку я имею дело с большим количеством файлов, то linux кеширует диск... top говорит что кеш примерно такой же как озу, потом все уходит в своп :-)
snoopy
() автор топика
Ответ на: комментарий от snoopy
правда щас своп отключен и оно помоему циклично перетирает кеш и освобождает озу - иначе все бы давно нагнулось...
snoopy
() автор топика
Ответ на: комментарий от snoopy
кешировать он должен более менее оптимально, а не так как у тебя.

может быть ты в tmpfs пишешь??

dilmah ★★★★★
()
man valgrind
/MEMCHECK OPTIONS

с помощью --show-reachable получишь список невысвобожденных фрагментов.
generatorglukoff ★★
()
Ответ на: комментарий от snoopy
В таком случае демон не может занять более 3 гиг ОЗУ.

тоесть она у тебя толи под кешем винта толи ты работаеш с файлами расположеными на tmpfs

cvv ★★★★★
()
Ответ на: комментарий от cvv
Кстати есть фраза: "если ОСь не пользует всю доступную ОЗУ то это плохая ось".

Линукс это хорошая ОСь и ты просто не туда смотриш. не занимает твой демон твои 8Гиг памяти...

cvv ★★★★★
()
Один из самых смешных топиков на моей памяти. Аффтары, пешите есчо.
anonymous
()
А что за система? Например под HP-UX и некоторыми линуксовыми (сразу скажу, не знаю какими) менеджерами памяти, размер виртуальной памяти ничего не значит.
HEBECTb_KTO
()
Ответ на: комментарий от HEBECTb_KTO
Пардон, пропустил, что память освобождается после удаления файлов.. Видимо кеш.
HEBECTb_KTO
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.