1 (10.08.2012 11:57:10 отредактировано valet)

Сервер на Debian 6, nginx, php-fpm

В логах php-fpm периодически лезет ошибка (жирным выделил):
root@debian:/var/www# tail -50 /var/log/php5-fpm.log

+ открыть спойлер

[08-Aug-2012 19:23:09] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[08-Aug-2012 19:59:19] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[08-Aug-2012 20:11:52] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[08-Aug-2012 20:13:37] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[08-Aug-2012 20:55:34] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[08-Aug-2012 21:09:04] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[08-Aug-2012 21:24:17] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[08-Aug-2012 21:27:55] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[08-Aug-2012 21:45:04] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[08-Aug-2012 23:33:39] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 01:25:01] WARNING: [pool www] child 9282 exited with code 1 after 212.182571 seconds from start
[09-Aug-2012 01:25:01] NOTICE: [pool www] child 9288 started

[09-Aug-2012 01:30:23] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 01:34:59] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 01:38:19] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 01:56:23] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 02:03:54] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 02:28:08] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 02:50:34] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 02:51:40] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 03:04:43] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 03:30:55] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 03:41:19] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 03:44:19] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 03:48:22] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 03:49:10] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 04:07:27] WARNING: [pool www] child 12043 exited on signal 11 (SIGSEGV) after 35.646667 seconds from start
[09-Aug-2012 04:07:27] NOTICE: [pool www] child 12063 started

[09-Aug-2012 04:32:46] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 06:26:23] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 08:17:44] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 08:51:59] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 09:04:46] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 09:17:01] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 09:19:55] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 09:48:37] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[09-Aug-2012 10:23:50] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[10-Aug-2012 01:21:55] NOTICE: Terminating ...
[10-Aug-2012 01:21:55] NOTICE: exiting, bye-bye!
[10-Aug-2012 01:21:59] NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful

[10-Aug-2012 01:21:59] NOTICE: fpm is running, pid 25077
[10-Aug-2012 01:21:59] NOTICE: ready to handle connections
[10-Aug-2012 01:46:33] NOTICE: Terminating ...
[10-Aug-2012 01:46:33] NOTICE: exiting, bye-bye!
[10-Aug-2012 01:46:37] NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful

[10-Aug-2012 01:46:37] NOTICE: fpm is running, pid 25727
[10-Aug-2012 01:46:37] NOTICE: ready to handle connections
[10-Aug-2012 02:44:23] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it

Приходится рестартовать php5-fpm, но это же не дело.
Было выяснено, что проблема начала возникать после установки на сервере php-скрипта, который довольно медленно работает, но это же все равно не должно ложить сервер.

php -v
PHP 5.3.10-1~dotdeb.1 with Suhosin-Patch (cli) (built: Feb  2 2012 23:28:08)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
    with Suhosin v0.9.33, Copyright (c) 2007-2012, by SektionEins GmbH


П.С. Читал аналогичную тему на форуме, но там как я понимаю вопрос так и не был решен.

2

Логи большие под спойлер или в тег code убирай.
Конфиги где?
В настройках php-fpm можно попробовать:

emergency_restart_threshold 10
emergency_restart_interval 1m
process_control_timeout 10s
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

3

newzenon пишет:

Логи большие под спойлер или в тег code убирай.

убрал.

newzenon пишет:

Конфиги где?

+ Конфиг хоста nginx

server {
    listen  80;
    server_name site.ru *.site.ru;   

set $subdomain "";
    if ($host ~* ^([a-z0-9-\.]+)\.site.ru$) {
        set $subdomain $1;
    }
    if ($host ~* ^www.site.ru$) {
        set $subdomain "";
    }

    access_log  /var/log/nginx/site.ru.access.log;
    error_log  /var/log/nginx/site.ru.error.log;

    gzip_static on;

if ($http_user_agent ~ UnwindFetchor) {
return 503;
}

##не принимать от клиентов запросы длиной более 1 Мб
client_max_body_size 1m;

## Default location
    location / {
        root   /var/www/site.ru/$subdomain;
        index index.php index.html index.htm;
        include /var/www/site.ru/.htaccess;
    }

## Images and static content is treated different
    location ~* ^.+.(jpg|jpeg|gif|png|js|ico)$ {
      access_log        off;
      expires           max;
      root /var/www/site.ru/$subdomain;
    }

## Parse all .php file in the /var/www/site.ru directory
    location ~ .php$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass   127.0.0.1:9000;
        #fastcgi_pass   unix:/tmp/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/site.ru/$subdomain$fastcgi_script_name;
        include fastcgi_params;
        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_intercept_errors        on;
        fastcgi_ignore_client_abort     off;
        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
    }

## Disable viewing .htaccess & .htpassword
    location ~ /\.ht {
        deny  all;
    }

}

server {
    listen       80;
    server_name www.site.ru;
    rewrite   ^  http://site.ru$request_uri?;
}

php.ini выложил тут, в пост не влазит.

4

Для конфигов есть pastebin, тыц
Дальше php-fpm можно раздельно настроить для каждого хоста
3 Defining An Individual Pool For Each Website
Вот еще про настройку php-fpm

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

5

ы. что-то я не понял include /var/www/site.ru/.htaccess;
htaccess от апача? или измененный? вообще-то рерайты лучше в конфиге nginx писать и выкиуть эту строку.

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

6

newzenon пишет:

Для конфигов есть pastebin, тыц

спасибо, учту.

newzenon пишет:

htaccess от апача? или измененный?

нет, конечно переведенный ab, просто чтобы не нарушалась структура решил именно так подключать.

newzenon пишет:

вообще-то рерайты лучше в конфиге nginx писать и выкиуть эту строку.

не вижу чесно говоря разницы, то это изменит, кроме громоздкости кода.

7

valet пишет:

не вижу чесно говоря разницы, то это изменит, кроме громоздкости кода.

Ну и да и нет, htacces достался от апача, в конфиге nginx видеть его мягко говоря странно.
Показать его тоже не помешает, раз уж он тут нарисовался.
По поводу количества кода, сильно сомневаюсь...и одной вложенности include из nginx.conf вроде достаточно.
Едем дальше, - переведи php на сокет, и безопасней и быстрее.

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

8

newzenon пишет:

htacces достался от апача, в конфиге nginx видеть его мягко говоря странно.

да, но какая разница как назвать файл ab, можно было бы и переименовать, что это меняет, вот его содержания для проблемного хоста (того, который долго грузится):

if (!-f $request_filename){
    set $rule_0 1$rule_0;
}
if (!-d $request_filename){
    set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
    rewrite ^/(.*)$ /index.php last;
}

newzenon пишет:

и одной вложенности include из nginx.conf вроде достаточно.

дело в том, что для разных хостов на сервере разные конфиги htaccess, а некоторым он вообще не нужен. Так что в общем конфиге указать его точно нельзя.

newzenon пишет:

Едем дальше, - переведи php на сокет, и безопасней и быстрее.

Да хотелось бы, раньше когда-то точно работало.
СЕйчас не знаю почему, выдает 504 если ставлю в конфиге:

        #fastcgi_pass   127.0.0.1:9000;
        fastcgi_pass   unix:/tmp/php-fpm.sock;

9

valet пишет:

дело в том, что для разных хостов на сервере разные конфиги htaccess, а некоторым он вообще не нужен. Так что в общем конфиге указать его точно нельзя.

тут как то недопоняли друг друга:
есть основной конфиг /etc/nginx/nginx.conf
есть конфигурации xостов которые перечисленны в нем же через include и лежат в других файлах.
чтобы на сокет перейти надо два файла править - конфиг php и конфиг nginx. Готовые решения в Debian GNU/Linux
ы. вообще мы отвлеклись, ошбка тут в php.

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

10

newzenon пишет:

есть основной конфиг /etc/nginx/nginx.conf
есть конфигурации xостов которые перечисленны в нем же через include и лежат в других файлах.

да, именно так и в этих файлах уже подключается или не подключается htaccess или правильнее сказать правила реврайтов для конкретного хоста.

newzenon пишет:

чтобы на сокет перейти надо два файла править - конфиг php и конфиг nginx. Готовые решения в Debian GNU/Linux

спасибо, получилось. Этот момент я как-то или забыл или и не знал.

Сейчас nginx взаимодействует с php-fpm через сокеты - может это и решит проблему. В любом случае сокеты кажется получше чем tcp.

11

Что-то у меня с unix сокетами не сложилось. Побыл сервер несколько часов на сокетах и все это время зашкаливала нагрузка по load average вплоть до 4!
В результате перевел назад на tcp.

12

valet вспомнил мы же где-то тут с тобой siege тестировали...
Так тогда и не разобрались почему он у тебя нагрузку не держал, но пришли к выводу что не в nginx проблема была.
У меня сервачок сейчас на gentoo работает, проблем не замечаю.
Для простых/тестовых вариантов конфиг сложившийся для хоста такой:

server {
        server_name site.org;
        root /var/www/site.org;
        index index.php;

        location = /favicon.ico {
                log_not_found off;
                access_log off;
        }

        location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }

        location / {
                # This is cool because no php is touched for static content
                try_files $uri $uri/ /index.php;
        }

        location ~ \.php$ {
                # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
                include fastcgi.conf;
                fastcgi_intercept_errors on;
                fastcgi_pass   unix:/tmp/php-fpm.sock;
       }

       location ~ \.php {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                if ($uri ~ "uploads")      { return 403; }
                if (!-f $request_filename) { return 404; }
                include        fastcgi_params;
                fastcgi_pass   unix:/tmp/php-fpm.sock;
                fastcgi_index  index.php;
                expires        30d;
       }

       location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
                expires max;
                log_not_found off;
       }
}

Php использую 5.3 на 5.4 пока не перехожу, drupal с ним плохо дружит, ошибки конечно можно заглушить, но все таки.
Конфигурация оного:

$ cat /etc/php/fpm-php5.3/php-fpm.conf| grep -v ';' | grep -v '^$'
[global]
error_log = /var/log/php-fpm.log
log_level = error
[www]
listen = /tmp/php-fpm.sock
 
user = nginx
group = nginx
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
$ cat /etc/php/fpm-php5.3/php.ini | grep -v ';' | grep -v '^$'
[PHP]
engine = On
short_open_tag = Off
asp_tags = Off
precision = 14
y2k_compliance = On
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 17
allow_call_time_pass_reference = Off
safe_mode = Off
safe_mode_gid = Off
safe_mode_include_dir =
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
disable_functions =
disable_classes =
zend.enable_gc = On
expose_php = Off
max_execution_time = 60
max_input_time = 60
memory_limit = 128M
error_reporting = E_ALL & ~E_DEPRECATED
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = Off
variables_order = "GPCS"
request_order = "GP"
register_globals = Off
register_long_arrays = Off
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 10M
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
include_path = ".:/usr/share/php5:/usr/share/php"
doc_root =
user_dir =
enable_dl = Off
cgi.fix_pathinfo=0
file_uploads = On
upload_max_filesize = 12M
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
[Date]
date.timezone = Europe/Moscow
[filter]
[iconv]
[intl]
[sqlite]
[sqlite3]
[Pcre]
[Pdo]
[Pdo_mysql]
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=
[Phar]
[Syslog]
define_syslog_variables  = Off
[mail function]
SMTP = localhost
smtp_port = 25
mail.add_x_header = On
[SQL]
sql.safe_mode = Off
[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
[Interbase]
ibase.allow_persistent = 1
ibase.max_persistent = -1
ibase.max_links = -1
ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
ibase.dateformat = "%Y-%m-%d"
ibase.timeformat = "%H:%M:%S"
[MySQL]
mysql.allow_local_infile = On
mysql.allow_persistent = On
mysql.cache_size = 2000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off
[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off
[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = On
[OCI8]
[PostgreSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
[Sybase-CT]
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10
[bcmath]
bcmath.scale = 0
[browscap]
[Session]
session.save_handler = files
session.save_path = "/tmp"
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
session.entropy_length = 0
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
[MSSQL]
mssql.allow_persistent = On
mssql.max_persistent = -1
mssql.max_links = -1
mssql.min_error_severity = 10
mssql.min_message_severity = 10
mssql.compatability_mode = Off
mssql.secure_connection = Off
[Assertion]
[COM]
[mbstring]
[gd]
[exif]
[Tidy]
tidy.clean_output = Off
[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5
[sysvshm]
[ldap]
ldap.max_links = -1
[mcrypt]
[dba]
[xsl]
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

13

newzenon пишет:

valet вспомнил мы же где-то тут с тобой siege тестировали...
Так тогда и не разобрались почему он у тебя нагрузку не держал, но пришли к выводу что не в nginx проблема была.

Да, перечитал тему, было такое дело ab. Там в конце концов выяснилось, что проблема была в том что где-то в скриптах был удаленный коннект к другому серверу функцией file_get_contents, что давало такую задержку.

newzenon пишет:

pm.max_children = 50

Не многовато ли? Какое железо? Я так попробовал поставить, так нагрузка по load average вообще к 4ке подскочила.

14

Даже не знаю что делать, вопрос актуален. Ну да, признаюсь, есть медленные скрипты, но это же не повод падать php. Как это решить пока не нашел способа.

15

valet пишет:

Не многовато ли? Какое железо? Я так попробовал поставить, так нагрузка по load average вообще к 4ке подскочила.

Не помню, какая-то cms кажется просила, но не настойчиво...
Железка фен 945 8 ram.
Вот так вот в лоб:

# time siege linuxru.org -d1 -r100 -c100 
Transactions:               10000 hits
Availability:              100.00 %
Elapsed time:               65.64 secs
Data transferred:          140.24 MB
Response time:                0.65 secs
Transaction rate:          152.35 trans/sec
Throughput:                2.14 MB/sec
Concurrency:               99.04
Successful transactions:       10000
Failed transactions:               0
Longest transaction:            0.96
Shortest transaction:            0.03
 
siege linuxru.org -d1 -r100 -c100  0,93s user 1,38s system 3% cpu 1:05,66 total
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

16 (12.08.2012 22:43:08 отредактировано valet)

Уже почти что решил проблему, но все равно чего-то не хватает, не могу разобраться чего.

И так еще раз: на сервере появились скрипты, которые выполняются слишком долго, так как при выполнении подтягивают данные извне из интернета. Это вешает php-fpm.
Как это примерно вижу я: вызывается один скрипт, он занимает часть ресурсов (чилдрен или что там - не важно) и так как он выполняется долго - он долго не освобождает занятый им ресурс, параллельно стартует другой подобный скрипт, также занимает ресурс и не освобождает и т.д. Это продолжается до тех пор пока все выделенные ресурсы для php оказываются занятыми и любые другие скрипты уже не могут выполнятся вообще - так как ресурсы заняты кривыми скриптами и еще не освободились!

Варианты решения:
1. Переписать криво написанный скрипт, чтобы он умел грамотно пользоваться ресурсами. Кстати при определенных обстоятельствах скрипт может вообще не подтянуть данные, за которыми он обращается, и как я понимаю это исключение в нем не обрабатывается. Зависит не от меня, так как писал не я и как поправить не знаю.
2. Обрезать выполнение таких медленных скриптов по таймауту и освобождать ресурсы

По понятным причинам второй вариант является правильным.

Что я нашел.

В php.ini:
max_execution_time поставил 10 сек. По умолчанию там 30.

В конфигурациях nginx хостов, на которых медленные скрипты подправил параметр fastcgi_read_timeout

#fastcgi_read_timeout 180;
fastcgi_read_timeout 10;

Но как не странно не совсем помогло. С одной стороны если вручную проверять проблемные сайты с медленным скриптами, то на страницах если долго не отдается контент выдается 504, что правильно - срабатывает таймаут nginx на получения данных от php-fpm, но с другой стороны по load average и дальше творится ужас вплоть до 8ки php все равно вешается. То есть очевидно со стороны вебсервер ответ от php не ожидается, но скрипт продолжает выполнятся php-сервером, что вешает его.

Что я еще не учел? Ну вот уже проблема разжевана буквально по косточкам. Осталось только четко выяснить, как принудительно на уровне настроек php обрывать нежелательные медленные процессы, освобождая ресурсы.

17

valet пишет:

2. Обрезать выполнение таких медленных скриптов по таймауту и освобождать ресурсы

Во 2-ом сообщении еще предложил.
http://php.net/manual/ru/install.fpm.configuration.php
Вот еще в догонку полистать.

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

18

newzenon пишет:

emergency_restart_threshold 10
emergency_restart_interval 1m
process_control_timeout 10s

Дело в том что я их сначала вообще не нашел, так как смотрел php.ini и www.conf, сейчас нашел, они в php-fpm.conf

Но возникли сомнения по 3-му параметру:

process_control_timeout

    Время, в течение которого дочерние процессы ждут ответа на сигналы мастер-процессу. Доступные единицы измерения: s(секунды), m(минуты), h(часы) или d(дни). Единица измерения по умолчанию: секунды. Значение по умолчанию: 0.

Может все таки оставить значение по умолчанию, зачем чтобы были просто в 10с, мне кажется это только усугубит ситуацию.

19

Кстати в общем логе nginx'а заметил запросы типа:

82.114.69.254 - - [12/Aug/2012:17:17:44 -0500] "ET /?u=9h50v599u99ib4ci800j562hgtybgqux HTTP/1.1" 403 169 "-" "Mozilla/100"
41.155.14.81 - - [12/Aug/2012:17:17:59 -0500] "ET /?u=6z97c09eq54b66nrv7am5lx5q217uncq HTTP/1.1" 403 169 "-" "Mozilla/100"
120.61.32.223 - - [12/Aug/2012:17:17:59 -0500] "ET /?u=x4y59yb01aaab4283zolt50bs2cobw1y HTTP/1.1" 403 169 "-" "Mozilla/100"
120.61.32.223 - - [12/Aug/2012:17:17:59 -0500] "\x00" 400 173 "-" "-"
41.155.14.81 - - [12/Aug/2012:17:18:01 -0500] "\x00" 400 173 "-" "-"
217.23.7.159 - - [12/Aug/2012:17:18:10 -0500] "ET /?u=3vf3y53891789g53pqu72078k0b5zqs8 HTTP/1.1" 403 169 "-" "Mozilla/100"
217.23.7.159 - - [12/Aug/2012:17:18:10 -0500] "\x00" 400 173 "-" "-"
85.102.126.46 - - [12/Aug/2012:17:18:27 -0500] "ET /?u=78yaif3n0057zf33z03540r8k77s5b0r HTTP/1.1" 403 169 "-" "Mozilla/100"
2.176.12.83 - - [12/Aug/2012:17:18:27 -0500] "ET /?u=h2vzl4334lhq1t0d70br4b1j980jgen1 HTTP/1.1" 403 169 "-" "Mozilla/100"
85.102.126.46 - - [12/Aug/2012:17:18:27 -0500] "\x00" 400 173 "-" "-"
2.176.12.83 - - [12/Aug/2012:17:18:27 -0500] "\x00" 400 173 "-" "-"

Я так понимаю к всему прочему еще и ддос какой-то пошел. Собственно поэтому еще и не справляется, и так скрипты тяжелые, да еще и ддос какой-то...