Я установил ngix + php5-fpm. Я доволен, но не могу оптимизировать php5-fpm, чтобы он работал без ошибок. Каждая фиксированная ошибка создает отдельную ошибку.
Сначала у меня были настройки по умолчанию, которые вызвали множество ошибок:
[04-Jun-2012 03:30:06] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
Увеличил все числа:
pm.max_children = 15
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 5
;pm.max_requests = 500
Это вызвало другую ошибку:
[28-Feb-2013 07:45:06] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 18 idle, and 28 total children
Я снова увеличил все числа:
pm.max_children = 70
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 35
;pm.max_requests = 500
Это вызвало заполнение файла журнала следующим образом:
[28-Feb-2013 13:21:55] NOTICE: [pool www] child 21868 exited with code 0 after 4171.293476 seconds from start
[28-Feb-2013 13:21:55] NOTICE: [pool www] child 23962 started
Я раскомментировал:
pm.max_requests = 500
У меня были такие же ошибки, но не так часто - каждые 5 минут:
[28-Feb-2013 13:21:55] NOTICE: [pool www] child 21868 exited with code 0 after 4171.293476 seconds from start
[28-Feb-2013 13:21:55] NOTICE: [pool www] child 23962 started
Я снова увеличил:
pm.max_requests = 1000
Теперь у меня есть эта ошибка 2-3 раза в час, но она все еще сохраняется.
Я бы снова увеличил это число, но мне кажется, что мой сервер (веб-сайты) работает немного медленнее, чем веб-сайты, размещенные на другом сервере с настройками: pm.max_children = 15, pm.start_servers = 5, pm.min_spare_servers = 3, pm.max_spare_servers = 5. (возможно, проблема в сети, не знаю).
Я искал в Google и на этом веб-сайте и знаю, как рассчитать pm.max_children (это зависит от RAM). Но не могу найти информации, как рассчитать:
pm.start_servers
pm.min_spare_servers
pm.max_spare_servers
pm.max_requests
Кто-нибудь может помочь?
uptime
13:55:39 up 16:40, 2 users, load average: 0.13, 0.14, 0.16
free -m
total used free shared buffers cached
Mem: 24101 3783 20318 0 151 3039
-/+ buffers/cache: 592 23509
Swap: 7811 0 7811
Я ничего не менял в файлах конфигурации nginx.
Как написано в журнале [NOTICE]
: это информационное и не ошибка. Они отмечены [ERROR]
.
Вкратце: не о чем беспокоиться. Это как если бы ваш ребенок сказал вам, что он выключил свет на кухне.
Если это говорит [WARNING]
это то, о чем вы должны позаботиться, как вы сделали в своем первом ответе, увеличив пороговые значения.
Переключите php-fpm в динамический режим. Таким образом, php-fpm автоматически решает, когда создавать новых детей. это должны быть если вы используете и тип кэшей опкодов, потому что принудительно убитые дочерние элементы увеличивают фрагментацию в PHP-APC