Суббота, 29 Ноябрь 2008
nginx: еще один аллокатор
В процессе обсуждения нового аллокатора мне сообщил о jemalloc и предложили реализовать их всех, добавив соотвествующие опции.
В процессе обсуждения нового аллокатора мне сообщил о jemalloc и предложили реализовать их всех, добавив соотвествующие опции.
Работая, пришлось подменить аллокатор для nginx. Результат понравился мне (измерения все делались top’ом).
Сидел я себе на работе, наслаждаясь нормальными стаканчиками, и захотелось мне иметь возможность написать в nginx.conf такую вот конструкцию:
location /response {
response "<root><pid>$pid</pid></root>";
response_type "text/xml";
}
Подумал я немного, поспрашивал разных умных, да и не очень, людей и написал, в итоге модуль. Авось кому еще пригодиться.
Патч добавляет опцию --with-http_response_module
в ./configure, и две директивы в конфиг response
и response_type
, если response_content_type не установлен, берется значение из default_type.
Для наложения можно использовать обычный patch.
Как оказалось, nginx, не умеет подставлять через переменные текущий timestamp. Обучающий patch
Во время написания модулей приходится постоянно пользоваться аллокатором nginx и ему очень не хватает realloc.
Статистика nginx’а хороша. Она даже дает какие‑то знания. Но понять сколько запросов в секунду у нас идет из нее, нет, возможно, но не просто.