ПРОЕКТЫ 


  АРХИВ 


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]

[Windows + fastcgi + php] Валится или перестаёт отвечать


  • To: nginx-ru@xxxxxxxxx
  • Subject: [Windows + fastcgi + php] Валится или перестаёт отвечать
  • From: "FireFenix" <nginx-forum@xxxxxxxx>
  • Date: Wed, 17 Apr 2013 08:59:53 -0400
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=helium.jlkhosting.com; s=x; h=Date:Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=MIp0UM9ovgmjv/qwMAC7GA5pDpIsPH8XpVEWotOefZ8=; b=hNp4Bumgn1Ep1sutVlAlDaWHhqfLlIZc+4UQBYS7jreG4nmaFNukHzE9iBe9cF9iZwXpudN7G20KMBrPopEGTgLFf70O2CqP1mCIpCf1i9iXpe7K5svs3SmTs+3PZRHIQxjK3s8dKndYkEZ6n+CXYlqpP2hN3cL28nVBP+GcmfA=;

Здраствуйте %user_name%. Я новичёк ине давно начал знакомство с nginx, и
прошу помощи:

Имеется относительно старенький дедик Dual Core AMD Opteron 2.2Ghz и 2 Gb
RAM

На котором:
* Windows Server 2003 Standart Edition SP2
* nginx 1.3.16
* php 5.4.13

На котором  получился конфиг

worker_processes  2;
worker_rlimit_nofile 163840;

events 
{
    worker_connections  81920;
}

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

    sendfile        on;
    tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  600s 600s;

    gzip  on;

    server 
    {
        listen       8080;
        server_name  localhost;

        access_log off;
        #rewrite_log on;

        merge_slashes on;

        rewrite ^/path/(.*)$ /path/index.php;

        location / 
        {
            root D:/Site;
            index  index.html index.htm index.php;
        }

        location ~ \.php$ 
        {
            root           D:/Site;
            
            fastcgi_read_timeout 600s;
            fastcgi_send_timeout 600s;

            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME
$document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

    }
}

Конфиг выше результирующий, вначале был дефолтный конфиг с прописанным
fastcgi

И при стандартном конфиге php-cgi.exe прибивалось на некотором запросе

Использую программку ab из Апача для теста
C:\>ab.exe -n 1000 -c 100 http://localhost:8080/index.php
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
apr_pollset_poll: The timeout specified has expired (70007)
Total of 598 requests completed

После этого php-cgi.exe улетало в космос.
Поискал в доках, и начал увеличивать worker_rlimit_nofile = 163840 и
worker_connections = 81920

Теперь картина другая, php-cgi не падает, но
* При C:\>ab.exe -n 10 -c 10 http://localhost:8080/index.php спокойно
проходит тест или при одиночных запросах из браузера
* При C:\>ab.exe -n 1000 -c 100 http://localhost:8080/index.php ложиться и
перестаёт отвечать, аналогичная картина если Ф5 зажать в браузере.

Подумал, что проблема в таймаутах, и попробовал fastcgi_read_timeout = 600 и
fastcgi_send_timeout = 600, но картина ничерта не изменилась.

Причём кроме последнего случая в лог c параметром error ничего не выпадает,
но в если включить лог debug, то в логе начинает спамить
2013/04/17 15:52:57 [debug] 3088#3300: select ready 0
2013/04/17 15:52:57 [debug] 3088#3300: timer delta: 500
2013/04/17 15:52:57 [debug] 3088#3300: posted events 00000000
2013/04/17 15:52:57 [debug] 3088#3300: worker cycle
2013/04/17 15:52:57 [debug] 3088#3300: accept mutex locked
2013/04/17 15:52:57 [debug] 3088#3300: select event: fd:156 wr:0
2013/04/17 15:52:57 [debug] 3088#3300: select timer: 500
2013/04/17 15:52:58 [debug] 212#2372: select ready 0
2013/04/17 15:52:58 [debug] 212#2372: timer delta: 500
2013/04/17 15:52:58 [debug] 212#2372: posted events 00000000
2013/04/17 15:52:58 [debug] 212#2372: worker cycle
2013/04/17 15:52:58 [debug] 212#2372: accept mutex lock failed: 0
2013/04/17 15:52:58 [debug] 212#2372: select timer: 500
даже при том, когда клиент закрыл соединение, ещё некоторое время идёт спам
лога

Так вот, товарищи знатоки, подскажите:
* Почему конфиг выше перестаёт отдавать контент? 
* И как правильно настроить конфиг для ~500 юзеров работающих одновременно,
при это которые могут слать запросы один за дргуим (т.е. не постоянно, а
некоторым блоками запросов до ~100 запросов в секунду).

Хотелось бы, чтобы контент отдавался в любом случае вне зависимости, от
скорости выполнения, но в порядке очереди запросов.

Спасибо.

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,238429,238429#msg-238429

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.