статистика выполнения php-скриптов

aquanaut

Guest
статистика выполнения php-скриптов

Эмм, может невнимательно смотрел - тогда пардоньте, но интересует следующая штука.

Имеем apache + php (модулем) + oracle. Бывают моменты, когда вся связка встаёт колом. Апач при этом не реагирует даже на попытку получить от него статику. Т.е. такое чувство, что все рабочие соединения достигли MaxClients. Через несколько минут всё отмирает само.

Понятно, что всё упирается в скрипты, медленно выгребающие данные из оракла.

Вопрос: чем бы посмотреть статистику? Хотелось бы получить такую штуку, которая могла бы в любой момент времени показать
перечень исполняемых в данный момент php скриптов с временем выполнения каждого к текущему моменту.

Или только самому писать?
 

Alexandre

PHPПенсионер
ps -ax | grep http - посмотреть процессы апача
а заодно их кол-во из общего кол-ва процессов
xdebug - профайлинг скрипта (что сколько расходется)

у меня такаяже байда была с постгресом, когда топ переваливал за 50

А Оракл стоит на отдельной машине или этой же?
 

aquanaut

Guest
apache_status - это что?
ScoreBoardFile ?

-~{}~ 18.01.06 11:48:

4Alexandre:

Нене, я может невнятно выразился. Мне не нужно смотреть, сколько там процессов, это я и так знаю - MaxSpareServers. Я хочу узнать, какие именно .php скрипты в данный момент исполняются и время их выполнения. Что-нибудь вроде:

1.php - выполняется уже 3 секунды
2.php - выполняется 20 миллисекунд.
...
999.php - выполняется 20 секунд.
 

Alexandre

PHPПенсионер
какие процесс еще висят кроме httpd (и их много )
какие процессы жрут память и процессор, какие спят ???

в очень важно поймать момент подвисания всей системы.
что говорит top

хочешь знать какие висят активные (исполняемые скрипты), то используй мемкеш (или еще что нибудь подобное) и пиши
- при старте -> имя скрипта, n++
- при выходе -> имя скрипта, n--
что то типа карту активных скриптов

используй xdebug (или что нибудь другое ) для профайлинга

кстати мы так и не услышали оракл - на этой машине или нет -(
 

aquanaut

Guest
Alexandre
Не-не.
Жрать память в данном случае будут даже не скрипты, а oracle, потому что львиную долю времени скрипт проведёт в его вызовах.

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

Пока ничего, кроме хаков mod_php, не придумывается. Жаль, конечно, я думал найти готовое :(
 

Alexandre

PHPПенсионер
у меня замер времени скриптов осуществлялось путем добавления директив в .htaccess
сами скрипты я не трогал
Код:
php_value auto_prepend_file /home/test_ru/start_timer.php
php_value auto_append_file  /home/test_ru/get_timer.php
так же можно в старт и енд скрипты засунуть алгоритм
хочешь знать какие висят активные (исполняемые скрипты), то используй мемкеш (или еще что нибудь подобное) и пиши
- при старте -> имя скрипта, n++
- при выходе -> имя скрипта, n--
что то типа карту активных скриптов
а также включить и выключить профайлинг xdebug

что дает команда top - если процессы в sbwait то значить они ждут когда отработает ораклиный клиент. Если процессы оракла...

какую картину дает ps -ax ??
 

aquanaut

Guest
Нене, и так понятно, что всё в оракле. Тут и смотреть смысла нет.

С prepend/append - хорошая идея, спасибо! Так и попробую!
 
Сверху