postgreSQL数据库
2021-08-24 09:36:57 0 举报
AI智能生成
postgreSQL高可用和高级特性
作者其他创作
大纲/内容
PostgreSQL性能优化
描述
为用户提供高性能的服务是优秀的系统应该实现的目标,数据库的性能表现往往起
到关键作用 在硬件层面,影 数据库性能的主要因 素有CPU、I/O、内存和网络;在软
件层面则要复杂得多,操作系统配置、 中间件配置、数据库参数配置、运行在数据库之上
的查询和命令等,都对性能有或多或少的影响。 同时,随 业务增长 、数据量的变化,应
用复杂度变更等种种因 响,数据库系统遇到瓶颈,运行在不健康状态的情况非常多见。
到关键作用 在硬件层面,影 数据库性能的主要因 素有CPU、I/O、内存和网络;在软
件层面则要复杂得多,操作系统配置、 中间件配置、数据库参数配置、运行在数据库之上
的查询和命令等,都对性能有或多或少的影响。 同时,随 业务增长 、数据量的变化,应
用复杂度变更等种种因 响,数据库系统遇到瓶颈,运行在不健康状态的情况非常多见。
PostgreSQL 数据库的 SQL 服务器应用通常分为 OLTP 和数据仓库,在当前日益复杂的数据应用环境中,这
两种类型混合使用的情况越来越多,这也对数据库系统和数据库层面的优化提出了更高的要求。
两种类型混合使用的情况越来越多,这也对数据库系统和数据库层面的优化提出了更高的要求。
服务器硬件
CPU
影响数据库性能的主要硬件因素有 CPU 、磁盘、内存和网络
最先到达瓶颈的,通常是磁 IIO 在投入生产之前应该对磁盘的容量和吞吐 进行
估算,磁盘容量预估相对简单,但吞吐量受各种因素变化的 ,预估常常不够准确,
所以要做好扩展的准备。
固态存储现在已经非常成熟,而且价格已经比较便宜,目前在生产
环境使用固态磁盘已经非常普遍,如目前使用广泛的 SATA SSD PCie SSD 与传统磁盘
相比, SSD 有更好的随机读写性能,能够更好地支持并发,实现更大吞吐量,是现在数据
库服务器首选的存储介质 但应该注意的是需要区分消费级 SSD 和企业级 SSD ,如果在读
写密集的生产环境使用廉价的消费级 SSD ,不用多久,消费级 SSD 就会寿终正寝 使用外
部存储设备加载到服务器也是比较常见的,例如 SAN (存储区域网络)和 NAS (网络接入
存储) 使用 SAN 设备时通过块接口访问,对服务器来说就像访问本地磁盘一样; NAS则是
使用标准文件协议进行访问,例如 NFS 使用外部存储,还需要考虑网络通信对响应时间的的影响。
最先到达瓶颈的,通常是磁 IIO 在投入生产之前应该对磁盘的容量和吞吐 进行
估算,磁盘容量预估相对简单,但吞吐量受各种因素变化的 ,预估常常不够准确,
所以要做好扩展的准备。
固态存储现在已经非常成熟,而且价格已经比较便宜,目前在生产
环境使用固态磁盘已经非常普遍,如目前使用广泛的 SATA SSD PCie SSD 与传统磁盘
相比, SSD 有更好的随机读写性能,能够更好地支持并发,实现更大吞吐量,是现在数据
库服务器首选的存储介质 但应该注意的是需要区分消费级 SSD 和企业级 SSD ,如果在读
写密集的生产环境使用廉价的消费级 SSD ,不用多久,消费级 SSD 就会寿终正寝 使用外
部存储设备加载到服务器也是比较常见的,例如 SAN (存储区域网络)和 NAS (网络接入
存储) 使用 SAN 设备时通过块接口访问,对服务器来说就像访问本地磁盘一样; NAS则是
使用标准文件协议进行访问,例如 NFS 使用外部存储,还需要考虑网络通信对响应时间的的影响。
磁盘
CPU 也会经常成为性能瓶颈,数据库服务器执行的每 个查询都会给 CPU 一定
压力 更高的 CPU 主频可以提供更快的运算速度,更多的核心数则能大大提高并发能力,
充分利用 PostgreSQL 并发查询的能力 需要注意的是:有一些服务器在 BIOS 中可以设置
CPU 的性能模式,可能的模式有高性能模式、普通模式和节能模式,在数据库服务器中,
不建议使用节能模式 这种模式会在系统比较空闲的时候对 CPU 主动降频,达到降温和节
电的目的,但对于数据库来说,则会产生性能波动,这是用户不希望看到的 ,所 以硬件上
架前就禁用节能模式,不同的设备请参考厂家提供的手册进行调整。
压力 更高的 CPU 主频可以提供更快的运算速度,更多的核心数则能大大提高并发能力,
充分利用 PostgreSQL 并发查询的能力 需要注意的是:有一些服务器在 BIOS 中可以设置
CPU 的性能模式,可能的模式有高性能模式、普通模式和节能模式,在数据库服务器中,
不建议使用节能模式 这种模式会在系统比较空闲的时候对 CPU 主动降频,达到降温和节
电的目的,但对于数据库来说,则会产生性能波动,这是用户不希望看到的 ,所 以硬件上
架前就禁用节能模式,不同的设备请参考厂家提供的手册进行调整。
内存
内存的使用对数据库系统非常重要 操作系统层、数据库层等各个层的缓存对高性能
有很大辅助作用,较大的内存可以明显降低服务器的 I/O 压力,缓解 CPU I/O 等待时间,
对数据库性能起着关键的 但现在流行的服务器,内存配置一般都 较充裕,千兆和
万兆网卡也几乎成为数据库服务器标配 内存与网络在大多数时候不会成为系统瓶颈,但
仍然需要密切监控容量和指标趋势,在适当的时候进行扩容和升级。
有很大辅助作用,较大的内存可以明显降低服务器的 I/O 压力,缓解 CPU I/O 等待时间,
对数据库性能起着关键的 但现在流行的服务器,内存配置一般都 较充裕,千兆和
万兆网卡也几乎成为数据库服务器标配 内存与网络在大多数时候不会成为系统瓶颈,但
仍然需要密切监控容量和指标趋势,在适当的时候进行扩容和升级。
网络
操作系统优化
描述
数据库是与操作系统结合非常紧密的系统应用,操作系统的参数配置会直接作用在数
据库服务器 此对 DBA 来说,了解操作系统非常重要 下面我们介绍一些常用的性能
监控和调整工具,并讨论一些常见的数据库专有服务器的操作系统方面的优化点,以及这
些优化点相关参数的调整原则和方法。
据库服务器 此对 DBA 来说,了解操作系统非常重要 下面我们介绍一些常用的性能
监控和调整工具,并讨论一些常见的数据库专有服务器的操作系统方面的优化点,以及这
些优化点相关参数的调整原则和方法。
常用 Linux 性能工真
Linux 操作系统提供了非常多的性能监控工具,可以全方位监控 CPU 内存、虚拟内
存、磁盘 I/O 、网络等各项指标,为问题排查提供了便利,无论是研发人员还是数据库管理
员都应该熟练掌握这些工具和命 的用法 因为 Linux 相关命令和命令的变种很多,本节
简单介绍一些常用的性能检测工 ,例如 top free vmstat iostat mpsta sar, pidstat等。
除了 top free 外,其他工具均位于 sysstat 包中。
存、磁盘 I/O 、网络等各项指标,为问题排查提供了便利,无论是研发人员还是数据库管理
员都应该熟练掌握这些工具和命 的用法 因为 Linux 相关命令和命令的变种很多,本节
简单介绍一些常用的性能检测工 ,例如 top free vmstat iostat mpsta sar, pidstat等。
除了 top free 外,其他工具均位于 sysstat 包中。
数据库调优
小总结
并行 查询
并行查询相关配置参数
并行扫描
并行聚合
多表关联
小总结
PostgreSQL分区表
分区表的意义
传统分区表
内置分区表
小总结
0 条评论
下一页