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

  • Автор темы Автор темы aquanaut
  • Дата начала Дата начала

aquanaut

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

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

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

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

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

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

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

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

-~{}~ 18.01.06 11:48:

4Alexandre:

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

1.php - выполняется уже 3 секунды
2.php - выполняется 20 миллисекунд.
...
999.php - выполняется 20 секунд.
 
какие процесс еще висят кроме httpd (и их много )
какие процессы жрут память и процессор, какие спят ???

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

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

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

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

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

Пока ничего, кроме хаков mod_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 ??
 
Нене, и так понятно, что всё в оракле. Тут и смотреть смысла нет.

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