• Java性能测试从入门到放弃-概述篇


    Java性能测试从入门到放弃-概念篇

    辅助工具

    • Jmeter: Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试
    jmeter
    • 简书有个不错的作者写了一个Jmeter的系列:倔强的潇洒小姐

    • 火焰图:火焰图是用来展示CPU调用堆栈的SVG图片。

    1. y 轴表示调用栈,每一层都是一个函数。调用栈越深,火焰就 越高,顶部就是正在执行的函数,下方都是它的父函数。

    2. x 轴表示抽样数,如果一个函数在 x 轴占据的宽度越宽,就表示它被抽到的次数多,即执行的时间长。注意,x 轴不代表时间,而是所有的调用栈合并后,按字母顺序排列的。

    3. 火焰图就是看顶层的哪个函数占据的宽度最大。只要有"平顶"(plateaus),就表示该函数可能存在性能问题。

    4. 颜色没有特殊含义,因为火焰图表示的是 CPU 的繁忙程度,所以一般选择暖色调。

    火焰图
    • 链路追踪:链路跟踪其实就是将一次分布式请求还原成调用链路。显式的在后端查看一次分布式请求的调用情况,比如各个节点上的耗时、请求具体打到了哪台机器上、每个服务节点的请求状态、每次数据库操作等等。在进行性能的时候,可以通过链路跟踪平台记录的接口耗时情况分析性能瓶颈,进行针对性的优化。目前主要使用的是 opentracing 协议,主流的实现有 zipkin 和 jaeger。

    概念

    • 性能测试:通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
    • 压力测试:通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试
    • 负载测试:不限制软件的运行资源,测试软件的数据吞吐量上限,以发现设计上的错误或验证系统的负载能力。评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。
    • 稳定性测试:被测试系统在特定硬件、软件、网络环境条件下,给系统加载一定业务压力,使系统运行一段较长时间,以此检测系统是否稳定,一般稳定性测试

    指标

    • CPU: CPU 利用率要低于业界警戒值范围之内,即小于或者等于75%。
    • 内存:内存使用率并不能实际反映系统运行情况。主要要关注内存交换区占比,一般认为70%为临界值,在压力,负载测试下要保证内存可用
    • 磁盘:磁盘指标主要有每秒读写多少兆,磁盘繁忙率,磁盘队列数,平均服务时间,平均等待时间,空间利用率。其中磁盘繁忙率是直接反映磁盘是否有瓶颈的的重要依据,一般情况下,磁盘繁忙率要低于70%
    • 响应时间:不同业务的可接受响应时间不同,互联网企业普通接口应低于500ms。
    • 稳定性:一般在n*12的时间范围内,系统应保持稳定
    • CPU,内存指标可通过HTOP,jconsole指令查看

    参考文献

  • 相关阅读:
    2009年职工象棋比赛 第七轮 五七炮对屏风马
    2009年职工象棋比赛 第一轮 顺炮直车对横车
    给文件起个好名字是多么的重要!
    职工象棋比赛 第十一轮 仙人指路
    2009年职工象棋比赛 第八轮 顺炮横车对直车
    2009年职工象棋比赛 第三轮 中炮对反宫马
    2009年职工象棋比赛 第二轮 中炮对单提马
    终于记住了这两个词:devour、devout
    2009年职工象棋比赛 第四轮 顺炮直车对横车
    2009年职工象棋比赛 第五轮 中炮对右三步虎
  • 原文地址:https://www.cnblogs.com/suimeng/p/11425338.html
Copyright © 2020-2023  润新知