[check_postgres] Bogus alerts from check_postgres_autovac_freeze

Marti Raudsepp marti at juffo.org
Wed Oct 7 13:14:17 UTC 2009


Hi.

First of all, thanks for developing a comprehensive and very useful
PostgreSQL monitoring tool.

However, I have a problem with the default warning and critical levels
for the autovac_freeze test. Currently the warning level is 90% of the
configured autovacuum_freeze_max_age number.

>From PostgreSQL documentation for autovacuum_freeze_max_age:
   Specifies the maximum age (in transactions) that a table's
   pg_class.relfrozenxid field can attain before a VACUUM operation
   is forced to prevent transaction ID wraparound within the table

In other words, autovacuum doesn't even look at a table until it
exceeds 100% of this limit. And even then, it might take some time
until autovacuum gets around to vacuuming it and finishes. This happens
a lot when you have read-only tables that aren't otherwise vacuumed by
autovacuum.

So, having defaults below 100% will invariably cause false alarms when
PostgreSQL is working as designed. I'd propose changing defaults to
something like warning 105%, critical 120%

Marti


More information about the Check_postgres mailing list