性能计数器和性能分析方法

一.操作系统计数器和分析
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.                 空闲线程数量
  2.                 队列请求的最长时间,判断有无明显阻塞
  3.                 已处理的请求总数
  4.                 挂起数量
 
 
 
 
三.数据库计数器和分析
系统: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产生瓶颈
  1. 每秒页面读写数
       3.每秒事务数
 
遇到的问题:
1.在高并发下大量报错
常见的原因有短连接导致的端口被完全占用以及线程池最大线程数配置较小及超时时间较短导致。
 
2.集群类系统,各服务节点负载不均衡
原因解析:出现这类问题的原因一般是SLB服务设置了会话保持,会导致请求只分发到其中一个节点。
调优方案:如果确认是如上原因,可通过修改SLB服务(F5/HA/Nginx)的会话保持参数为None,然后再次压测验证;
posted @   丝瓜呆呆  阅读(147)  评论(0编辑  收藏  举报
努力加载评论中...
编辑推荐:
· 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数据库查询与断言
点击右上角即可分享
微信分享提示