ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Память на буферы запол учить



On Mon, 20 Feb 2006, Anton Maksimenkov wrote:

Посматривая на некоторые письма вижу, что у народа 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 Кб/с. Вроде бы тут самое место все запрошенные
картинки в буфер в память хапнуть, и потом постепенно знай сливай их
клиенту...

worker_processes 4;

http {

    output_buffers  4 32k;
    postpone_output 1460;



Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.