URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 6442
[ Назад ]

Исходное сообщение
"Apache - подвисшие php процессы"

Отправлено DmitriyZX , 14-Июл-09 11:17 
Привет.

Есть некий сервер с крутящимся php-прокси (Glype).
После некоторого времени работы появляются процессы типа такого:

15261 apache    25   0  356m  29m 6824 R 99.8  0.4  122:45.41 httpd

то есть загрузка 100%, время выполнения - очень много.

По Apache status видим, что

15261   0/228/1269   W    2.49   752   0   0.0   1.03   9.20    122.166.46.169   server.net   POST /init.php?u=Oi8vYmsuZmxpeHN0ZXIuY29tL2ZhY2Vib29rL2FjdGlvbi

Как с этим бороться?
Когда таких процессов становится больше числа ядрер, все начинает тормозить.
Если их прибить вручную kill-ом - становится ОК до тех пор пока они опять не появятся.

Спасибо


Содержание

Сообщения в этом обсуждении
"Apache - подвисшие php процессы"
Отправлено angra , 14-Июл-09 11:59 
1. Для борьбы с симптомами сильнее ограничить время выполнения php скрипта в конфиге
2. Для устранения проблемы заняться отладкой скрипта.

"Apache - подвисшие php процессы"
Отправлено DmitriyZX , 14-Июл-09 12:02 
>1. Для борьбы с симптомами сильнее ограничить время выполнения php скрипта в
>конфиге
>2. Для устранения проблемы заняться отладкой скрипта.

1. В конфиге апача или php.ini?
2. Увы, скрипт сторонний, поэтому лечить придется только симптомы


"Apache - подвисшие php процессы"
Отправлено angra , 14-Июл-09 12:14 
>1. В конфиге апача или php.ini?

Можно и там и там. Для апача вообще timeout, для пыха max_execution_time, также может помочь установка таймаутов для различных функций в общем http://www.php.net/manual/en/info.configuration.php в помощь

>2. Увы, скрипт сторонний, поэтому лечить придется только симптомы

А что мешает отладке постороннего скрипта? Сделайте копию, добавьте туда всякие отладочные функции, посылайте ей аналогичные запросы и смотрите что происходит. Кстати вовсе необязательно, что виноват скрипт, вдруг вы фаерволом или mtu передачу данных ему молчаливо режете.


"Apache - подвисшие php процессы"
Отправлено DmitriyZX , 14-Июл-09 12:34 
>Можно и там и там. Для апача вообще timeout, для пыха max_execution_time,
>также может помочь установка таймаутов для различных функций в общем http://www.php.net/manual/en/info.configuration.php
>в помощь

Да, это все уже проделал, сейчас немного подкрутил в меньшую сторону, посмотрим как будет работать.

Да, а есть ли средства ограничения использования CPU для php скрипта?


"Apache - подвисшие php процессы"
Отправлено angra , 14-Июл-09 14:32 
Если имеется ввиду максимальный процент от cpu, то наверное нет, точнее можно ограничить апач целиком, а не только mod_php или конкретный php скрипт. Как вариант перейти к fastcgi для отдельного скрипта.
Если по общему потреблению то как раз max_execution_time это и делает, на никсах оно ограничивает процессорное время потребленное скриптом и не учитывает idle и syscalls. Под виндой считает реальное время.