Is the table being excluded? (see the pg_autovacuum system table
settings)
there's an entry for this table on pg_autovacuum, and it's enabled.
Are you sure that it's not getting processed? Perhaps one worker
is / has been churning on this table for a *LONG* time (that is a
fairly big table).
Right. I was wrong :-) the table is being processed by autovacuum (I checked via pg_stat_activity). However, as you pinpointed, it's already running for hours (the test workload ended hours ago, basically it is just this autovacuum worker running on the system). Is there a way to make a more aggressive autovacuum setting for this table? it does not matter if it will affect performance, my concern is that it finishes as soon as possible. I wonder if a manual vacuum wouldn't be faster.
Yes, in the pg_autovacuum table, you can set per-relation vacuum cost delay settings etc...
Right. cost-delay for this table is already zeroed. Perhaps autovacuum could have an entry for cpu and/or i/o usage threshold, in a way that when one of this resources had an activity below a pre-defined threshold, autovacuum could run more aggressively (using more i/o and/or more cpu).