postgresql 性能问题诊断总结

本文总结了PostgreSQL性能问题的诊断方法,包括通过监控数据库连接数、CPU使用率、内存使用情况等来识别问题。当CPU在用户态(usr)高时,可能是大量SQL查询;在系统态(sys)高时,表明系统繁忙,可能存在内存不足导致的磁盘I/O。关注write操作,可能涉及排序或DML操作。临时表空间的增长和缓存数据的变化也是判断内存不足的依据。建议使用dstat工具进行实时分析。
摘要由CSDN通过智能技术生成
--如果系统出现访问缓慢,首先可以通过zabbix查看系统中的数据库连接数,cpu使用率,内存使用率,swap使用率,以及系统io吞吐是不是有明显的抖动
--如果数据库连接数突增,可能是系统访问量突然增大,更有可能是数据库执行一个或多个sql,造成资源争用,数据库处理速度跟不上向数据库发送请求的速度
--如果cpu空增,内存变动不大,可能是数据库在进行大量的计算,比如sql的聚合操作
--如果内存使用率增大,swap使用率增大,并伴随系统中io突增,可能是大表的连接,大表的count,内存中放不少数据,系统不得不进行内存与磁盘的转换(io的read),如果io的write很高,可能是再大表创建索引

--使用dstat进行实时分析
dstat -cdmgnsyr --lock --ipc --top-cpu --top-io --top-mem --proc-count


--将文件从磁盘的src位置拷贝到磁盘的dst位置。文件会从src先读取进入到内核空间,然后再读取到用户空间,然后拷贝数据到用户空间的buf上,再通过用户空间,内核空间,数据才到磁盘的dst上。
--cpu消耗在kernel space的时候就是sy(系统态使用的cpu百分比),cpu消耗在user space的时候就是us(用户态使用的cpu百分比)。
--硬中断 hi,cpu在执行程序的时候,突然外设硬件(比如硬盘出现问题了)机器需要立刻通知cpu进行现场保存工作。这个时候会cpu会出现上下文切换。
--就是cpu会有一部分时间会被硬中断占用了,这个时间就是hi。相类似,si是软中断的cpu占用时间&#x
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值