Недавно устранял утечки памяти в apache – набрел на интересный скрипт:
Привожу его с моими минимальными правками:
#!/bin/env php <?php $apache_proc = 'httpd'; $command = "ps -ef | " . "grep " . escapeshellarg($apache_proc) . " | " . "grep -v ^root | " . "awk '{ print $2 '} | " . "xargs pmap -d | " . "grep ^mapped: | " . "awk '{ print $4 }' "; exec($command, $processes, $return); if ($return != 0) { echo "Error executing check, status code is $returnn"; exit($return); } $avg = array_sum($processes) / count($processes); foreach( $processes as $proc ) { printf( "%sn", $proc ); } echo "n"; printf("Average %s process private memory allocation: %0.2f kbn", $apache_proc, $avg);
После создания файла скрипта делаем его исполняемым (chmod +x) и запускаем:
[root@name bin]# ./memusage 58884K 67936K 64288K 77716K 82300K 79352K 78588K 67740K 77136K 72868K Average httpd process private memory allocation: 72680.80 kb
В результате имеем небольшой удобный скриптик, вместо набора длинной цепочки команд, для просмотра объема памяти, потребляемой процессами apache.