Richard Neill <rn214@xxxxxxxxx> writes: > I'm wondering whether Vacuum/analyse (notably by the autovaccuum daemon) > is responsible for some deadlocks/dropouts I'm seeing. > One particular table gets hit about 5 times a second (for single row > updates and inserts) + associated index changes. This is a very light > load for the hardware; we have 7 CPU cores idling, and very little disk > activity. The query normally runs in about 20 ms. > However, the query must always respond within 200ms, or userspace gets > nasty errors. [we're routing books on a sorter machine, and the book > misses its exit opportunity]. Although this is a low load, it's a bit > like a heartbeat. > The question is, could the autovacuum daemon (running either in vacuum > or in analyse mode) be taking out locks on this table that sometimes > cause the query response time to go way up (exceeding 10 seconds)? Hmm. Autovacuum does sometimes take an exclusive lock. It is supposed to release it "on demand" but if I recall the details correctly, that could involve a delay of about deadlock_timeout, or 1s by default. It would be reasonable to reduce deadlock_timeout to 100ms to ensure your external constraint is met. Delays of up to 10s would not be explained by that though. Do you have usage spikes of other types? I wonder in particular if you've got checkpoints smoothed out enough. regards, tom lane -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance