PHP эквивалентно верхней команде Linux - PullRequest
2 голосов
/ 08 декабря 2011

Я ищу функцию, которая позволит мне видеть текущее состояние всех запущенных php-скриптов и показывать, сколько памяти / io / cpu они потребляют на данный момент.

У меня естьСайт WordPress, на котором установлено множество плагинов, и в настоящее время у меня возникают проблемы с производительностью, которые, как я подозреваю, связаны с одним из многих плагинов.

Я ищу быстрый способ проверить, какой скрипт/ плагин потребляет больше всего ввода-вывода / памяти / процессора.

Ответы [ 3 ]

3 голосов
/ 07 августа 2013

Я написал быстрый PHP-скрипт (очень хитрый синтаксический анализ, но он работает, но всем, кто хочет сделать его аккуратнее, пожалуйста, поработайте)

<?php
echo (" <h2>Processes : </h2> <br> <center>");
$cmd = `/usr/bin/top -b -n1 `;

//// parse the page //////////////////
$cmd=str_replace("      "," ",$cmd);
$cmd=str_replace("     "," ",$cmd);
$cmd=str_replace("    "," ",$cmd);
$cmd=str_replace("   "," ",$cmd);
$cmd=str_replace("  "," ",$cmd);
$cmd=str_replace(" ","</td><td>",$cmd);
$cmd=str_replace("\n","</td></tr><tr><td>",$cmd);
$cmd=str_replace("<tr><td></td><td>","<tr><td>",$cmd);
$cmd=str_replace("<tr><td>PID","<tr><td COLSPAN=10 height=50></td></tr><tr bgcolor=e0e0e0><td>PID",$cmd);
///////////////////////////////////////

echo '<table width=900 align=middle border=0><tr><td>';
echo $cmd;
echo '</td></tr></table>';
?>
2 голосов
/ 08 декабря 2011

Вы можете установить расширение Xdebug и использовать его функции профилирования .Профиль покажет вам, сколько времени уходит на каждую функцию, так что вы, вероятно, сможете найти плагин WP, который потребляет столько времени.

0 голосов
/ 08 декабря 2011

Боюсь, что в PHP нет такой команды или утилиты, которая бы работала «нативно».

Поскольку вы пометили Apache, ознакомьтесь с модулем состояния Apache: http://httpd.apache.org/docs/2.0/mod/mod_status.html

Вывод выглядит как http://www.apache.org/server-status

Это, конечно, требует, чтобы у вас был root-доступ к вашему веб-серверу, но я считаю, что он показывает полезную информацию.Это может показать вам, какие URL-адреса занимают больше всего процессорного времени.Для дальнейшего изучения вам понадобится профилировщик, такой как (упомянутый) Xdebug.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...