1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
#!/bin/sh
#
# Plugin to monitor memory usage.
#
# Parameters:
#
# config (required)
# autoconf (optional - only used by munin-config)
#
# $Log$
# Revision 1.2.2.1 2005/01/28 14:51:22 lupe
# Add graph_info and some filed.info
#
# Revision 1.3 2005/01/28 14:47:31 lupe
# Add graph_info and some filed.info
#
# Revision 1.2 2004/05/20 19:02:36 jimmyo
# Set categories on a bunch of plugins
#
# Revision 1.1 2004/01/02 18:50:00 jimmyo
# Renamed occurrances of lrrd -> munin
#
# Revision 1.1.1.1 2004/01/02 15:18:07 jimmyo
# Import of LRRD CVS tree after renaming to Munin
#
# Revision 1.3 2003/11/07 17:43:16 jimmyo
# Cleanups and log entries
#
#
#
# Magic markers (optional - only used by munin-config and some
# installation scripts):
#%# family=auto
#%# capabilities=autoconf
if [ "$1" = "autoconf" ]; then
if [ -x /sbin/sysctl ]; then
/sbin/sysctl vm.stats.vm.v_page_size > /dev/null
if [ $? = "0" ]; then
echo yes
exit 0
else
echo no
exit 1
fi
else
echo no
exit 1
fi
fi
PAGESIZE=`/sbin/sysctl -n vm.stats.vm.v_page_size`
MEMSIZE=`/sbin/sysctl -n vm.stats.vm.v_page_count`
MEMMAX=`echo 'scale=2;' $PAGESIZE*$MEMSIZE | bc -q `
if [ "$1" = "config" ]; then
echo 'graph_args --base 1024 -l 0 --vertical-label Bytes --upper-limit '$MEMMAX
echo 'graph_title Memory usage'
echo 'graph_category system'
echo 'graph_info This graph shows what the machine uses its memory for.';
echo 'graph_order active inactive wired buffers cached free'
echo 'active.label active'
echo 'active.info pages recently statistically used'
echo 'active.draw AREA'
echo 'inactive.label inactive'
echo 'inactive.info pages recently statistically unused'
echo 'inactive.draw STACK'
echo 'wired.label wired'
echo 'wired.info pages that are fixed into memory, usually for kernel purposes, but also sometimes for special use in processes'
echo 'wired.draw STACK'
echo 'buffers.label buffers'
echo 'buffers.info pages used for filesystem buffers'
echo 'buffers.draw STACK'
echo 'cached.label cache'
echo 'cached.info pages that have percolated from inactive to a status where they maintain their data, but can often be immediately reused'
echo 'cached.draw STACK'
echo 'free.label free'
echo 'free.info pages without data content'
echo 'free.draw STACK'
exit 0
fi
ACTIVE_COUNT=`/sbin/sysctl -n vm.stats.vm.v_active_count`
INACTIVE_COUNT=`/sbin/sysctl -n vm.stats.vm.v_inactive_count`
FREE_COUNT=`/sbin/sysctl -n vm.stats.vm.v_free_count`
CACHE_COUNT=`/sbin/sysctl -n vm.stats.vm.v_cache_count`
BUFFERS_COUNT=`/sbin/sysctl -n vfs.bufspace`
WIRED_COUNT=`/sbin/sysctl -n vm.stats.vm.v_wire_count`
echo 'print "active.value ";' $ACTIVE_COUNT*$PAGESIZE | bc -q
echo 'print "inactive.value ";' $INACTIVE_COUNT*$PAGESIZE | bc -q
echo 'print "cached.value ";' $CACHE_COUNT*$PAGESIZE | bc -q
echo 'print "free.value ";' $FREE_COUNT*$PAGESIZE | bc -q
echo 'print "wired.value ";' $WIRED_COUNT*$PAGESIZE | bc -q
echo buffers.value $BUFFERS_COUNT
|