in Профессиональное

Скрипт для анализа потребления памяти процессами apache

Недавно устранял утечки памяти в 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.

Write a Comment

Comment

ERROR: si-captcha.php plugin: GD image support not detected in PHP!

Contact your web host and ask them to enable GD image support for PHP.

ERROR: si-captcha.php plugin: imagepng function not detected in PHP!

Contact your web host and ask them to enable imagepng for PHP.