ПРОЕКТЫ 


  АРХИВ 


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: Memory usage with aio



Hello!

On Sun, Mar 13, 2011 at 12:57:38AM +0200, Андрей Василишин wrote:

> Всем привет!
> 
> Заметил, что после включения aio нгинкс стал больше потреблять
> памяти при тех же нагрузках.
> 
> 
> Нгикс до аио:
> nginx -V
> nginx version: nginx/0.8.53
> TLS SNI support enabled
> configure arguments: --conf-path=/etc/nginx/nginx.conf
> --error-log-path=/var/log/nginx/error.log
> --http-client-body-temp-path=/var/lib/nginx/body
> --http-fastcgi-temp-path=/var/lib/nginx/fastcgi
> --http-log-path=/var/log/nginx/access.log
> --http-proxy-temp-path=/var/lib/nginx/proxy
> --http-scgi-temp-path=/var/lib/nginx/scgi
> --http-uwsgi-temp-path=/var/lib/nginx/uwsgi
> --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid
> --with-debug --with-http_dav_module --with-http_flv_module
> --with-http_geoip_module --with-http_gzip_static_module
> --with-http_image_filter_module --with-http_realip_module
> --with-http_stub_status_module --with-http_ssl_module
> --with-http_sub_module --with-http_xslt_module --with-ipv6
> --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl

Just a side note: это пути к исходникам, а не к заголовкам.

> --with-mail --with-mail_ssl_module
> --add-module=/tmp/buildd/nginx-0.8.53/modules/nginx-upstream-fair
> --add-module=/tmp/buildd/nginx-0.8.53/modules/nginx-echo
> 
> 
>         location /flv {
>                  root   /var/www/;
>                  try_files  /XXXXX$uri
>                             /YYYYY$uri
> 
>                             =404;
>                  internal;
>                  flv;
>                  output_buffers  1 1m;
> #                 aio on;
> #                 directio  4m;
> #                 set $limit_rate        256k;
> 
>          }
> 
> Нгинкс с аио:
> 
> # nginx -V
> nginx version: nginx/0.8.54
> TLS SNI support enabled
> configure arguments: --conf-path=/etc/nginx/nginx.conf
> --error-log-path=/var/log/nginx/error.log
> --http-client-body-temp-path=/var/lib/nginx/body
> --http-fastcgi-temp-path=/var/lib/nginx/fastcgi
> --http-log-path=/var/log/nginx/access.log
> --http-proxy-temp-path=/var/lib/nginx/proxy
> --http-scgi-temp-path=/var/lib/nginx/scgi
> --http-uwsgi-temp-path=/var/lib/nginx/uwsgi
> --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid
> --with-debug --with-file-aio --with-http_addition_module
> --with-http_dav_module --with-http_flv_module
> --with-http_geoip_module --with-http_gzip_static_module
> --with-http_image_filter_module --with-http_perl_module
> --with-http_random_index_module --with-http_realip_module
> --with-http_secure_link_module --with-http_stub_status_module
> --with-http_ssl_module --with-http_sub_module
> --with-http_xslt_module --with-ipv6 --with-sha1=/usr/include/openssl
> --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module 
> --add-module=/build/buildd/nginx-0.8.54/debian/modules/nginx-development-kit 
> --add-module=/build/buildd/nginx-0.8.54/debian/modules/nginx-upstream-fair
> --add-module=/build/buildd/nginx-0.8.54/debian/modules/nginx-echo
> --add-module=/build/buildd/nginx-0.8.54/debian/modules/nginx-lua 
> --add-module=/build/buildd/nginx-0.8.54/debian/modules/nginx-push-0.692
> 
>         location /flv {
>                  root   /var/www/;
>                  try_files  /XXXXX$uri
>                             /YYYYY$uri
> 
>                             =404;
>                  internal;
>                  flv;
>                  output_buffers  1 1m;
>                  aio on;
>                  directio  4m;
> #                 set $limit_rate        256k;
> 
>          }
> 
> 
> В конфиге по сути добавилось 2 строчки:
>                  aio on;
>                  directio  4m;
> 
> Модулей кроме flv и proxy в конфиге никаких
> больше не использую.
>  По графикам видно, после пробела, когда было включено аио при тех
> же нагрузках стало больше потребляться памяти, почему?

На графиках мне видится плавно выросшая полка в ~ 4G.  Особенно 
она подозрительна в периоды минимальной нагрузки.  Теоретически 
конечно можно допустить, что в отсутствии необходимости (из-за 
directio) у приложений не забирают освобождённую память обратно в 
систему, но мне такое объяснение представляется сомнительным.

Для начала я бы раскомпилировал обратно сторонние модули.

Если картина сохранится - внимательно смотреть на предмет утечек 
сокетов.  В первую очередь - проверить наличие alert'ов в 
error_log, в частности - при выполнении reload'а.  Если найдутся, 
то действовать как описано тут:

http://wiki.nginx.org/Debugging#Socket_leaks

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.