【发布时间】:2021-12-01 05:57:32
【问题描述】:
我在 GCP 上将 postgresql 用于 cloudSQL。
一个表几乎处于插入过程中。 (理论上每天超过1000万)
在数据大约100亿时进行自动清理。
此外,当自动清理运行时,其他进程只能由单个用户使用。
也许是真空冷冻的效果。
具体原因是什么?
并且我决定如果自动清空运行的次数少且频繁,执行周期会更短,因此我将参数修改如下。
autovacuum_freeze_max_age : 2 billion -> 100 million
autovacuum_multixact_freeze_max_age : 2 billion -> 100 million
是否有任何参数需要修改以进一步提高性能?
【问题讨论】:
-
" 其他进程只能由单个用户使用" 任何给定进程总是只能为单个用户提供服务。您看到了什么让您认为只有在吸尘期间才会出现这种情况?
-
错误短语是:sqlalchemy.exc.OperationalError: (psycopg2.errors.ProgramLimitExceeded) multixact "members" limit exceeded DETAIL: 此命令将创建一个包含 2 个成员的 multixact,但剩余空间仅为足够 0 个成员。错误是在vacuum运行时修改xact id引起的吗?
标签: postgresql vacuum autovacuum