Lonni J Friedman <netllama@gmail.com> writes:
> Running 9.1.3 on Linux-x86_64. I'm seeing autovacuum running for the
> past 6 hours on a newly created table that only has 1 row of data in
> it. This table did exist previously, but was dropped & recreated.
> I'm not sure if that might explain this behavior. When I strace the
> autovacuum process, I see the following scrolling by non-stop (with no
> changes to the file referenced):
> select(0, NULL, NULL, NULL, {0, 21000}) = 0 (Timeout)
> open("base/16412/214803_vm", O_RDWR) = -1 ENOENT (No such file or directory)
> open("base/16412/214803_vm", O_RDWR) = -1 ENOENT (No such file or directory)
> open("base/16412/214803_vm", O_RDWR) = -1 ENOENT (No such file or directory)
> open("base/16412/214803_vm", O_RDWR) = -1 ENOENT (No such file or directory)
> open("base/16412/214803_vm", O_RDWR) = -1 ENOENT (No such file or directory)
> open("base/16412/214803_vm", O_RDWR) = -1 ENOENT (No such file or directory)
This seems to have been noticed and fixed in HEAD:
http://git.postgresql.org/gitweb/?p=postgresql.git&a=commitdiff&h=b4e0741727685443657b55932da0c06f028fbc00
I wonder whether that should've been back-patched.
In the meantime, though, it sure looks like you've got a lot more than
one row in there. Perhaps you did umpteen zillion updates on that one
row?
regards, tom lane