From: Greg Sabino Mullane Date: Mon, 29 Sep 2008 01:59:38 +0000 (-0400) Subject: Tweak FSM formula a bit based on mailing list posts. X-Git-Tag: 2.9.0~249 X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=56009efacd1678404c389da36147842c22a01206;p=check_postgres.git Tweak FSM formula a bit based on mailing list posts. --- diff --git a/check_postgres.pl b/check_postgres.pl index 8c0531ff7..987b7f9db 100755 --- a/check_postgres.pl +++ b/check_postgres.pl @@ -2116,12 +2116,13 @@ sub check_fsm_pages { (my $w = $warning) =~ s/\D//; (my $c = $critical) =~ s/\D//; my $SQL = qq{SELECT pages, maxx, ROUND(100*(pages/maxx)) AS percent\n}. - qq{FROM (SELECT\n}. - qq{ (SUM(GREATEST(interestingpages,storedpages))+COUNT(DISTINCT(relfilenode)))*8 AS pages,\n}. - qq{ (SELECT setting::NUMERIC FROM pg_settings WHERE name = 'max_fsm_pages') AS maxx\n}. - qq{ FROM $schema.pg_freespacemap_relations) x}; + qq{FROM (SELECT (sumrequests+numrels)*chunkpages AS pages\n}. + qq{ FROM (SELECT SUM(CASE WHEN avgrequest IS NULL THEN interestingpages/32 }. + qq{ ELSE interestingpages/16 END) AS sumrequests,\n}. + qq{ COUNT(relfilenode) AS numrels, 16 AS chunkpages FROM pg_freespacemap_relations) AS foo) AS foo2,\n}. + qq{ (SELECT setting::NUMERIC AS maxx FROM pg_settings WHERE name = 'max_fsm_pages') AS foo3}; - my $info = run_command($SQL, {regex => qr[\w+] } ); + my $info = run_command($SQL, {regex => qr[\d+] } ); for $db (@{$info->{db}}) { SLURP: while ($db->{slurp} =~ /\s*(\d+) \|\s+(\d+) \|\s+(\d+)$/gsm) { @@ -4587,11 +4588,12 @@ Items not specifically attributed are by Greg Sabino Mullane. =over 4 -=item B +=item B (September 28, 2008) Add MRTG output to fsm_pages and fsm_relations. Force error messages to one-line for proper Nagios output. Check for invalid prereqs on failed command. From conversations with Euler Taveira de Oliveira. + Tweak the fsm_pages formula a little. =item B (September 25, 2008)