- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
В нормальном дистрибутиве должно быть достаточным установить пакеты с отладочными символами.
В нормальном дистре пчих не падает с сегфолтом.
В нормальном дистре пчих не падает с сегфолтом.
Ну, настолько "нормального" дистрибутива в природе нету. Ошибки есть везде, кроме вашей персональной параллельной Вселенной.
Лучше бы вместо того, чтобы выяснять кто круче админ :), помогли бы разобраться в проблеме и заодно доказали бы это на деле.
Разница невелика, если скрипты не по секунде отрабатывают
Есть там у меня скрипты, которые отрабатывает не то что по сек, а по секунд 30. Причины этого описал выше, убрать их нельзя, оптимизировать тоже, но еще раз повторяю, даже мой дилетантский взгляд говорит о том, что это не должно стать причиной падения php. Соответственно возникает вопрос, что подкрутить в конфигах. Увеличивать max_children - не вариант, попробовал поставить 50, так у меня вообще нагрузка по load average к 4ке подскочила.
В нормальном дистре пчих не падает с сегфолтом.
У меня debian - он по вашему ненормальный? Еще раз повторяю - все стабильно работало и летало очень долго - точно больше чем полгода, пока на сервере не появились медленные скрипты - вот корень проблемы.
Уже почти что решил проблему, но все равно чего-то не хватает, не могу разобраться чего.
И так еще раз: на сервере появились скрипты, которые выполняются слишком долго, так как при выполнении подтягивают данные извне из интернета. Это вешает php-fpm.
Как это примерно вижу я: вызывается один скрипт, он занимает часть ресурсов (чилдрен или что там - не важно) и так как он выполняется долго - он долго не освобождает занятый им ресурс, параллельно стартует другой подобный скрипт, также занимает ресурс и не совобождает и т.д. Это продолжается до тех пор пока все выделенные ресурсы для php оказываются занятыми и любые другие скрипты уже не могут выполнятся вообще - так как ресурсы заняты и еще не освободились!
Варианты решения:
1. Переписать криво написанный скрипт, чтобы он умел грамотно пользоваться ресурсами. Кстати при определенных обстоятельствах скрипт может вообще не подтянуть данные, за которыми он обращается, и как я понимаю это исключение в нем не обрабатывается. Зависит не от меня, так как писал не я и как поправить не знаю.
2. Обрезать выполнение таких медленных скриптов по таймауту и освобождать ресурсы
По понятным причинам второй вариант является правильным.
Что я нашел.
В php.ini:
max_execution_time поставил 10 сек. По умолчанию там 30.
В конфигурациях nginx хостов, на которых медленные скрипты подправил параметр fastcgi_read_timeout
fastcgi_read_timeout 10;
Но как не странно не совсем помогло. С одной стороны если вручную проверять проблемные сайты с медленным скриптами, то на страницах если долго не отдается контент выдается 504, что правильно - срабатывает таймаут nginx на получения данных от php-fpm, но с другой стороны по load average и дальше творится ужас вплоть до 8ки php все равно вешается. То есть очевидно со стороны вебсервер ответ от php не ожидается, но скрипт продолжает выполнятся php-сервером, что вешает его.
Что я еще не учел? Ну вот уже проблема разжевана буквально по косточкам. Ау, админы, кто подскажет как обрывать нежелательные медленные php-процессы, освобождая ресурсы.
Ау, админы, кто подскажет как обрывать нежелательные медленные php-процессы, освобождая ресурсы.
что мешает медленные запросы загнать в отдельный пул? тогда они к остальным отношения иметь не будут
или еще вариант, в конфиге есть директива request_terminate_timeout, можно посмотреть ее
или еще вариант, в конфиге есть директива request_terminate_timeout, можно посмотреть ее
не помогает
load average: 13.48, 8.73, 4.73
---------- Добавлено 12.08.2012 в 22:20 ----------
что мешает медленные запросы загнать в отдельный пул? тогда они к остальным отношения иметь не будут
неплохо было бы, еще бы знать как это сделать.
не помогает
что значит не помогает?
неплохо было бы, еще бы знать как это сделать.
сделать, так же как и первый
что значит не помогает?
Значит, что не решило проблему. Ресурсы, занятые кривыми скриптами не освобождаются, php и дальше вешается.
сделать, так же как и первый
не очень силен в этом вопросе, придется видимо гуглить.
Значит, что не решило проблему. Ресурсы, занятые кривыми скриптами не освобождаются, php и дальше вешается.
с каким значением параметра?
с каким значением параметра?
request_terminate_timeout = 5
---------- Добавлено 12.08.2012 в 23:33 ----------
Остановил php-fpm вообще, иначе бы сервер ушел в аут. И тут решил глянуть в общий лог nginx и офигел:
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 "-" "-"
Что это? Это какой-то ддос чтоли?