robot-piglet aaf551fb50 Intermediate changes | 1 неделя назад | |
---|---|---|
.. | ||
README.md | d28c55ab25 Intermediate changes | 1 год назад |
stockpile.h | d17ef5729f Intermediate changes | 1 месяц назад |
stockpile_linux.cpp | aaf551fb50 Intermediate changes | 1 неделя назад |
stockpile_other.cpp | d17ef5729f Intermediate changes | 1 месяц назад |
ya.make | d28c55ab25 Intermediate changes | 1 год назад |
При приближении к лимиту памяти в memory cgroup, linux запускает механизм direct reclaim, чтобы освободить свободную память. По опыту YT, direct reclaim очень сильно замедляет работу всего процесса.
Проблема возникает не только, когда память занята анонимными страницами. 50% памяти контейнера может быть занято не dirty страницами page cache, но проблема всёравно будет проявляться. Например, если процесс активно читает файлы с диска без O_DIRECT, вся память очень быстро будет забита.
Чтобы бороться с этой проблемой, в яндексовом ядре добавлена ручка madvise(MADV_STOCKPILE)
.
Больше подробностей в https://st.yandex-team.ru/KERNEL-186