Ick. Can you get users and foreign connections off that machine,
lock them out for some period, and renice the VACUUM?
Shedding load and keeping it off while VACUUM runs high priority
might allow it to finish in a reasonable amount of time.
Or
Shedding load and dropping the VACUUM priority might allow a kill
signal to get through.
Hope this helps,
Ron
At 05:09 PM 12/29/2005, Jeffrey W. Baker wrote:
A few WEEKS ago, the autovacuum on my instance of pg 7.4 unilaterally
decided to VACUUM a table which has not been updated in over a year and
is more than one terabyte on the disk. Because of the very high
transaction load on this database, this VACUUM has been ruining
performance for almost a month. Unfortunately is seems invulnerable to
killing by signals:
# ps ax | grep VACUUM
15308 ? D 588:00 postgres: postgres skunk [local] VACUUM
# kill -HUP 15308
# ps ax | grep VACUUM
15308 ? D 588:00 postgres: postgres skunk [local] VACUUM
# kill -INT 15308
# ps ax | grep VACUUM
15308 ? D 588:00 postgres: postgres skunk [local] VACUUM
# kill -PIPE 15308
# ps ax | grep VACUUM
15308 ? D 588:00 postgres: postgres skunk [local] VACUUM
o/~ But the cat came back, the very next day ...
I assume that if I kill this with SIGKILL, that will bring down every
other postgres process, so that should be avoided. But surely there is
a way to interrupt this. If I had some reason to shut down the
instance, I'd be screwed, it seems.