作者:瀚高PG实验室 (Highgo PG Lab)- 海无涯
高checkpoint_completion_target值带来的优缺点
优点:
• I/O操作占用资源比例逐渐趋于平缓。避免或减少了数据库运行中突然卡住不动的情况。
• 磁盘吞吐量趋于平缓,减少和减小了I/O峰值的出现。
• 等待时间减小,提高客户体验
缺点:
• 如果宕机,则恢复时间长
• Shared_buffer比较大,写入频繁的数据库,这个值设置的过大是个不理想的选择(速度放缓,路程却增加,压力增加)
checkpoint_completion_target最佳值是多少
来看一份实际环境的测试表
CCT 慢查询数量
100ms 200ms 300ms 400ms 500ms(>)
0 122 52 51 44 37
0.3 92 41 37 36 31
0.6 122 34 29 28 23
0.9 164 30 18 17 16
1 173 23 13 13 12
可以发现checkpoint_completion_target趋于1的时候,慢查询的个数是逐渐降低的。所以我的建议值就是0.8/0.9。
所以为什么不是checkpoint_completion_target=1?
因为我不想因为上一个检查点没有完成而导下一次检查点发生推迟。