The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"cached memory"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"cached memory"  
Сообщение от Дмитрий email(??) on 22-Мрт-07, 08:58 
Привет Друзья!

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

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

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

  • cached memory, DeadMustdie, 09:21 , 22-Мрт-07, (1)  
  • cached memory, DeadMustdie, 09:23 , 22-Мрт-07, (2)  
    • cached memory, Дмитрий, 09:29 , 22-Мрт-07, (3)  
      • cached memory, smb, 10:08 , 22-Мрт-07, (4)  
        • cached memory, Дмитрий, 10:29 , 22-Мрт-07, (5)  

Сообщения по теме [Сортировка по времени, UBB]


1. "cached memory"  
Сообщение от DeadMustdie email(??) on 22-Мрт-07, 09:21 
Если ядрышко и glibc старые, имеет смысл попробовать на чем-то свежем. "Уход" памяти в cached означает интенсивные операции ввода-вывода поверх кешируемой файловой системы, не более того. Возможно, стоит поковырять sysctl, некоторые параметры могут сильно влиять на управление памятью.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "cached memory"  
Сообщение от DeadMustdie email(??) on 22-Мрт-07, 09:23 
Кстати, вернуть "cached" во "free" очень просто - запустить программку, которая замаллочит, скажем, половинку cached, заполнит замаллоченное нулями и выйдет. Эффект 100%, но автоматом снизится эффективность кеширования и сожрется немало процессорного времени.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "cached memory"  
Сообщение от Дмитрий email(??) on 22-Мрт-07, 09:29 
>Кстати, вернуть "cached" во "free" очень просто - запустить программку, которая замаллочит,
>скажем, половинку cached, заполнит замаллоченное нулями и выйдет. Эффект 100%, но
>автоматом снизится эффективность кеширования и сожрется немало процессорного времени.


Моя программа показывает live видео, поэтому если я так сделаю, возможно будут сбои в этот момент. я установил минимум free на 64M но это как бы не выход.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "cached memory"  
Сообщение от smb on 22-Мрт-07, 10:08 
>>Кстати, вернуть "cached" во "free" очень просто - запустить программку, которая замаллочит,
>>скажем, половинку cached, заполнит замаллоченное нулями и выйдет. Эффект 100%, но
>>автоматом снизится эффективность кеширования и сожрется немало процессорного времени.
>
>
>Моя программа показывает live видео, поэтому если я так сделаю, возможно будут
>сбои в этот момент. я установил минимум free на 64M но
>это как бы не выход.

А так ли сложно выделить разочек пару метров памяти, а потом выделять память оттуда?..

Куча new|delete / per second не самое лучшее решение для любого приложения...

А кэшировать напрямую твои страницы система не очень-то должна....

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "cached memory"  
Сообщение от Дмитрий email(??) on 22-Мрт-07, 10:29 
>>>Кстати, вернуть "cached" во "free" очень просто - запустить программку, которая замаллочит,
>>>скажем, половинку cached, заполнит замаллоченное нулями и выйдет. Эффект 100%, но
>>>автоматом снизится эффективность кеширования и сожрется немало процессорного времени.
>>
>>
>>Моя программа показывает live видео, поэтому если я так сделаю, возможно будут
>>сбои в этот момент. я установил минимум free на 64M но
>>это как бы не выход.
>
>А так ли сложно выделить разочек пару метров памяти, а потом выделять
>память оттуда?..
>
>Куча new|delete / per second не самое лучшее решение для любого приложения...
>
>
>А кэшировать напрямую твои страницы система не очень-то должна....

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру