ПРОЕКТЫ 


  АРХИВ 


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: Nginx+linux



У меня конфигурация приблизительно такая же, только процессор E6600 и памяти 2gb В среднем соединений не так много, примерно 150-200 постоянных, страницы отдаются моментально без кэширования запросов.
Попробуйте такие настройки:

worker_processes  2;
worker_rlimit_nofile 4096;
worker_priority 5;


events {
       worker_connections  4096;
       use epoll;
}


   client_header_buffer_size      16k;
   client_max_body_size           20M;
   client_header_timeout           60;
   client_body_timeout             60;
   large_client_header_buffers 16 16k;

   send_timeout                         120;

   proxy_read_timeout              180;
   proxy_connect_timeout         60;
   proxy_send_timeout             180;
   proxy_buffer_size                 64k;
   proxy_buffers                       64 512k;
   proxy_busy_buffers_size      1024k;
   proxy_temp_file_write_size  1024k;

   gzip                              on;
   gzip_min_length               10240;
   gzip_buffers                  32 64k;
   gzip_types                    application/x-javascript text/css;

   msie_padding             on;
   sendfile                      on;
   tcp_nopush                on;
   tcp_nodelay               on;
   output_buffers            32 256k;
   postpone_output        1460;
   lingering_time             30;
   lingering_timeout        6;

   reset_timedout_connection     on;
   keepalive_timeout                  160;
   optimize_server_names          on;

   server_names_hash_max_size    1024;
   server_names_hash_bucket_size 512;


server {


       #В данном примере используется php-fpm
       location ~* ^.+\.(php)$ {
           include /etc/nginx/php-cgi.conf;
           fastcgi_pass unix:/var/run/php-domain.tld.sock;
       }


}

---Файл php-cgi.conf

fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
fastcgi_ignore_client_abort on;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  SCRIPT_FILENAME    $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param   SERVER_SOFTWARE   "Bulbulator OS/2";
fastcgi_param   GATEWAY_INTERFACE       "CGI/1.1";
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

У меня было нечто подобное с отдачей страниц но проблема была из-за очень частых обращений в базу, решилось оптимизацией.



Kostya Alexandrov пишет:
А чем sendfile не угодил?
Есть ли резон tcp_nodelay?

sleepy wrote:
В сообщении от Saturday 31 May 2008 21:35:36 Andrew Velikoredchanin написал(а):
sleepy пишет:
Не могу понять в чем дело, у меня под Linux сервер уже сдыхает при 200 - 250 одновременных подключениях. Пробовал rtsig и epoll, толку ни какого.
Перепробовал различные комбинации колличества worker процессов. С
бэкендом общается через unix сокет, всего 5 пулов . В чем может быть
проблемма и решаема ли она?
Вы забыли указать версию nginx, характер нагрузки, мощность сервера,
загруженность его другими задачами и т.д.

Прошу прощения, nginx version: nginx/0.6.31
PHP 5.2.6

Нагрузка в виде где то 500-700 одновременных пользователей, отдаются веб страницы в связке с php через fastcgi. Сервер c процессором Intel(R) Core(TM) 2 Duo CPU E8200 @ 2.66GHz память 8 Гб других задач на сервере нет!, процессор простаивает. на страницах скриптов пишется время генерации меньше 0,2 секунды, но страница отдаётся очень долго, вернее время между запросом и загрузкой достигает около полуминуты. Пробовал до этого переходить от старых версий к новым, ситуация не меняется.

отслеживание по команде top даёт такую картину:

сначала нет никакой нагрузки, не смотря на то что запросов уже много сделано, потом появляется на короткий промежуток в загрузке php процессы, быстро отрабатывают, и простой продолжается еще какое то время. Далее всё повторяется снова.
Привожу конфиг:

#user  apache;
worker_processes  25;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;


events {
    worker_connections  1024;
#use rtsig;
use epoll;
}


http {

    include       mime.types;
    default_type  application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] $request '
                      '"$status" $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;
server_tokens off;
sendfile        off;
tcp_nopush     off;
tcp_nodelay      on;
keepalive_timeout  0;
#keepalive_timeout  65;
open_file_cache          max=300  inactive=20s;
open_file_cache_valid    30s;
open_file_cache_min_uses 2;
open_file_cache_errors   on;


#    gzip  on;

upstream backend {


server unix:/tmp/php1.sock;
server unix:/tmp/php2.sock;
server unix:/tmp/php3.sock;
server unix:/tmp/php4.sock;
server unix:/tmp/php.sock;
}


server {
        listen       80;
        server_name  changeSource www.dsvload.net;

        #charset koi8-r;

        access_log  logs/host.access.log  main;

        location / {
            root /home/ftp/dsvload/dsvload.net  ;
            index  index.php index.html index.htm;
        }
#        error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root  html;
        }

location ~ \.php$ {
        fastcgi_pass   backend;
        fastcgi_index  index.php;
fastcgi_param SCRIPT_FILENAME /home/ftp/dsvload/dsvload.net$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REMOTE_ADDR        $remote_addr;

# - если скрипты обрабатывают запросы POST:
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
                       # - и все остальные:
#fastcgi_param  PATH_TRANSLATED    $fastcgi_path_translated;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param SERVER_NAME $server_name; fastcgi_param DOCUMENT_ROOT $document_root;
#fastcgi_intercept_errors on;


# include        conf/fastcgi_params;
        }
}
# HTTPS server
    #
    #server {
    #    listen       443;
    #    server_name  localhost;

    #    ssl                  on;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_timeout  5m;

    #    ssl_protocols  SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:
+EXP;
    #    ssl_prefer_server_ciphers   on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}



}





--
icq: 99699699




 




Copyright © Lexa Software, 1996-2009.