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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.