#! /usr/bin/perl # Show FreeBSD swap meta memory usage # If you experience "swap zone exhausted, increase kern.maxswzone", you may # want to use this plugin # # anders@fupp.net, 2009-09-07 $ENV{PATH} = "/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin"; sub getvalues { foreach $line (`vmstat -z`) { if ($line =~ /^SWAPMETA:\s+\d+,\s+(\d+),\s+(\d+)/) { $swmlimit = $1; $swmused = $2; last; } } # print "swmlimit=$swmlimit swmused=$swmused\n"; } sub printconfig { print "graph_title Swap meta\n"; print "graph_args -l 0\n"; print "graph_vlabel swapmeta usage\n"; print "graph_category system\n"; print "graph_info This graph shows the swapmeta (memory used to handle swap) memory usage in FreeBSD.\n"; print "graph_order swmused swmfree\n"; print "graph_scale yes\n"; print "swmused.label used\n"; print "swmused.type GAUGE\n"; print "swmused.graph yes\n"; print "swmused.min 0\n"; print "swmused.draw AREA\n"; print "swmfree.label free\n"; print "swmfree.type GAUGE\n"; print "swmfree.graph yes\n"; print "swmfree.min 0\n"; print "swmfree.draw STACK\n"; } sub printvalues { print "swmused.value $swmused\n"; print "swmfree.value " . ($swmlimit-$swmused) . "\n"; } if ($ARGV[0] eq "autoconf") { print "yes\n"; } elsif ($ARGV[0] eq "config") { printconfig; } else { getvalues; printvalues; }