ПРОЕКТЫ 


  АРХИВ 


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



А чем 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;
    #    }
    #}



}





 




Copyright © Lexa Software, 1996-2009.