Понедельник, 1 Декабрь 2008
nginx: тестирование аллокаторов
В пятницу я сделал патч для nginx. Сейчас я буду показывать более детальные результаты его использования.
С стандартным аллокатором после загрузки потребление памяти у master процесса 36 mb, у worker 33. Под нагрузкой 33-35 mb. idle был на уровне 44%-47%.
С obsd_malloc после загрузки потребление памяти у master процесса 20 mb, у worker 19. Под нагрузкой 19-20 mb. idle был на уровне 50%-52%.
С jemalloc после загрузки потребление памяти у master процесса 20 mb, у worker 19. Под нагрузкой 20-21 mb. idle был на уровне 48%-50%.
Выводы делать не буду, но я начинаю пристально смотреть на obsd-like ;)
Да, для измерений я использовал top, а для генерации нагрузки ab.
Комментарии
Интересный тест я провел аллокаторов и is_bot с 382тыс.строк(тот самый, от которого виртуальная память вырастает до 1.5 гига) подробнее потом в блоге у себя опишу, но вкратце так:
с обычным аллокактором и гео-базой процессы по 36-37МБ, с этими двумя в районе 7.5-8, скорость отдачи ответов даже возрасла на 2-3%, но потребление процессорного времени тоже возросло 4-5%, что я думаю приемлемая расплата за возросшую скорость и уменьшение потребления памяти в 4-5 раз :)
Форма комментирования для «nginx: тестирование аллокаторов»
учитывай, что is_bot, в отличии от geo, хранит свои данные в shared memory между процесами.
в любом случае твоя переделка аллокатора избавляет от проблемы удвоения памяти при HUP для большой гео-базы ;)
geo base тоже можно, и ловко, класть в shm память.