Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > cached memory


Автор: proc_maker 22.3.2007, 08:51
Привет Друзья!

Опишу ситуацию. Linux, runlevel 3. Запущено приложение, которое должно работать постоянно (по нескольку суток) без рестарта и перезагрузки системы. Приложение активно работает с динамической памятью, примерно операции new-delete пропускают по 100 килобайт в сек. После 10 - 12 часов работы этой программы я наблюдаю что вся физическая память из free перекачивается в cached (если смотреть top-ом). Проверял с помощью mtrace - утечки памяти нет, т.е. программа получила через new, чтото там сделала и освободила через delete. После того как вся физическая память уходит в cached туда начинает ползти и swap.
Результат такой жизни программы - ужасные тормоза системы после 10-12 часов работы этой программы.

Посоветуйте плз что можно предпринять чтобы этого избежать. Вариант везде использовать статические буфера неприемлим поскольку программа активно использует библиотеки для обработки видео это раз и во-вторых переделать всю программу реального времени в несколько сотен тысяч строк без граблей нереально.

Спасибо!!
С уважением, Дмитрий

Автор: MAKCim 22.3.2007, 09:20
Цитата(proc_maker @  22.3.2007,  08:51 Найти цитируемый пост)
После 10 - 12 часов работы этой программы я наблюдаю что вся физическая память из free перекачивается в cached

ну это нормально
Цитата(proc_maker @  22.3.2007,  08:51 Найти цитируемый пост)
После того как вся физическая память уходит в cached туда начинает ползти и swap.

а вот это странно
если new/delete вызываются равномерно, нехватки памяти быть не должно
а swap - это вообще на крайний случай (когда либо кэш сбросить нельзя, либо его просто нет)

Автор: proc_maker 22.3.2007, 09:26
в то время когда начинает идти в cached и swap, наблюдаю такую ситуацию:

total physical memory :256 M
used physical memory : около 100M
free physical memory : 3M
cached: около 150M
Swap: 400M
swap used: 10M

и далее растет swap used и cached, а swap худеет, в то время как параметры физической памяти практически не изменны

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)