postgresql—管理统计工具

2022-08-12  本文已影响0人  熊猫学猿

数据库级的统计信息可以通过pg_stat_database这个系统视图来查看

numbackends:当前有多少个并发连接,理论上控制在cpu核数的1.5倍可以获得更好的性能

blks_read,blks_hit:读取磁盘块的次数与这些块的缓存命中数

xact_commit,xact_rollback:提交和回滚的事务数

deadlocks:从上次执行pg_stat_reset以来的死锁数量

缓存命中率是衡量I/O性能的最重要指标,它应该非常接近1。否则应该调整shared_buffers的配置。如果命中率低于99%,可以尝试调大它的值。

事务提交率则可以知道我们应用的健康情况,它应该等于或非常接近1,否则检查是否死锁或其他超时太多。

建议使用者在进行优化和参数调整之后执行pg_stat_reset()命令

从性能角度来看,最有意义的数据是与索引vs顺序扫描有关的统计信息。当数据库可以使用索引获取那些行时,就会发生索引扫描。另一方面,当一个表必须被线性处理以确定哪些行属于一个集合时,会发生顺序扫描。因为实际的表数据存储在无序的堆中,读取行是一项耗时的操作,顺序扫描对于大表来说是成本非常高。因此,应该调整索引定义,以便数据库尽可能少地执行顺序扫描。

索引使用率应该尽可能地接近1,如果索引使用率比较低,应该调整索引。

在阅读查询计划时,有一个简单的原则:从下往上看,从右往左看。

在每行计划中,都有几项值,cost预估该算子开销有多么昂贵。“昂贵”按照磁盘读计算。

psql有许多种索引类型,B- tree、Hash、GiST、SP-GIST、GIN、BRIN和BLOOM等。最常用的索引类型B-tree。B-tree索引通常用于等值和范围查询;Hash索引只能处理简单的等值索引,GIN索引是适合于包含多个组成值的数据值。例如数组。Gi ST索引并不是单独的索引,而是一个通用的索引接口,可以使用GiST实现B-tree、R-tree等索引结构。

B- tree、GiST、GIN 和BRIN索引都支持多列索引,最多可以支持32个列的索引。

对于大规模的数据库集群,可以通过pg_repack工具进行定时的索引重建。

在数据库服务器的硬件、软件环境中建立已知的性能基准线称为基准测试,是数据库管理员和运维人员需要掌握的一项基本技能。

基准测试可用于测试不同的硬件和应用场景下的数据库系统配置是否合理。

通过模拟更高的负载,可以预估压力增加可能带来的瓶颈,也可以对未来的业务增长规划有所帮助。

重现系统中高负载时出现的错误或异常。

在测试环境中去模拟出现异常时的高负载场景,进行分析并解决问题。

上一篇 下一篇

猜你喜欢

热点阅读