博客
关于我
性能测试必须知道的事儿
阅读量:784 次
发布时间:2019-03-24

本文共 1648 字,大约阅读时间需要 5 分钟。

说明

这篇文章系统地介绍了性能测试的核心概念、类型、流程以及常用的工具和方法,旨在帮助技术人员快速了解性能测试的基本框架和实际应用。

什么是性能测试?

性能测试是通过模拟各种正常、峰值和异常负载条件,测试系统的性能表现。其主要目标是分析系统在不同负载下的性能瓶颈和稳定性,包括负载测试和压力测试的结合应用。

性能测试的核心概念

  • 事务:在性能测试中,事务通常定义为完成特定业务操作所需的一系列请求。例如,用户查询数据或保存信息的过程可被视为一个独立的事务。

  • 响应时间:这是系统对客户操作做出正确反馈的总时间,包括连接建立时间、处理时间、数据库响应时间和数据传输时间。

  • TPS(每秒事务数):衡量系统在单位时间内处理的事务数量,反映了系统的并发处理能力。

  • 吞吐量:是系统处理并发访问的能力,通常与响应时间和TPS密切相关。吞吐量表示单位时间内服务器向客户端返回数据的总量。

  • 点击率:等同于TPS,表示单位时间内服务器处理的请求数量。

  • 性能测试类型

  • 压力测试:通过持续施加压力,测试系统能处理的最大并发量和负载。

  • 极限测试:验证系统在异常情况下的鲁棒性,如资源耗尽、输入错误等。

  • 并发测试:观察多个用户同时访问系统时是否存在性能问题,如死锁或资源竞争。

  • 稳定性测试:长时间施加负载以检测系统的稳定性,确保其能持续运行如7×24小时。

  • 性能测试流程

  • 确定需求:明确测试目标,包括所需的TPS和响应时间。

  • 环境准备:配置测试环境,包括硬件、数据量、数据库和应用服务器参数。

  • 选择工具:选用合适的压测工具,如LoadRunner或JMeter。

  • 执行测试:按照预定方案运行测试,记录基准数据。

  • 分析结果:评估系统性能,识别瓶颈并提出优化建议。

  • 性能测试工具

  • LoadRunner:商用高端压测工具,基于 recordedacente 技术,适合复杂项目。

  • JMeter:开源压测工具,广泛应用于Web项目测试,支持多种协议和后端语言。

  • NMon:开源监控工具,可监控服务器资源使用情况,适合初、中等水平的性能分析。

  • 安装和使用NMon

  • 安装

    • 下载:wget http://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz
    • 解压:tar zxvf nmon_linux_14i.tar.gz
    • 权限设置:chmod 777 nmon_x86_64_sles11
  • 运行

    • 命令:/usr/local/nmon/nmon_x86_64_sles11 -s3 -c3060 -f -t -m /root/nmonlog
    • 参数解释:
      • -s10:每10秒采集一次数据。
      • -c60:采集60次(即10分钟)。
      • -f:文件名包含创建时间。
      • -m:设置存储目录。
  • 解析

    • 打开 Excel文件:nmon analyser v34a.xls
    • 查看CPU、内存、网络和磁盘指标。
  • 性能测试报告编写

  • 核心内容

    • 测试结果详细分析。
    • 项目背景及测试目标明确。
    • 测试环境描述,包括硬件配置、数据量、数据库参数。
    • 测试仪结果展示,如响应时间、TPS、资源利用率等。
  • 环境部署架构图:清晰地展示项目环境。

  • 问题分析

    • 数据库处理时间过长。
    • JVM垃圾回收影响性能。
    • certain SQL 查询效率低下。
  • 性能测试优化

  • 操作系统调优:优化Linux内核配置为更高负载下的性能表现。

  • 中间件调优:如Web服务器配置优化,调整性能参数。

  • JVM调优:优化堆尺寸、GC设置以及代码优化。

  • 数据库调优:通过优化索引、减少Full Table Scan等方式提升性能。

  • 总结

    性能测试不是单纯依赖工具,而是需要系统性思考和多方面的技术能力。

    键点:

  • 明确测试目标,基于已定硬件和数据量开展测试。

  • 在发现瓶颈时,具备调优经验,涵盖Linux、中间件、JVM和数据库调优。

  • 沟通机制至关重要,需与产品、运维和研发等多方保持良好协作。

  • 深入分析报告,寻找事发根源,提出切实可行的优化建议。

  • 转载地址:http://szbkk.baihongyu.com/

    你可能感兴趣的文章
    Nacos服务注册与发现的2种实现方法!
    查看>>
    nacos服务注册和发现原理简单实现案例
    查看>>
    Nacos服务注册总流程(源码分析)
    查看>>
    nacos服务注册流程
    查看>>
    Nacos服务部署安装
    查看>>
    nacos本地可以,上服务器报错
    查看>>
    Nacos注册Dubbo(2.7.x)以及namespace配置
    查看>>
    Nacos注册中心有几种调用方式?
    查看>>
    nacos注册失败,Feign调用失败,feign无法注入成我们的bean对象
    查看>>
    nacos源码 nacos注册中心1.4.x 源码 nacos源码如何下载 nacos 客户端源码下载地址 nacos discovery下载地址(一)
    查看>>
    nacos源码 nacos注册中心1.4.x 源码 spring cloud alibaba 的discovery做了什么 nacos客户端是如何启动的(二)
    查看>>
    nacos源码 nacos注册中心1.4.x 源码 如何注册服务 发送请求,nacos clinet客户端心跳 nacos 注册中心客户端如何发送的心跳 (三)
    查看>>
    Nacos源码分析:心跳机制、健康检查、服务发现、AP集群
    查看>>
    nacos看这一篇文章就够了
    查看>>
    Nacos简介、下载与配置持久化到Mysql
    查看>>
    Nacos简介和控制台服务安装
    查看>>
    Nacos管理界面详细介绍
    查看>>
    Nacos编译报错NacosException: endpoint is blank
    查看>>
    nacos自动刷新配置
    查看>>
    nacos运行报错问题之一
    查看>>