WALSync 冻结的 Postgres 系统

Postgres System frozen in WALSync

我已经连续遇到这个问题三次了,我不知道是什么原因造成的。

上下文:我是 运行 大型脚本,有时系统会卡在 WALSync 状态。最好的描述方式就是pg_stat_activity

的这个观点
pid 查询 状态 wait_event_type wait_event
5172 (编辑) 活跃 LWLock WALWrite
1887 Activity LogicalLauncherMain
1884 IO 数据文件刷新
1883 IO 数据文件刷新
1885 IO WALSync

关于:

非默认设置:

shared_buffers = 8GB
effective_cache_size = 24GB
maintenance_work_mem = 1GB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 500
random_page_cost = 1.1
effective_io_concurrency = 200
work_mem = 52428kB
min_wal_size = 4GB
max_wal_size = 16GB
max_worker_processes = 8
max_parallel_workers_per_gather = 8
max_parallel_workers = 8
max_parallel_maintenance_workers = 2

任何关于如何进一步挖掘的想法或见解将不胜感激!

您的 I/O 系统过载。

如果是Linux,通过运行

验证
sar -u 1 10

如果%iowait一直在两位数范围内,你就有证据了。

好吧,我想通过配置调整解决了这个问题。在我将 maintenance_work_mem 更改为 4GB 后,我 运行 两次相同的脚本都没有任何问题。为了任何有价值的东西。