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

Igor Sysoev is at rambler-co.ru
Mon Feb 20 15:06:25 MSK 2006


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





More information about the nginx-ru mailing list