2008-05-07 23:46:03 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
# Julien Francoz CoCoZ <julien@francoz.net>
|
|
|
|
|
|
|
|
# graph memory usage detail for a process using /proc/$PID/status
|
|
|
|
# create a link to this plugin with the syntax proc_yourprocessname_status
|
|
|
|
# example : proc_master_status pour postfix master process
|
|
|
|
|
|
|
|
cmd=`basename "$0"`
|
|
|
|
process=`echo "$cmd"| cut -d'_' -f 2`
|
|
|
|
pid=`pgrep -o -x "$process"`
|
|
|
|
#echo $pid
|
|
|
|
|
|
|
|
if [ "$1" = "autoconf" ]; then
|
|
|
|
if [ -r /proc/$pid/status ]; then
|
|
|
|
echo yes
|
|
|
|
exit 0
|
|
|
|
else
|
|
|
|
echo no
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$1" = "config" ]; then
|
|
|
|
|
|
|
|
echo "graph_title Memory usage for process $process"
|
|
|
|
echo "graph_order VmExe VmLib VmStk VmData VmRSS VmSize"
|
|
|
|
echo 'graph_vlabel Ko'
|
|
|
|
echo 'graph_scale no'
|
|
|
|
echo "graph_info This graph display memory usage for a process"
|
2017-02-24 23:54:53 +01:00
|
|
|
echo 'graph_category processes'
|
2008-05-07 23:46:03 +02:00
|
|
|
echo 'graph_period second'
|
|
|
|
|
|
|
|
echo 'VmExe.label VmExe'
|
|
|
|
echo 'VmExe.draw AREA'
|
2018-08-02 02:03:42 +02:00
|
|
|
echo "VmExe.info The size of the executable segment"
|
|
|
|
|
2008-05-07 23:46:03 +02:00
|
|
|
echo 'VmLib.label VmLib'
|
|
|
|
echo 'VmLib.draw STACK'
|
|
|
|
echo 'VmLib.info The size of the library code'
|
2018-08-02 02:03:42 +02:00
|
|
|
|
2008-05-07 23:46:03 +02:00
|
|
|
echo 'VmStk.label VmStk'
|
|
|
|
echo 'VmStk.draw STACK'
|
|
|
|
echo 'VmStk.info The stack size'
|
2018-08-02 02:03:42 +02:00
|
|
|
|
2008-05-07 23:46:03 +02:00
|
|
|
echo 'VmLck.label VmLck'
|
|
|
|
echo 'VmLck.draw STACK'
|
|
|
|
echo 'VmLck.info The amount of locked memory'
|
2018-08-02 02:03:42 +02:00
|
|
|
|
2008-05-07 23:46:03 +02:00
|
|
|
echo 'VmData.label VmData'
|
|
|
|
echo 'VmData.draw STACK'
|
|
|
|
echo 'VmData.info The size of the Data segment'
|
2018-08-02 02:03:42 +02:00
|
|
|
|
2008-05-07 23:46:03 +02:00
|
|
|
echo 'VmRSS.label VmRSS'
|
|
|
|
echo 'VmRSS.draw LINE2'
|
|
|
|
echo 'VmRSS.info The amount of memory mapped in RAM ( instead of swapped out)'
|
2018-08-02 02:03:42 +02:00
|
|
|
|
2008-05-07 23:46:03 +02:00
|
|
|
echo 'VmSize.label VmSize'
|
|
|
|
echo 'VmSize.draw LINE2'
|
|
|
|
echo 'VmSize.info The size of the virtual memory allocated to the process'
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
cat /proc/$pid/status |grep -E '^Vm' | sed -e 's/:/.value/' -e 's/\s\+kB$//' -e 's/\s\+/ /'
|