Привет.Есть некий сервер с крутящимся 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-ом - становится ОК до тех пор пока они опять не появятся.Спасибо
1. Для борьбы с симптомами сильнее ограничить время выполнения php скрипта в конфиге
2. Для устранения проблемы заняться отладкой скрипта.
>1. Для борьбы с симптомами сильнее ограничить время выполнения php скрипта в
>конфиге
>2. Для устранения проблемы заняться отладкой скрипта.1. В конфиге апача или php.ini?
2. Увы, скрипт сторонний, поэтому лечить придется только симптомы
>1. В конфиге апача или php.ini?Можно и там и там. Для апача вообще timeout, для пыха max_execution_time, также может помочь установка таймаутов для различных функций в общем http://www.php.net/manual/en/info.configuration.php в помощь
>2. Увы, скрипт сторонний, поэтому лечить придется только симптомы
А что мешает отладке постороннего скрипта? Сделайте копию, добавьте туда всякие отладочные функции, посылайте ей аналогичные запросы и смотрите что происходит. Кстати вовсе необязательно, что виноват скрипт, вдруг вы фаерволом или mtu передачу данных ему молчаливо режете.
>Можно и там и там. Для апача вообще timeout, для пыха max_execution_time,
>также может помочь установка таймаутов для различных функций в общем http://www.php.net/manual/en/info.configuration.php
>в помощьДа, это все уже проделал, сейчас немного подкрутил в меньшую сторону, посмотрим как будет работать.
Да, а есть ли средства ограничения использования CPU для php скрипта?
Если имеется ввиду максимальный процент от cpu, то наверное нет, точнее можно ограничить апач целиком, а не только mod_php или конкретный php скрипт. Как вариант перейти к fastcgi для отдельного скрипта.
Если по общему потреблению то как раз max_execution_time это и делает, на никсах оно ограничивает процессорное время потребленное скриптом и не учитывает idle и syscalls. Под виндой считает реальное время.