Нужно собрать nginx с профилированием.
Для gprof это делается примерно так:
./configure --with-cc-opt="-pg -g" --with-ld-opt="-pg" ...
Потом запускается nginx, получаем файл nginx.gmon.
Потом запускаем gprof nginx, вывод присылаем мне.
А если попробовать без профилирования
./configure --with-cc-opt="-D NGX_ALIGNMENT=16" ...
Эффект абсолютно нулевой... :-(
Какие есть еще варианты кроме "выкинуть процессор"? :-)
Кажется, я понял, в чём проблема.
Если не секрет в чем же ? У меня аналогичные проблемы...
Судя по gprof, в данном конкрентном случае делается 30620 включений
файлов. Для каждого включения nginx делает выделяет 4K через malloc(),
а потом free(). У меня были подозрения на обработку free() внутри
nginx'а, но пока я не увидел там узких мест. На данный момент у меня
есть подозрение, что проблемы в libc.
Игорь Сысоев
http://sysoev.ru