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
|