• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

无信不立

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

【压测】压测常见指标计算

参考:http://www.blogjava.net/cenwenchu/archive/2008/06/30/211712.html

参考:https://blog.csdn.net/u011183653/article/details/19489603

参考:https://www.cnblogs.com/rexcheny/p/9382396.html

分类 指标 判定标准 备注
机器 cpu 利用率(用户空间,系统空间)    
  cpu load    
  cpu io 等待    
java服务 yongGC次数和时长    
  fullGc次数和时长    
  年轻代空间使用变化    
  老年代空间使用变化    
  数据库是否有慢查询    
  其他存储或接口是否有超时或慢响应    
  服务的线程数    
  服务是Tp*响应指标    

 

 

一、CPU的利用率

 

  • cpu利用率=线程使用CPU计算的时间/统计的时间段
  • 进程占用CPU的时间=线程使用CPU计算的时间+I/O读写时间
  • cpu的利用率要控制在60%~70%
  • 能够反映的是cpu被使用的情况,当cpu长期处于被使用而没有的到足够的时间休息间歇,那么对于机器硬件来说是一种超负荷的运作,需要调整使用频度。

 

二、CPU的Load Average

  • 表示的是CPU的平均负载。我们知道进程有三种基本态:挂起、就绪、进行(此外还有创建和结束)。
  • 操作系统会给“一个CPU分配一个对应的task队列”。显然:“数值为1表示刚刚好可以处理,如果大于1则表示task队列里面已经有进程在堆积了。也就是负载过重,机器处理不过来了”。
  • 体现的是在某一统计时间段内,所有使用cpu的线程加上等待cpu分配的线程一个平均统计数。
  • Cpu的Average Load从另一个角度来展现对于cpu使用状态的描述,Average Load越高说明对于cpu资源的竞争越激烈,cpu资源比较短缺。对于资源的申请和维护其实也是需要很大的成本,所以在这种高Average Load的情况下cpu资源的长期“热竞争”也是对于硬件的一种损害。
  • 理想状况下,单核cpu的load控制法则:在0.7是非常平顺的。如果是1则需要在问题变糟糕前确认原因,并优化。如果是5则紧急高优。  8核cpu则在5.6可以接受。
  • LOAD AVERAGE:一段时间内处于可运行状态和不可中断状态的进程平均数量。(可运行分为正在运行进程和正在等待CPU的进程,状态为R;不可中断则是它正在做某些工作不能被中断比如等待磁盘IO等,其状态为D),它是从另外一个角度体现CPU的使用状态
  • 对于1分钟,5分钟,15分钟的cpu load更关注那些指标:着眼于5分钟和15分钟。

 

关于低Cpu利用率,高Load的情况的分析

  • 低利用率的情况下是否会有高Load Average的情况产生呢?理解占有时间和使用时间就可以知道,当分配时间片以后,是否使用完全取决于使用者,因此完全可能出现低利用率高Load Average的情况。由此来看,仅仅从CPU的使用率来判断CPU是否处于一种超负荷的工作状态还是不够的,必须结合Load Average来全局的看CPU的使用情况和申请情况。
  • 对于CPU利用率和CPU Load Average的结果来判断性能问题。首先低CPU利用率不表明CPU不是瓶颈,竞争CPU的队列长期保持较长也是CPU超负荷的一种表现。对于应用来说可能会去花时间在I/O,Socket等方面,那么可以考虑是否是这些硬件的速度影响了整体的效率。

 

 

posted on 2020-04-15 16:55  无信不立  阅读(896)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3