- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个强大的 Postgres 服务器(64 核,384 GB RAM,16 个 15k SAS 驱动器,RAID 10),并且在一天中我们多次重建几个写入密集型的大型数据集。 Apache 和 Tomcat 也在同一台服务器上运行。
在重建这些数据集时,我们每天收到大约 300 次此警告,在很长一段时间内,错误平均间隔 2 - 5 秒:
2015-01-15 12:32:53 EST [11403]: [10841-1] LOG: checkpoints are occurring too frequently (2 seconds apart)
2015-01-15 12:32:56 EST [11403]: [10845-1] LOG: checkpoints are occurring too frequently (3 seconds apart)
2015-01-15 12:32:58 EST [11403]: [10849-1] LOG: checkpoints are occurring too frequently (2 seconds apart)
2015-01-15 12:33:01 EST [11403]: [10853-1] LOG: checkpoints are occurring too frequently (3 seconds apart)
这些是相关设置:
checkpoint_completion_target 0.7
checkpoint_segments 64
checkpoint_timeout 5min
checkpoint_warning 30s
wal_block_size 8192
wal_buffers 4MB
wal_keep_segments 5000
wal_level hot_standby
wal_receiver_status_interval 10s
wal_segment_size 16MB
wal_sync_method fdatasync
wal_writer_delay 200ms
work_mem 96MB
shared_buffers 24GB
effective_cache_size 128GB
这意味着我们每 2 - 5 秒写入 1024 MB 的 WAL 文件,有时会持续 15 - 30 分钟。
1) 您看到我们可以改进的设置吗?如果您需要记录其他设置,请告诉我。
2) 我们可以使用“SET LOCAL synchronous_commit TO OFF;”吗?在这些写入密集型事务开始时让这些 WAL 写入更多地在后台发生,对其余操作的影响更小?
我们正在重建的数据存储在别处,因此如果电源出现故障并且 RAID 备用电池无法正常工作,一旦数据集再次重建,我们就不会出任何问题。
将“将本地同步提交设置为关闭;”如果这种情况持续 15 - 30 分钟,会造成任何问题吗?或者导致我们使用 WAL 发送器的流复制出现任何问题?
谢谢!
附言。我希望三星开始发售他们的 SM1715 3.2 TB PCIe 企业级 SSD,因为我认为它可以很好地解决我们的问题。
最佳答案
由于 wal_level
设置为 hot_standby
,您的服务器正在生成如此多的 WAL 数据。我假设您需要这个,所以避免警告的最佳选择是增加您的 checkpoint_segments
。但它们只是 - 警告 - 在批量更新和数据加载期间看到它们是非常普遍和完全正常的。你只是碰巧经常更新。
更改 synchronous_commit
不会更改写入 WAL 的内容,而是更改提交返回以允许操作系统缓冲这些写入的时间。
它可能不适用于您的架构,但您可以通过使用未记录的表进行数据重建来潜在地保存一些 WAL 数据。您的副本将无法访问这些表,但在重建之后您将能够从它们未记录的 sibling 中更新您记录的表。
关于postgresql - Postgres : Checkpoints Are Occurring Too Frequently,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27972393/
我是一名优秀的程序员,十分优秀!