Пятница, 28 Ноябрь 2008
nginx: другой аллокатор
Работая, пришлось подменить аллокатор для nginx. Результат понравился мне (измерения все делались top’ом).
Наш nginx при загрузки потреблял 36 мегабайт памяти на master процесс и 33 на каждый worker. При работе ab idle был около 40%, и потребление памяти около 40 мегабайт на каждый worker процесс (их было 4, на машине 4 ядра).
После применения патча потребление стало около 19 мегабайт на master и 18 на worker. idle поднялся до ~55%, потребление памяти во время нагрузки стало около 22 мегабайт.
Да, разница в request/sec осталась в пределе 5%.
Я не утверждаю что это поможет всем, но нам, как видите, помогло ☺
Комментарии
Прежде чем изобретать велосипед, почитайте info mallopt.
Форма комментирования для «nginx: другой аллокатор»
И что я должен там был найти?
Поставьте M_MMAP_THRESHOLD поменьше и фрагментация значительно уменьшиться. Это по-сути будет работать как openbsd-malloc.
спасибо.
Пока плользя от openbsd-malloc в том что я в него буду по чуть-чуть руками лазить ;)