
# AUTOVACUUM清理效率低
#### 问题描述
AUTOVACUUM在清理时需要大量的I/O操作。为了不影响主业务，AUTOVACUUM有一套自己的I/O管控机制，通过控制单位时间内的页面访问数量来减少AUTOVACUUM线程对业务的影响。这套I/O管控机制在大表和大容量场景下会极大地影响VACUUM的效率。
#### 问题定位
清理效率的估算请参见[如何评估VACUUM清理速率或需要清理多久](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-1882.html#ZH-CN_TOPIC_0000002559106011)。
#### 问题规避
如果发现AUTOVACUUM清理死行过慢，跟不上业务死行生成的速度，导致死行持续堆积，则需要人工介入处理，具体策略如下：
1. 调整AUTOVACUUM参数：在系统I/O资源充足的情况下，可以通过减小autovacuum_vacuum_cost_delay来加快VACUUM的清理速度。该参数默认值为20ms，即扫描约20-50个页面时会触发一次强制睡眠，每次睡眠时间为20ms。建议将该参数调整为1ms，以极大地提高后台线程的清理效率。
2. 手动执行VACUUM：如果调整参数后仍无法立即回收死行，可以通过视图获取死行较多的数据表，并对这些表进行手动VACUUM。手动VACUUM不使用I/O管控，会以最大效率清理死行，从而快速减少死行数量。
 
