在 Ubuntu 16.04 系统上恢复转储需要几个小时。等待超过 3 小时(10926330.443 毫秒)后,Autovacuum 才被取消:
2016-07-20 05:20:00 CEST [78652-2414] LOCATION: exec_simple_query, postgres.c:946
2016-07-20 08:22:05 CEST [79485-1] ERROR: 57014: canceling autovacuum task
2016-07-20 08:22:05 CEST [79485-2] CONTEXT: automatic analyze of table "test.public.test"
2016-07-20 08:22:05 CEST [79485-3] LOCATION: ProcessInterrupts, postgres.c:2965
2016-07-20 08:22:06 CEST [78652-2415] LOG: 00000: duration: 10926330.443 ms
我在较小的 Ubuntu 14.04 系统上恢复了相同的转储,没有任何无休止运行的自动清理进程。原因可能是什么?
答案1
这是 glibc 的一个错误:从 Ubuntu 14.10(glibc 2.19)升级到 15.04(glibc 2.21)后,我们在一个特定的 PostgreSQL 索引创建中遇到了严重的性能下降。索引创建现在需要 10 多分钟,而之前只需大约 30 秒即可完成。