Introduced in PostgreSQL 8.1, the pg_autovacuum process which was previously implemented as an external service process is now integrated into the backend. It will run VACUUM automatically if a configurable amount of data has changed.
Running VACUUM is mandatory on a PostgreSQL server to keep data consistent and the server performant. As a start, it is recommended to enable the pg_autovacuum daemon by setting 'autovacuum', 'stats_start_collector' and 'stats_row_level' in postgresql.conf to 'on'. With a usually neglectable performance penalty from the data change tracking, you will gain automatic performing VACUUM runs.
To adjust pg_autovacuum performance for individual needs, you might need to tune its settings using global parameters in postgresql.conf, or individually on each table; see the documentation.