性能测试系列(一)

性能测试之性能分析步骤

性能测试系列(一)

1.确定应用类型

应用大致分为cpu 密集型和IO 密集型。

  • **Cpu 密集型:**就是一个批量处理 CPU 请求、逻辑判断以及数学计算的过程,反应出来的现象是高负荷的 CPU 占用,load 值过高。典型的是web server。
  • IO 密集型:一般都是高负荷的内存使用以及存储系统,此类应用通常使用 CPU资源都是为了产生 IO 请求以及进入到内核调度的sleep 状态。反映出来的现象是CPU 在等 I/O (硬盘/内存) 的读/写,此时 CPU Loading 不高。典型的是:mysql、oracle 等

2.掌握压测环境的资源参数

包括需要了解用到的中间件相关版本、参数配置情况及 包括需要了解用到的中间件相关版本、参数配置情况及 服务器 cpucpucpu、 网卡、 网卡内存等硬件 性能指标

3.确定基线统计:

  • 明确单 服务情况下的大概性能,如明确单 服务情况下的大概性能,如helloword请求在虚拟机下 tps 至少 1w ,单redis 在物理机 在物理机 下的单线程跑满, set set的 tps 应该至少在 8W,mysql小字段类型的 insert insert 的 tps 至少在 2w 。
  • 在有基础性能的指标后,再结合压测的果和情况,以明确瓶颈点大概出现在哪个节点

4.确定性能得瓶颈点

  • 通过对 基线的统计 和资源监控情况的分析 ,确定 cpu、 网卡、IO 等是否出现资源瓶颈

5.确定是否优化

如果问题出现在 涉及操作系统、 中间件、 JDK JDK、驱动 、驱动 等核心工作机制 ,这 些是不能进行代码修改的,只考虑 进行组件的升级。

如果涉及的是应用程序代码层 ,则可以考虑进行下优化 :

    1. 使用对象池减少重复的创建 ;
    1. 调整对后端的连接
    1. 增加本地缓存
    1. 如果不涉及事务的情况下,考虑使用 NosqlNosql Nosql进行存储 进行存储
    1. 一次请求合并多操作。
    1. 由串行修改为并操作
    1. 同步 修改为异testfan