我有一张非常重要的表。 问题是表格增长很多,因为autovacuum无法赶上。 autovacuum每2分钟启动一次,因此它正在运行文件。
我有一个应用程序,每隔60-70秒进行50k更新(以及一些插入)。
我每周都被迫做CLUSTER,这不是IMO的最佳解决方案。 我的autovacuum设置如下(加上相关):
maintenance_work_mem = 2GB
autovacuum_vacuum_cost_limit = 10000
autovacuum_naptime = 10
autovacuum_max_workers = 5
autovacuum_vacuum_cost_delay = 10ms
vacuum_cost_limit = 1000
autovacuum_vacuum_scale_factor=0.1 # this is set only for this table
以下是autovacuum日志:
2018-01-02 12:47:40.212 UTC [2289]日志:桌子的自动真空 “mydb.public.sla”:索引扫描:1页:0删除,21853剩余,1 由于引脚跳过,0跳过冻结的元组:28592已移除,884848 保持,38501已死但尚未移除缓冲区使用情况:240395 点击率,15086次未命中率,22314脏污平均读取率:29.918 MB / s,平均 写入速率:44.252 MB / s系统使用率:CPU 0.47s / 2.60u秒消耗3.93 秒
在我看来,考虑到我的硬件非常好,29 MB / s是低的方式
我有英特尔NVMe设备,我的I / O似乎没有饱和。
Postgresql版本:9.6
CPU:双Intel(R)Xeon(R)CPU E5-2620 v4 @ 2.10GHz
任何想法如何改善这个?