2015-08-19 2 views
-1

Я запускаю серверную программу на 32 ГБ машине. RSS растет, и свободная память продолжает снижаться. В конце концов, когда свободная память достигает 400 МБ, она не уменьшается. В какой-то момент приложение нуждается в некоторой большой памяти, скажем, немного gb, и она умирает. Мы используем jemalloc. Я подозреваю, что jemalloc кэширует грязные страницы. Мои вопросы: 1. Как отобразить параметры грязной памяти в процессе работы. 2. Как изменить грязную страницу, которую может иметь jemalloc. P.S. Мы проверили valgrind, чтобы проверить отсутствие утечки памяти в тестовом прогоне. Приложение находится на C++ и многопоточно. Также удивлен, почему у stackoverflow нет jemalloc-тега :)jemalloc грязный страница настройка

ответ

-1

lg_dirty_mult сделал трюк. Фактическое значение 2^lg_dirty_mult.

Ответ на 2-й части:
MALLOC_CONF = stats_print: правда, lg_dirty_mult: 0 application_executable
это также может быть сделано во время выполнения mallctl() с параметром "opt.lg_dirty_mult".

Ответ на 1-ю часть: использовали malloc_stats_print из jemalloc lib.

Link помогли:
https://bugzilla.mozilla.org/show_bug.cgi?id=811740 https://github.com/jemalloc/jemalloc/wiki/Getting-Started

+1

бы Вы форматировать свои сообщения правильно? –

+0

http://stackoverflow.com/help/formatting –

+0

В качестве стимула я остановил их обоих. Исправьте форматирование, и я удалю голоса. Приветствия. –

Смежные вопросы