ответ от апстрима может в некоторых случаях помещаться во временный файл, особенно, если сервер отдал контент быстро, а пользователь забирает медленно. и узким местом может являться жесткий диск.<div><br></div><div>iotop что показывается ?<br>
<br><div class="gmail_quote">11 октября 2012 г., 1:45 пользователь ProxyKZ <span dir="ltr"><<a href="mailto:nginx-forum@nginx.us" target="_blank">nginx-forum@nginx.us</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Есть сервер хостинга Xeon 2,4GHz QuadCore / RAM 2Gb / SAS 500Gb работает<br>
около 100 сайтов клиентов с посещаемостью по 50-100 в день и 7-10 сайтов по<br>
1000-2000 в день. Nginx/0.6.32 раздает статику и стоит перед Apache. Раньше<br>
Apache либо съедал всю память и nginx не могу до него дсотучаться выдавая<br>
502 и т.п. ошибки, потом ограничили в конфиге Апача MaxClient до 25 и стало<br>
стабильнее. Но после прописывания бОльшей части сайтов в Nginx - сайты эти<br>
которых статику начал отдавать nginx стали тормозить - сильно азметно на<br>
медленных клиентах. После нескольких запросов как будто пауза образуется, то<br>
есть чем чаще обращение к сайту тем тормозит сильнее - на странице прямо<br>
видно что недогружаются картинки и js и css, отладчик барузера часто<br>
ругается на файлы что их нет (404), тут же если обновить страницу они могут<br>
успешно загрузиться. У клиентов на широких каналах от 1MBit/s все леатет и<br>
тормоза почти незаметны, а на медленных каждое 3-5-ое открытие любого сайта<br>
замедляется от 10 секунд до даже минут иногда.<br>
<br>
Это конфиг Apache:<br>
-----------------------------<br>
ServerRoot "/etc/apache2"<br>
<br>
LockFile /var/lock/apache2/accept.lock<br>
<br>
PidFile ${APACHE_PID_FILE}<br>
<br>
Timeout 15<br>
KeepAlive Off<br>
MaxKeepAliveRequests 400<br>
KeepAliveTimeout 3<br>
<br>
ExtendedStatus On<br>
<br>
<IfModule mpm_prefork_module><br>
    StartServers          1<br>
    MinSpareServers       2<br>
    MaxSpareServers      10<br>
    MaxClients           25<br>
    MaxRequestsPerChild   1000<br>
</IfModule><br>
<br>
<IfModule mpm_worker_module><br>
    StartServers          2<br>
    MaxClients           50<br>
    MinSpareThreads      25<br>
    MaxSpareThreads      75<br>
    ThreadsPerChild      25<br>
    MaxRequestsPerChild   1000<br>
</IfModule><br>
<br>
# These need to be set in /etc/apache2/envvars<br>
User ${APACHE_RUN_USER}<br>
Group ${APACHE_RUN_GROUP}<br>
<br>
AccessFileName .htaccess<br>
<br>
#<br>
# The following lines prevent .htaccess and .htpasswd files from being<br>
# viewed by Web clients.<br>
#<br>
<Files ~ "^\.ht"><br>
    Order allow,deny<br>
    Deny from all<br>
</Files><br>
<br>
DefaultType text/plain<br>
<br>
HostnameLookups Off<br>
ErrorLog /var/log/apache2/error.log<br>
LogLevel info<br>
<br>
Include /etc/apache2/mods-enabled/*.load<br>
Include /etc/apache2/mods-enabled/*.conf<br>
<br>
Include /etc/apache2/httpd.conf<br>
<br>
Include /etc/apache2/ports.conf<br>
<br>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\"<br>
\"%{User-Agent}i\"" vhost_combined<br>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""<br>
combined<br>
LogFormat "%h %l %u %t \"%r\" %>s %b" common<br>
LogFormat "%{Referer}i -> %U" referer<br>
LogFormat "%{User-agent}i" agent<br>
<br>
Include /etc/apache2/conf.d/<br>
<br>
NameVirtualHost *:443<br>
<VirtualHost _default_:443><br>
        ServerName <a href="http://example.com:443" target="_blank">example.com:443</a><br>
        SSLEngine on<br>
        SSLCertificateFile /etc/apache2/ssl.crt/server.crt<br>
        SSLCertificateKeyFile /etc/apache2/ssl.key/server.key<br>
</VirtualHost><br>
<br>
Include /usr/local/ispmgr/etc/ispmgr.inc<br>
<br>
<Directory /home/user/www/<a href="http://domen.example.com" target="_blank">domen.example.com</a>><br>
        AllowOverride all<br>
        php_admin_value open_basedir "/home/user:."<br>
</Directory><br>
-----------------------------<br>
и т.д. описаны все хосты<br>
<br>
<br>
Это конфиг Nginx:<br>
-----------------------------<br>
user www-data;<br>
worker_processes  4;<br>
worker_rlimit_nofile 16384;<br>
<br>
error_log  /var/log/nginx/error.log error;<br>
pid        /var/run/nginx.pid;<br>
<br>
events {<br>
        worker_connections  1024;<br>
        use epoll;<br>
}<br>
<br>
http {<br>
    include       /etc/nginx/mime.types;<br>
    default_type  application/octet-stream;<br>
<br>
    access_log  /var/log/nginx/access.log;<br>
    #expires      30d;<br>
    sendfile        on;<br>
    tcp_nopush     on;<br>
    tcp_nodelay        on;<br>
    client_max_body_size       10m;<br>
    client_body_buffer_size    16k;<br>
    proxy_connect_timeout      60s;<br>
    proxy_send_timeout         60s;<br>
    proxy_read_timeout         60s;<br>
    proxy_buffer_size          64k;<br>
    proxy_buffers              4 32k;<br>
    proxy_busy_buffers_size    64k;<br>
    proxy_temp_file_write_size 10m;<br>
<br>
    gzip on;<br>
    gzip_comp_level 3;<br>
    gzip_proxied any;<br>
    gzip_min_length  1000;<br>
    gzip_types application/x-javascript text/css;<br>
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";<br>
<br>
    keepalive_timeout  35;<br>
<br>
<br>
    include /etc/nginx/conf.d/*.conf;<br>
    include /etc/nginx/sites-enabled/*;<br>
        log_format  isp '$bytes_sent $request_length';<br>
        server {<br>
                listen <a href="http://82.200.198.10:80" target="_blank">82.200.198.10:80</a>;<br>
                server_name <a href="http://example.com" target="_blank">example.com</a> <a href="http://www.example.com" target="_blank">www.example.com</a>;<br>
                rewrite ^(/manager/.*)$ https://$host$1 permanent;<br>
                error_page 404 = @fallback;<br>
                location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/|pgadmin/) {<br>
                        proxy_pass <a href="http://82.200.198.10:81" target="_blank">http://82.200.198.10:81</a>;<br>
                        proxy_redirect <a href="http://example.com:81/" target="_blank">http://example.com:81/</a> /;<br>
                        proxy_set_header Host $host;<br>
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>
                        proxy_set_header X-Real-IP $remote_addr;<br>
                }<br>
                location / {<br>
                        proxy_pass <a href="http://82.200.198.10:81" target="_blank">http://82.200.198.10:81</a>;<br>
                        proxy_redirect <a href="http://example.com:81/" target="_blank">http://example.com:81/</a> /;<br>
                        proxy_set_header Host $host;<br>
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>
                        proxy_set_header X-Real-IP $remote_addr;<br>
                }<br>
                location ~*<br>
^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {<br>
                        root /home/user/www/<a href="http://example.com" target="_blank">example.com</a>;<br>
                        access_log /home/httpd-logs/example.com.access.log ;<br>
                        access_log /home/nginx-logs/user isp;<br>
                }<br>
                location @fallback {<br>
                        proxy_pass <a href="http://82.200.198.10:81" target="_blank">http://82.200.198.10:81</a>;<br>
                        proxy_set_header Host $host;<br>
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>
                        proxy_set_header X-Real-IP $remote_addr;<br>
                }<br>
        }<br>
-----------------------------<br>
и т.д. в таком же ключе еще 100 хостов прописано.<br>
<br>
Изменял по разному в конфиге Nginx следующие ключи:<br>
worker_connections<br>
worker_processes<br>
sendfile<br>
proxy_connect_timeout<br>
proxy_send_timeout<br>
proxy_read_timeout<br>
gzip_proxied<br>
gzip_comp_level<br>
ничего не приводит к заметному результату, как тормозил у медленных клиентов<br>
так и тормозит.<br>
<br>
Apache Server Status показывает максимум до 10 Request, то есть заметно что<br>
нагрузка на него упала (раньше бывало до 20-25), но почему nginx стал так<br>
медленно работать?<br>
<br>
в Top-е nginx почти не вылезает иногда до 2% CPU кушает, в основном кушают<br>
CPU процессы Apache 3-4 штуки бывает под 30-70% но всего лишь на несколько<br>
секунд и MySQL обычно кушает 20-30% , бывает 50-70% но тоже на считанные<br>
секунды. В целом RAM и CPU не загружены когда проявляются тормоза.<br>
Складывает такое ощущение, что nginx зажат какими то лимитами и не может<br>
быстро раздавать статику, хотя ресурсы сервера еще позволяют это сделать.<br>
<br>
У меня админ уволился, найти грамотного не могу, вот пытаюсь сам<br>
поддерживать сервер...<br>
Огромная просьба к бывалым хостерам - помогите советом!!!<br>
<br>
Posted at Nginx Forum: <a href="http://forum.nginx.org/read.php?21,231602,231602#msg-231602" target="_blank">http://forum.nginx.org/read.php?21,231602,231602#msg-231602</a><br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div><br></div>