性能计数器和性能分析方法
一.操作系统计数器和分析
1.内存分析方法
iostat命令
Read(write) per sec :磁盘读写次数,一般>5,表示磁盘读,而不是缓存读 r/s w/s
磁盘使用率高,磁盘队列长(wait),而Read(write) per sec小,就是磁盘瓶颈
队列变长,而Read(write) per sec不降,是由于内存不足
2.CPU分析方法
Cpu使用率,不超过90%,如果多CPU负载不均,也是CPU瓶颈
用户CPU使用率:较大,需要优化算法
数据库:排序或者函数操作
3.磁盘I/O分析方法
如果服务器是流媒体,数据库或者文件,更容易成为瓶颈
如果只是磁盘使用率较大,可能是磁盘瓶颈
如果相关的值都比较大,可能是内存泄露
4.进程分析方法
查看哪个进程处理时间长
查看哪个进程页面失效多,或需要大量内存,或活跃度高
如果resident Size,即进程保留内存量,较大,内存泄露
5.网络分析方法
发送和接收字节的速率,将它和网络带宽进行比较
二.应用服务器计数器和分析(分J2EE和IIS)
主要看J2EE
JVM 1.堆大小
2.可用堆大小
JDBC 连接池 1.等待的连接数量 ,该值大的话,增加JDBC连接池大小
2.JDBC总连接数
3.JDBC连接池的总容量
4.活跃的JDBC连接数
均是 获取合理的JDBC连接池设置,提高利用率
执行队列
-
空闲线程数量
-
队列请求的最长时间,判断有无明显阻塞
-
已处理的请求总数
-
挂起数量
三.数据库计数器和分析
系统:1.Total Processor Time:数据库进程占用的CPU时间
2.User Connections:当前用户连接数 超出连接数可能直接被拒绝或者其他异常
内存:1.Cache Hit Ratio:缓存命中率。命中率较小,而数据库繁忙,可以调整缓存大小
2.Total server Memory:SQL server 数据库进程使用的内存
锁:1.Average Wait Time:锁平均等待时间
2.Lock Requests/sec : 每秒锁请求数
3.Number of DeadLock /sec 每秒死锁数:较大需要排查
IO:1.被挂起的物理读写,挂起值大,可能是CPU或者磁盘I/O产生瓶颈
-
每秒页面读写数
3.每秒事务数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言