【问题标题】:Postgres System frozen in WALSyncPostgres 系统在 WALSync 中冻结
【发布时间】:2021-06-11 18:39:53
【问题描述】:

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

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

pid query state wait_event_type wait_event
5172 (redacted) active LWLock WALWrite
1887 NULL Activity LogicalLauncherMain
1884 NULL IO DataFileFlush
1883 NULL IO DataFileFlush
1885 NULL IO WALSync
  • 磁盘空间不是问题。
  • 没有使用事务控制。
  • 发生这种情况的其他时间是在不同的查询上(即不是这个特定的查询,而是关于负载或其他什么的?)。
  • 相同的脚本已经在开发数据库(相同的机器和集群)中进行了测试,并且运行良好。
  • 系统上没有其他活动发生。
  • 我尝试取消和终止所有 pid,但没有任何反应。
  • 前进的唯一方法是重新启动服务器:(((((
  • 无法执行其他/新查询(除了 pg_stat_activity 之类的查询)。

关于:

  • 第 13.2 页
  • EC2、Ubuntu、8 核、32GB RAM
  • 无复制。
  • 机器基本上只是一个处理中心,所以我尝试进行相应调整(但我不是专家,欢迎提出任何建议)见下文...

非默认设置:

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

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

【问题讨论】:

  • 它是否完全冻结,进展为零?还是只是慢,WALSync 是主要瓶颈? topvmstatsar 之类的东西会显示什么?
  • @jjanes 它完全沉默。上面没有活动。我还没有监视sar,但我现在正在运行一个新版本并观看它。我怀疑因为这些是 EBS 驱动器,所以某些东西可能会导致可访问性暂时失效而无法恢复。我不知道——只是一种预感。
  • 如果 EBS 被冲洗掉,我认为您也无法在系统/命令行级别执行任何操作。这个 EBS 是否仅用于 PostgreSQL 数据,而操作系统和二进制文件位于其他地方?如果你运行pg_test_fsync,告诉它把文件放在PostgreSQL数据所在的同一个EBS上会发生什么?

标签: postgresql locking wal


【解决方案1】:

您的 I/O 系统过载。

如果是Linux,运行验证

sar -u 1 10

如果%iowait 始终在两位数范围内,则您有证据。

【讨论】:

  • 你能修饰一下这个解释吗?目前,EBS 挂载量相当可观,仅通过观察 iotop 我就可以看出系统几乎总是受 CPU 限制(8 核)。然而,是的,我看到 iowaits 在 10 年代,有时接近 20 年代。此外,我已经非常努力地运行这些构建很多次并且从未遇到过问题 - 从那时起我所做的唯一一件事就是增加了磁盘空间和 IOPS 容量。我并不是要你解决我的问题,但如果你对“过载”的真正含义或我如何解决它有任何见解,我会很高兴的。
  • 不,这是最难的部分。我只能说你不会再从那个系统中获得任何 I/O,但我不能说瓶颈在哪里。
【解决方案2】:

嗯,我认为通过配置调整解决了这个问题。在我将maintenance_work_mem 更改为 4GB 后,我运行了两次相同的脚本,没有任何问题。不惜一切代价。

【讨论】:

    猜你喜欢
    • 2015-06-03
    • 2019-07-14
    • 1970-01-01
    • 2020-06-10
    • 2018-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多