Посматривая на некоторые письма вижу, что у народа nginx хватает по
150-250 Мб на себя. У меня же на относительно большом кол-ве запросов
он еле до 14-15 Мб дотягивает. То есть примерно такая картина:
# 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 704 pause nginx: master process
/usr/local/sbin/nginx
8219 22548 www 0.0 14736 kqread nginx: worker process (nginx)
31271 22548 www 0.0 14272 kqread nginx: worker process (nginx)
16397 22548 www 0.0 14820 kqread nginx: worker process (nginx)
12312 22548 www 0.0 14272 biowai nginx: worker process (nginx)
12020 22548 www 0.0 14332 kqread nginx: worker process (nginx)
28181 22548 www 0.1 14684 biowai nginx: worker process (nginx)
15242 22548 www 0.0 14272 biowai nginx: worker process (nginx)
30943 22548 www 0.0 14272 kqread nginx: worker process (nginx)
13155 22548 www 0.0 14592 kqread nginx: worker process (nginx)
28186 22548 www 0.0 14272 kqread nginx: worker process (nginx)
4986 22548 www 0.0 14272 kqread nginx: worker process (nginx)
20236 22548 www 0.0 14272 kqread nginx: worker process (nginx)
2803 22548 www 0.0 14312 getblk nginx: worker process (nginx)
29713 22548 www 0.0 14272 kqread nginx: worker process (nginx)
26670 22548 www 0.0 14464 - nginx: worker process (nginx)
20421 22548 www 0.0 14272 kqread nginx: worker process (nginx)
...
Это при том, что на выдаче трафика как я уже указывал наблюдаются
некоторые "подтормаживания" (в сравнении с апачем). Хотя в точности
теперь уже не могу сказать, столько раз менял их, что уже потерялся...
Однако, мне думается, что 14Мб это сильно мало для трафика порядка
8-10 Мбит/с, есть надежда, что если бы хорошенько использовать буферы,
то "подтормаживаний" наверное можно было бы избежать. Конфиг выглядит
примерно так:
user www www;
worker_processes 32;
events {
worker_connections 64000;
}
http {
tcp_nodelay on;
output_buffers 131072 8k; # <-
postpone_output 40; # <- это я уже как только не менял
userid on;
userid_name Apache;
server_names_hash_max_size 2048;
server_names_hash_bucket_size 256;
server {
listen X.X.X.X:80 default backlog=2048;
server_name www.domen.ru *.domen.ru;
proxy_buffers 16384 128k;
set $host_part "";
location ~* \.(gif|jpe?g|png)$ {
if ($http_host ~* ^(.+)\.domen\.ru.*$) {
set $rootdir /var/www/domen.ru/$1/;
}
root $rootdir;
}
location / {
if ($http_host ~* "^(.+)\.domen\.ru.*$") {
set $host_part $1;
}
rewrite ^(.*)$ /$host_part/$1 break;
proxy_pass http://127.0.1.6;
}
access_log /var/www/logs/access.log accounting buffer=32k;
}
и ещё пара таких server {}
...
И ведь не ест он даже близко 131072 * 8 Kб. Картинки читает напрямую
с диска; теперь нету такого, чтобы в biowai все процессы сидели, обмен
с диском примерно 2-3 Кб/с. Вроде бы тут самое место все запрошенные
картинки в буфер в память хапнуть, и потом постепенно знай сливай их
клиенту...