Скрипт для анализа потребления памяти процессами 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.

This entry was posted in Профессиональное and tagged , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">