Со временем PHP сервера забивается - 502 bad gateway (без нагрузки)

12
D
На сайте с 05.06.2007
Offline
155
2195

nginx + php as Fastcgi (30 процессов), примерно 1 раз в день забивается и выдаёт 502 bad gateway

т.е. как бы пхп не принимает новые соединения, нагрузка на сервер равномерная и минимальная!

Порой перезагрузка пхп сервера может сразу привести к забиванию коннектов, это происходит как то временами ( Такое ощущение что есть какой то скрипт, который подвешивает все процессы пхп сервера и используется он не всегда. (скрипты очень сложные, самописанные)

Посоветуй-те что-нибуть, как вычислить проблему?

Написал не мало шедевров ;)
M
На сайте с 16.09.2009
Offline
278
#1

начните с выставления лимитов для php-скриптов: help ulimit,

man limits.conf (linux), man login.conf (freebsd)

мониторьте нагрузку чем-то. хоть monit - так можно будет запустить

сбор какой-то статистики скриптом (top, ps, ...), когда будет проблема.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
Andreyka
На сайте с 19.02.2005
Offline
822
#2

Я решил сейчас идентичную проблему просто грамотными настройками сервера + советом (/ru/forum/comment/5812377)

Не стоит плодить сущности без необходимости
D
На сайте с 05.06.2007
Offline
155
#3

myhand, мониторинг поставлю, но помоему перед зависанием 1-2 процессв php-cgi стремится к 99%

Andreyka, а тут вы не можете подсказать, как решить эту проблему?

M
На сайте с 16.09.2009
Offline
278
#4
Dimanych:
myhand, мониторинг поставлю, но помоему перед зависанием 1-2 процессв php-cgi стремится к 99%

ну вот, мониторьте такие процессы. при достижении

порогового значения - смотрите lsof/strace чем занимаются

самые "долгоживущие" процессы.

PS:

выставление системных лимитов поможет здесь только в том смысле,

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

D
На сайте с 05.06.2007
Offline
155
#5

что самое интересное, нагрузка на эти процессы идёт не более 5 сек, потом наступает момент когда появляется bad gateway, и нагрузки никакой уже нет(

strace хорошая штука, также нашёл очень полезню тему

http://phpclub.ru/talk/printthread.php?threadid=116496

сайт работает без базы и полно flock, думаю в этом как раз и дело (

M
На сайте с 16.09.2009
Offline
278
#6

а увеличить число php-процессов - никак?

N
На сайте с 06.05.2007
Offline
419
#7

У вас ведь VPS ? Нагрузки нет никакой по данным top ?

сделайте так: vmstat 1

и запостите вывод в те секунды, когда хорошо прослеживается 502 и тормозит.

Если не понимаете ничего - запостите просто побольше.

Кнопка вызова админа ()
D
На сайте с 05.06.2007
Offline
155
#8
myhand:
а увеличить число php-процессов - никак?

не играет роли, зависают все, причём ничего не делают, чего-то ждут

netwind, у меня свой сервер, что значит случай безнадёжный? подозрение на убитый HDD?

оно как бы не тормазит, пару секунд замечал что пхп процессы пожирают много CPU и после этого сразу 502, причем выводится сразу, ничего не тормазит ... в top всё тихо

нужно дождаться очередного зависания и проверить чем занимаются процессы

Просто попробовал команду, может чего даст )

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----

r b swpd free buff cache si so bi bo in cs us sy id wa

0 0 20 68488 431444 2055688 0 0 1 4 4 0 5 3 84 8

0 0 20 68356 431444 2055680 0 0 0 1380 1654 897 6 5 87 1

1 1 20 68028 431456 2055808 0 0 24 1256 1278 980 10 4 84 3

1 0 20 66956 431464 2055772 0 0 4 1944 1164 1630 8 50 41 1

0 0 20 68252 431472 2055768 0 0 16 1292 919 899 7 25 65 4

0 0 20 68092 431476 2055756 0 0 0 656 920 708 3 2 94 0

0 0 20 67912 431492 2055768 0 0 8 2452 1606 1278 15 4 75 6

0 0 20 68040 431492 2055796 0 0 4 0 1012 636 6 3 90 0

0 1 20 68040 431492 2055828 0 0 0 1816 1351 694 4 3 72 21

1 0 20 67784 431492 2055848 0 0 4 1852 2001 652 7 3 38 52

0 0 20 67604 431492 2055852 0 0 0 1548 1305 898 10 5 85 0

0 0 20 67496 431616 2055856 0 0 160 1360 1175 981 6 5 77 13

0 0 20 67552 431620 2055888 0 0 20 1212 1100 719 6 2 72 20

0 0 20 67776 431624 2055904 0 0 32 1592 1351 1155 11 4 82 4

0 3 20 67764 431624 2055952 0 0 12 3372 1466 544 3 4 45 47

1 0 20 67688 431624 2055988 0 0 0 2520 1735 879 12 5 55 28

1 0 20 67264 431628 2056308 0 0 268 868 1583 1172 10 4 76 11

N
На сайте с 06.05.2007
Offline
419
#9

Dimanych, ok. сервер это хорошо.

этот тест помогает выявить оверселл на VPS там где оверселл якобы невозможен.

M
На сайте с 16.09.2009
Offline
278
#10
Dimanych:
не играет роли, зависают все, причём ничего не делают, чего-то ждут

если они "толпой" (т.е. 30 или 40 - без разницы) ждут чего-то - то чего-то общего.

файловой блокировки, освобождения лока в mysql и т.п.

смотрите lsof

делайте strace процессов

mysql processlist

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий