random_page_cost 并非原始 I/O 成本

Some more thoughts on random_page_cost

random_page_cost 并非原始 I/O 成本

几个月前我曾探讨过调整 random_page_cost 以匹配现代存储,但最近通过 POSETTE 会议的分享,我对这个参数有了全新的认识。测试发现,即便是老旧的 SATA 硬盘,其估算的 random_page_cost 也高达 125,远超默认值 4.0。这揭示了一个关键事实:4.0 的默认值从未代表过真实的随机 I/O 成本。实际上,random_page_cost 更像是一个补偿机制,用来弥补成本模型在内存管理和缓存效应上的缺失。它通过引导查询计划选择更局部化的访问方式,来控制 active set 的大小,从而在长期运行中优化系统性能。因此,单纯测量存储设备的 I/O 速度无法得出正确的参数值,调优必须依赖系统监控和反馈。

这意味着不可能存在一种工具,在分析你的存储并测量其顺序与随机 I/O 处理能力后,就能告诉你 random_page_cost 的“正确”值。

同日更多故事

2026-09-04