前言这两天一直在纠结一个表膨胀的问题,分析的过程很艰辛,但是收获颇丰,请耐心阅读,相信各位能对vacuum和表膨胀理解得更加透彻。现象在2月19号,线上同事找过来说磁盘一直持续上涨,紧急扩容之后不一会又涨上去了。第一反应是不是WAL不断堆积?后来通过查看pg_stat_activity,发现某张表上vacuum跑了40多个小时,并且由于这个表在持续不断地执行update,表一直在膨胀中。不过奇怪的地方在于这个表据开发和运维反馈说之前一直都是正常的,就从18号开始不正常了,磁盘使用率持续上升。于是,登上去看了一下这台出问题的实例(由于涉及到生产安全,做了脱敏,下文都用test表代替生产表)。首先在操作系统层快速看一下,这个进程运行了2416分钟,大约40多个小时,并且还在跑,通过top