JAVA学习-潜力之行 始于足下

JVM常用性能指标

系统性能的诊断要做些什么指标呢?我们先来考虑,进行要做诊断,那么程序或 JVM 可能出现了问题,而我们排查程序运行中出现的问题,比如排查程序 BUG 的时候,要优先保证正确性,这时候就不仅仅是 JVM 本身的问题,例如死锁等等,程序跑在 JVM 里,现象出现在 JVM 上,很多时候还要深入分析业务代码和逻辑确定 Java 程序哪里有问题。

  1. 分析系统性能问题: 比如是不是达到了我们预期性能指标,判断资源层面有没有问题,JVM 层面有没有问题,系统的关键处理流程有没有问题,业务流程是否需要优化;
  2. 通过工具收集系统的状态,日志,包括打点做内部的指标收集,监控并得出关键性能指标数据,也包括进行压测,得到一些相关的压测数据和性能内部分析数据;
  3. 根据分析结果和性能指标,进行资源配置调整,并持续进行监控和分析,以优化性能,直到满足系统要求,达到系统的最佳性能状态。

计算机系统中,性能相关的资源主要分为这几类:

  • CPU: CPU 是系统最关键的计算资源,在单位时间内有限,也是比较容易由于业务逻辑处理不合理而出现瓶颈的地方,浪费了 CPU 资源和过渡消耗 CPU 资源都不是理想状态,我们需要监控相关指标;
  • 内存:内存则对应程序运行时直接可使用的数据快速暂存空间,也是有限的,使用过程随着时间的不断的申请内存又释放内存,好在 JVM 的 GC 帮我们处理了这些事情,但是如果 GC 配置的不合理,一样会在一定的时间后,产生包括 OOM 宕机之类的各种问题,所以内存指标也需要关注;
  • IO(存储+网络):CPU 在内存中把业务逻辑计算以后,为了长期保存,就必须通过磁盘存储介质持久化,如果多机环境、分布式部署、对外提供网络服务能力,那么很多功能还需要直接使用网络,这两块的 IO 都会比 CPU 和内存速度更慢,所以也是我们关注的重点。

一般来讲 系统优化可以先收集问题,按照问题的重要性进行排序,依旧二八法则,排在前20%的问题能影响至少80%的性能问题,所以解决这部分问题即可;

衡量系统性能的维度

  • 延迟: 一般衡量的是响应时间(Response Time),比如平均响应时间。但是在业务中,通常使用95分位时间进行衡量
  • 吞吐量:一般对于交易的系统我们使用每秒处理的事物数量(TPS)来衡量,对于查询检索类的系统我们使用每秒处理的请求数(QPS)
  • 系统容量:也叫做设计容量,可以理解为硬件配置 成本约束

性能指标还可以分为两类:

  • 业务需求指标:如吞吐量(QPS TPS)、响应时间(RT) 并发数 业务冲功率等
  • 资源约束指标:如CPU 内存 I/O 等资源的消耗情况

03 常用性能指标:没有量化,就没有改进

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值