`
yr512656630
  • 浏览: 316624 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

postgresql 性能提升

 
阅读更多
文件:postgresql.conf


checkpoint又名检查点,在oracle中checkpoint的发生意味着之前的脏数据全部写回磁盘,数据库实现了一致性与数据完整性。oracle在实现介质恢复时将以最近的checkpoint为参照点执行事务前滚。在postgresql中checkpoint起着相同的作用:写脏数据;完成数据库的完整性检查。

checkpoints相关参数:
checkpoint_segments:
WAL log的最大数量,系统默认值是3。该值越大,在执行介质恢复时处理的数据量也越大,时间相对越长。
checkpoint_timeout:
系统自动执行checkpoint之间的最大时间间隔,同样间隔越大介质恢复的时间越长。系统默认值是5分钟。
checkpoint_completion_target:
该参数表示checkpoint的完成目标,系统默认值是0.5,也就是说每个checkpoint需要在checkpoints间隔时间的50%内完成。
checkpoint_warning:
系统默认值是30秒,如果checkpoints的实际发生间隔小于该参数,将会在server log中写入写入一条相关信息。可以通过设置为0禁用信息写入。

checkpoint执行控制:
1,数据量达到checkpoint_segments*16M时,系统自动触发;
2,时间间隔达到checkpoint_timeout参数值时;
3,用户发出checkpoint命令时。

checkpoints参数调整:
正确合适的参数值总能够给系统带来益处,checkpoints参数合理的配置不仅能够减少系统IO写入的阻塞,同时还会减少高峰时IO给系统带来的压力。
首先可以通过观察checkpoint_warning参数写入的日志,来估算系统写入的数据量:一般情况下checkpoint_warning参数值小于checkpoint_timeout;
估算公式:checkpoint_segments*16M*(60s/m)/checkpoint_warning=大致每分钟数据量,得到每分钟写入的数据量(这里全部是估算,建立在warning参数的合理设置上)。
合理配置情况:checkpoint_segments*16M*checkpoint_timeout(m)略大于上述值.
以上述公式为依据,配置checkpoint_segments与checkpoint_timeout,两个参数应该尽量平衡为一个足够大和足够小的值。
在数据量异常高的情况下应该考虑,磁盘带宽与checkpoint时数据量的关系。

个人观点:
假如以checkpoint_segments参数为阀值时,可以计算高峰时需要的带宽(秒):checkpoint_segments*16M/(checkpoint_warning*checkpoint_completion_target)。
假如以checkpoint_timeout参数为阀值时,checkpoint_warning值最好大于等于checkpoint_timeout,通过监控系统数据字典统计写入的数据量Total。
Total/(checkpoint_timeout*checkpoint_completion_target)得到IO的带宽要求。
分享到:
评论

相关推荐

    提升PostgreSQL性能

    提升PostgreSQL性能

    PostgreSQL 9.0 High Performance

    PostgreSQL 9.0 最新版高级教程 PostgreSQL性能提升 英文版

    PostgreSQL中文手册9.2

    PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (性能提升技巧 性能提升技巧 性能提升技巧 ) 46 一、使用 一、使用 EXPLAINEXPLAINEXPLAINEXPLAIN EXPLAIN: 46 PostgreSQL PostgreSQL PostgreSQL学习...

    PostgreSQL 12将提升性能1

    通过简单地升级就可以让应用程序能够更好的运行,这一点对于用户来说是非常好的体验,并且对于维持现有的用户非常重要,也将有越来越多的人接受PostgreSQL。在之

    postgresql 中文学习手册

    PostgreSQL学习手册(性能提升技巧原理) PostgreSQL学习手册(服务器配置) PostgreSQL学习手册(角色和权限) PostgreSQL学习手册(数据库管理) PostgreSQL学习手册(数据库维护) PostgreSQL学习手册(系统表) PostgreSQL...

    PostgreSQL教程(十):性能提升技巧

     PostgreSQL为每个查询都生成一个查询规划,因为选择正确的查询路径对性能的影响是极为关键的。PostgreSQL本身已经包含了一个规划器用于寻找最优规划,我们可以通过使用EXPLAIN命令来查看规划器为每个查询生成的...

    PostgreSQL 8.2.3 中文文档

    性能提升技巧 III. 服务器管理 14. 安装指导 15. 在 Windows 上安装客户端 16. 操作系统环境 17. 服务器配置 18. 数据库角色和权限 19. 管理数据库 20. 用户认证 21. 区域 22. 日常数据库维护工作 23....

    Instagram提升PostgreSQL性能的五个技巧

    主要介绍了Instagram提升PostgreSQL性能的五个技巧,Instagram的数据库一直由PostgreSQL支撑,经验很具有参考性,需要的朋友可以参考下

    PostgreSQL 数据库性能提升的几个方面

    PostgreSQL提供了一些帮助提升性能的功能。主要有一些几个方面。

    postgresql中文手册

    13. 性能提升技巧 III. 服务器管理 14. 安装指导 15. 在 Windows 上安装客户端 16. 操作系统环境 17. 服务器配置 18. 数据库角色和权限 19. 管理数据库 20. 用户认证 21. 区域 22. 日常数据库维护工作 23...

    PostgreSQL v9.3 For Win.zip

    符合ANSI SQL 92和ANSI SQL 99标准,是目前功能最强、最稳定的开放源代码数据库产品,具有存储过程、事务、视图、触发器等功能,与MySQL相比,PostgreSQL注重整体性能和稳定性。   我们非常高兴的宣布 PostgreSQL...

    PostgreSQL分区表(partitioning)应用实例详解

    1、查询性能大幅提升 2、删除历史数据更快 3、可将不常用的历史数据使用表空间技术转移到低成本的存储介质上 那么什么时候该使用分区表呢?官方给出的指导意见是:当表的大小超过了数据库服务器的物理内存大小则应当...

    一个提升PostgreSQL性能的小技巧

    主要介绍了一个提升Postgres性能的小技巧,通过修改很少的代码来优化查询,需要的朋友可以参考下

    炼数成金深度学习PostgreSQL.txt

    Stonbreaker大师在离开Informix CEO的位置后,启动了Ingres的后续项目,这就是Postgresql,这是具有正统高贵血缘的开源数据库系统,在今天以性能稳定和高度开放著称。在Oracle收购Mysql后,业内人士担心Mysql会被闭...

    postgresql-12.0-1-windows-x64.exe

    PostgreSQL 12 正式版已于 2019-10-03 发布,已对 12 版本的新特性进行了探索,整体上 12 版本的变化不小。 12 版本的典型新特性如下: 支持 SQL/JSON path ...分区表性能大辐提升 在线重建索引(Reindex Concurrently)

    PostgreSQL的Window分析函数源码优化

    《PostgreSQL的Window分析函数源码优化》 Window(窗口)函数作为关系数据库领域中内数据库分析技术的一种解决...通过与PostgreSQL数据库原有的窗口函数实现以及现有商业数据库进行性能上的对比,验证了新算法的有效性。

    论文研究-PostgreSQL查询优化中的等价类研究与改进.pdf

    研究了PostgreSQL查询引擎...利用等价类的传递性,将一些非等值约束能够传递到其他的表列,最终可以实现减少资源耗用提升查询性能的目的。实验结果表明,改进后的PostgreSQL可以使得一些查询的效率有不同层次的提高。

Global site tag (gtag.js) - Google Analytics