Get faster vacuums

Post date: Nov 06, 2014 1:30:27 AM

The amount of memory pg uses for vacuuming by default is super low. You can increase it and thus dramatically speed up vacuuming by doing something like:

How to find current setting?

sachi=# show maintenance_work_mem

sachi-# ;

 maintenance_work_mem 

----------------------

 64MB

(1 row)

sachi=# select name, setting, unit from pg_settings where name='maintenance_work_mem';

         name         | setting | unit 

----------------------+---------+------

 maintenance_work_mem | 65536   | kB

(1 row)

Specifies the maximum amount of memory (in kilobytes) to be used in maintenance operations, such as VACUUM or CREATE INDEX. Since only one of these operations can be executed at a time by a database session, and an installation normally doesn't have very many of them happening concurrently, it's safe to set this value significantly larger than work_mem. Larger settings may improve performance for vacuuming and for restoring database dumps.

Set Classifications

master

session

reload

Now set the maintenance_work_mem to 512MB.

sachi=# set maintenance_work_mem = 524288