php fastcgi server tuning | disabling access_log

umask umask at yandex.ru
Wed Aug 1 22:13:49 MSD 2007


Добрый вечер,



подскажите, что можно подтюнинговать при запуске php как FastCGI?

Какие есть узкие места и как их определять?

Есть ли какие-то методики?



При очень большом количестве запросов (синтетическая нагрузка с помощью ab) вот такое в error_log:



2007/08/01 22:01:45 [info] 18126#0: *158078 client closed prematurely connection, so upstream connection is closed too while connecting to upstream, client: *CUT*, server: *CUT*, URL: "/show.php", upstream: "fastcgi://127.0.0.1:9000", host: "*CUT*"

2007/08/01 22:01:45 [info] 18126#0: *157896 client closed prematurely connection, so upstream connection is closed too while connecting to upstream, client: *CUT*, server: *CUT*, URL: "/show.php", upstream: "fastcgi://127.0.0.1:9000", host: "*CUT*"



ab запускаю так:

ab -n 1000000 -c 400  "http://server/show.php"

Если -c 40, то работает нормально, обслуживается примерно 850 запросов в секунду.



И ещё маленький вопрос. Как-то можно в nginx вообще отключить access_log?

Вот такой конфиг:



user  nginx nginx;

worker_processes  4;

error_log  /var/log/nginx/error.log debug;

events {

    worker_connections  2048;

    use epoll;

}

http {

    include       /etc/nginx/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"';

    sendfile        on;

    keepalive_timeout  0;

    server {

        listen       CUT_IP:80;

        server_name  CUT_SERVER;

        send_timeout  30;

        client_body_timeout 30;

        client_header_buffer_size 4k;

        location / {

            root   /home/test/;

            index  index.php index.html index.htm;

        }

        error_page  404              /404.html;

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   /home/nginx/htdocs;

        }

        location ~ \.php$ {

            fastcgi_pass        127.0.0.1:9000;

            fastcgi_index       index.php;

            fastcgi_param       SCRIPT_FILENAME /home/test/adv$fastcgi_script_name;

            fastcgi_param       _SERVER         /home/test;

            fastcgi_param       DOCUMENT_ROOT   /home/test;

            include             /etc/nginx/fastcgi_params;

        }

        location ~ /\.ht {

            deny  all;

        }

    }

}



В каталоге логов nginx'а всегда присутствует файл access_log, который наполняется логом запросов. Логов очень много и после тестирования хочется их отключить.



--

Ilyas





More information about the nginx-ru mailing list