Как узнать сколько ОЗУ и частоты процессора потребляет определенный php-скрипт? На сервере debian, ubuntu, centos..в общем на linux. Htop не катит, т.к. он показывает общую нагрузку, да?
как раз htop я и хотел посоветовать. щас перепроверю, но по моему, хтоп может показывать по процессам, если по дефолту этого не делает. да, вот они, апачики: пхп капсулируется апачем. Он же установлен как модуль апача, следовательно родительский процесс всегда будет виден снаружи, но все инстансы апача видны.
мне нужно посмотреть, не сколько потребляют процесс веб-сервера, а именно процесс самого файла, например, index.php. Т.е. что-то в виде таблицы index.php | 1.6 mb ОЗУ | 0.01 Ghz
у "самих файлов" нету процессов. А, хотя, можно попробовать вот что-то такое: PHP: <?php<?phpfunction onRequestStart() { $dat = getrusage(); define('PHP_TUSAGE', microtime(true)); define('PHP_RUSAGE', $dat["ru_utime.tv_sec"]*1e6+$dat["ru_utime.tv_usec"]);}function getCpuUsage() { $dat = getrusage(); $dat["ru_utime.tv_usec"] = ($dat["ru_utime.tv_sec"]*1e6 + $dat["ru_utime.tv_usec"]) - PHP_RUSAGE; $time = (microtime(true) - PHP_TUSAGE) * 1000000; // cpu per request if($time > 0) { $cpu = sprintf("%01.2f", ($dat["ru_utime.tv_usec"] / $time) * 100); } else { $cpu = '0.00'; } return $cpu;}onRequestStart();$a = 'Test';for($i=0; $i<10000; $i++) { for($j=0; $j<1000; $j++) { $a = md5($a); }}$microtime=microtime(true)-PHP_TUSAGE;$cpuusage=getCpuUsage();echo "<pre>Microtime: ".round($microtime,4)."CPU usage: $cpuusageCalculated time: ".round($microtime*$cpuusage/100,4)."";?> Но, имхо, это слишком коленочное решение.
http://php.net/manual/ru/function.memory-get-usage.php http://php.net/manual/ru/function.sys-getloadavg.php Но этого будет мало если скрипт будет юзать допустим БД, тогда нужно делать логи процессов и смотреть примерно. Если же скрипт работает консольно через CLI к примеру, тогда эти функции хорошо помогут. Вообще не замарачивайтесь над этим, если не используете запросы в БД с кучей возвращенных записей или если не используете огромные массивы данных.