Welcome! Log In Create A New Profile

Advanced

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

April 17, 2013 08:59AM
Здраствуйте %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 запросов в секунду).

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

Спасибо.
Subject Author Posted

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

FireFenix April 17, 2013 08:59AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 217
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready