И ведь не ест он даже близко 131072 * 8 Kб. Картинки читает напрямую
с диска; теперь нету такого, чтобы в biowai все процессы сидели, обмен
с диском примерно 2-3 Кб/с. Вроде бы тут самое место все запрошенные
картинки в буфер в память хапнуть, и потом постепенно знай сливай их
клиенту...
worker_processes 4;
Тогда выходит
# ps ax -o pid,ppid,user,%cpu,vsz,wchan,command | egrep '(nginx|PID)'|grep -v
'grep'
PID PPID USER %CPU VSZ WCHAN COMMAND
22548 1 root 0.0 752 pause nginx: master process
/usr/local/sbin/nginx
17951 22548 www 0.1 26880 biowai nginx: worker process (nginx)
9765 22548 www 0.6 25800 biowai nginx: worker process (nginx)
28214 22548 www 0.9 26304 biowai nginx: worker process (nginx)
29215 22548 www 0.7 25636 biowai nginx: worker process (nginx)
то есть все они дружно диском занимаются :-) Ну и тормоза сильно
больше становятся при посещении страничек. Я поставил 16... Хотя
осталось желание сделать 32. Насколько я помню для IDE дисков
максимальная отдача идёт при ~40 процессах читателей. 32 плюс
несколько остальных процессов и системных - получается красиво :-)
Это зависит от ОС, дисков, памяти и прочая. Однозначной цифры 40 нет.
http {
output_buffers 4 32k;
postpone_output 1460;
Из треда понял, что эти буферы - общие для всех процессов. Сделал
4 512к. Отжирается также порядка 15 Мбайт.
Это буфера для одного соединения. Файл читается в 512k буфер за один read.
Игорь Сысоев
http://sysoev.ru