本文大纲

《如何做性能测试》

编写测试报告

正文

测试报告应包含以下部分

  • 目的 :明确测试的目标与预期达成的效果。
  • 软硬件条件(易被忽略) :详尽描述测试环境,包括软件、硬件配置等信息,确保结果可复现。
  • 测试方法 :详细记录使用的测试工具和测试过程。
  • 结果数据 :提供具体的性能指标,如响应时间、吞吐量等。
  • 图表 :使用图形化方式展示数据,便于理解与分析。
  • 结论(易被忽略) :总结测试结果及其对系统的实际影响。

目的

明确此次性能测试的目标是为了评估系统在特定负载下的表现和稳定性,并发现可能存在的瓶颈。例如,我们的目标是确保系统在高峰时段能够稳定运行并提供良好的用户体验。

  • 测试目的示例:评估FastDfs 4.0.3分布式文件系统在特定环境下的IO性能。确保系统在高峰时段能够稳定运行并提供良好的用户体验。

软硬件条件

软硬件条件是保证测试可复现的基础。以下是两个示例:

软硬件条件示例一

  • 硬件条件说明
    • 服务端机器配置: CPU:4核心至强, 内存:8G.
    • 客户端机器配置: CPU:4核心AMD, 内存:8G.
    • 网络环境:1000Mb局域网.

软硬件条件示例二

  • 部署情况 :一台Tracker server,四台Storage server(每个存储节点有四块硬盘)。
  • 网络环境 :1000Mb局域网
  • 软件配置 :
    • 存储节点分为group1和group2,每组内文件互相备份且冗余两份。
  • 服务器硬件
    • Tracker server:
      • OS: Red Hat Enterprise Linux Server release 5.6 (Tikanga)
      • CPU: Dual-Core AMD Opteron(tm) Processor 2212, 四核心
      • 内存:32GB
      • 硬盘:一块146GB SAS硬盘(15K转速)
    • Storage server:
      • OS: Red Hat Enterprise Linux Server release 5.6 (Tikanga)
      • CPU: Intel(R) Xeon(TM) CPU 3.20GHz, 四核心
      • 内存:8G
      • 硬盘:五块146GB SAS硬盘(15K转速),其中一块用于安装操作系统。

测试方法

  • 测试方法示例
    • 服务端程序:使用RSF框架,包含线程池。
    • 客户端程序:模拟N个并发请求,每并发发送10000次Java对象序列化为M字节数据(采用Hessian机制)。
    • 连接数: 测试连接数设为1,测试结果表明连接数设置对性能无明显影响。
    • 序列化说明:整个传输过程涉及四次序列化与反序列化操作(客户端发送时序列化、服务端接收后反序列化再序列化返回、客户端接收到数据后再次进行反序列化),这对性能有较大影响。

结果数据

结果数据示例

  • 使用Excel记录详细的测试数据(例如,11行*9列=99次)。

image2024-12-29_14-26-47.png

图表生成示例

  • 图表说明 :使用Excel可以创建直观的图形化表示来展示结果数据。图表可用于显示在不同负载下的响应时间、吞吐量等关键性能指标的变化趋势。
    • 示例图一:并发数与平均响应时间的关系曲线。
    • 示例图二:并发数与QPS的关系曲线。

image2024-12-29_14-27-8.png

结论示例

在上述软件硬件条件下,在n并发访问时(选择一个代表性强的日均值),k业务场景下,系统能够达到x QPS(每秒查询量),平均响应时间为m毫秒。测试报告通过详细的数据和图表揭示了性能瓶颈并提出了改进建议。

  • 改进建议 :
    • 增加服务器的处理能力和存储资源以应对更高并发访问压力。
    • 对序列化机制进行优化,减少数据传输过程中的开销。