压力测试(内存、磁盘、网络、cpu)

压力测试


为了满足更详细的需求,以下是针对内存、磁盘和网络压力测试工具的更深入介绍和多种案例,涵盖了工具的安装、配置和多样化的使用场景。


1. 内存压力测试工具

stress

  • 描述stress 是一个轻量级的系统压力测试工具,可以对CPU、内存、I/O进行压力测试。适合用于简单的压力测试和验证系统稳定性。

  • 安装

    bash 复制代码
    sudo apt-get install stress
  • 使用场景

    • 基本内存测试

      bash 复制代码
      stress --vm 2 --vm-bytes 512M --timeout 60s

      该命令启动2个内存负载线程,每个线程分配512MB的内存,持续时间为60秒。适用于检测内存的短时间压力。

    • 高负载内存测试

      bash 复制代码
      stress --vm 8 --vm-bytes 1G --vm-hang 0 --timeout 120s

      该命令启动8个线程,每个线程分配1GB内存,持续时间为120秒,并设置内存不被回收。这种配置更适合在高负载下测试内存的稳定性。

    • 并行测试CPU和内存

      bash 复制代码
      stress --cpu 4 --vm 4 --vm-bytes 256M --timeout 90s

      该命令同时对CPU(4个线程)和内存(4个线程,每个256MB)进行压力测试,持续90秒,适合综合性测试系统在高负载下的表现。

memtester

  • 描述memtester 是一种专门用于检测内存错误的工具,适合用于诊断硬件问题。它通过分配和读写内存块,来检测潜在的内存问题。

  • 安装

    bash 复制代码
    sudo apt-get install memtester
  • 使用场景

    • 基本内存错误检测

      bash 复制代码
      sudo memtester 2G 2

      该命令分配2GB内存并执行两次测试,用于检测内存错误。

    • 持续性内存测试

      bash 复制代码
      sudo memtester 4G 0

      该命令分配4GB内存并进行无限次测试,适合用于长时间运行的压力测试,直到用户手动终止。


2. 磁盘压力测试工具

fio (Flexible I/O Tester)

  • 描述fio 是一个功能强大的I/O测试工具,支持各种类型的读写操作。适合用于测试磁盘的读写性能和可靠性。

  • 安装

    bash 复制代码
    sudo apt-get install fio
  • 使用场景

    • 顺序写入测试

      bash 复制代码
      fio --name=write_test --ioengine=libaio --rw=write --bs=1M --numjobs=1 --size=1G --runtime=60 --group_reporting

      该命令使用异步I/O引擎执行顺序写操作,块大小为1MB,总共写入1GB,持续时间为60秒。适用于测试磁盘的顺序写入性能。

    • 随机读写测试

      bash 复制代码
      fio --name=randrw_test --ioengine=libaio --rw=randrw --bs=4k --numjobs=4 --size=2G --runtime=120 --rwmixread=70 --group_reporting

      该命令执行随机读写操作,块大小为4KB,共4个线程,总共读写2GB数据,持续120秒,其中70%为读操作。适合用于模拟数据库负载或其他随机I/O密集型应用的环境。

    • 多线程顺序读测试

      bash 复制代码
      fio --name=read_test --ioengine=libaio --rw=read --bs=512k --numjobs=8 --size=4G --runtime=60 --group_reporting

      该命令使用8个线程并发执行顺序读操作,块大小为512KB,总共读取4GB数据,持续60秒。适合测试磁盘的多线程读取性能。

dd (Data Duplicator)

  • 描述dd 是一个简单但有效的磁盘I/O测试工具,可以用于测试磁盘的读写速度。它通过从一个源复制数据到目标,测量I/O性能。

  • 使用场景

    • 写入速度测试

      bash 复制代码
      dd if=/dev/zero of=/tmp/testfile bs=1G count=1 oflag=direct

      该命令生成一个1GB的测试文件,并测量写入速度。适合用于简单的写入性能评估。

    • 读取速度测试

      bash 复制代码
      dd if=/tmp/testfile of=/dev/null bs=1G count=1 iflag=direct

      该命令从测试文件中读取1GB数据,并测量读取速度。适合用于简单的读取性能评估。

    • 混合读写测试

      bash 复制代码
      dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 conv=fdatasync

      该命令通过同步写入操作执行混合读写测试,确保数据直接写入磁盘。适用于更为真实的读写场景测试。


3. 网络压力测试工具

iperf3

  • 描述iperf3 是一个网络性能测试工具,支持测量网络带宽、延迟、抖动等指标,适合测试不同协议下的网络性能。

  • 安装

    bash 复制代码
    sudo apt-get install iperf3
  • 使用场景

    • TCP带宽测试

      bash 复制代码
      # 服务器端:
      iperf3 -s
      # 客户端:
      iperf3 -c <server_ip> -t 60

      该命令在服务器端启动iperf3监听,在客户端连接服务器并持续60秒的TCP带宽测试,适合用于评估网络带宽。

    • UDP带宽和延迟测试

      bash 复制代码
      iperf3 -c <server_ip> -u -b 10M -t 60

      该命令使用UDP协议测试带宽,目标带宽为10Mbps,持续时间为60秒。适合测试低延迟和丢包率环境中的网络性能。

    • 双向测试

      bash 复制代码
      iperf3 -c <server_ip> -t 60 --bidir

      该命令进行双向TCP带宽测试,持续60秒。适合用于对称网络的性能测试。

speedtest-cli

  • 描述speedtest-cli 是一个使用Speedtest.net的命令行工具,用于测量互联网连接的下载和上传速度。

  • 安装

    bash 复制代码
    sudo apt-get install speedtest-cli
  • 使用场景

    • 基本网速测试

      bash 复制代码
      speedtest-cli

      该命令通过默认服务器测量互联网连接的下载和上传速度,适合用于简单的网络性能测试。

    • 指定服务器测试

      bash 复制代码
      speedtest-cli --server 12345  

[root@localhost ~]# speedtest-cli --list

Retrieving speedtest.net configuration...

  1. China Telecom JiangSu 5G (Nanjing, China) [470.13 km]

  2. 浙江电信 (HangZhou, China) [643.82 km]

  3. 浙江电信 (NingBo, China) [697.07 km]

  4. Chief Telecom (Taoyuan, Taiwan) [1224.08 km]

  5. Chunghwa Mobile (Taipei, Taiwan) [1231.14 km]

  6. Homeplus (New Taipei, Taiwan) [1232.89 km]

  7. Yuan-Jhen Info (New Taipei, Taiwan) [1232.89 km]

  8. Taiwan Mobile (Banqiao District, Taiwan) [1232.98 km]

  9. SEEDNET (Taoyuan District, Taiwan) [1233.76 km]

  10. Homeplus (Shulin District, Taiwan) [1235.96 km]

```
12345代表可用测试服务器id。该命令使用指定服务器进行测试,可以选择距离更近的服务器或特定网络运营商的服务器。
  • 无图形输出测试

    bash 复制代码
    speedtest-cli --simple

    该命令提供简单的文本输出,显示ping值、下载速度和上传速度,适合在脚本中使用或快速查看结果。


4. CPU压力测试工具

stress-ng

  • 描述stress-ng 是一个功能强大的系统压力测试工具,比stress功能更丰富,支持各种子系统的压力测试,包括CPU、内存、I/O、网络等。

  • 安装

    bash 复制代码
    sudo apt-get install stress-ng
  • 使用场景

    • CPU压力测试

      bash 复制代码
      stress-ng --cpu 8 --timeout 60s

      该命令启动8个CPU负载线程,持续时间为60秒。适用于评估CPU在高负载下的表现。

    • 多子系统压力测试

      bash 复制代码
      stress-ng --cpu 4 --io 2 --vm 2 --vm-bytes 1G --timeout 120s

      该命令同时对CPU、I/O和内存施加压力,适合用于综合性系统性能评估。

    • 持久性测试

      bash 复制代码
      stress-ng --cpu 4 --vm 2 --vm-by

      该命令结合了CPU、内存和进程创建压力,持续时间为5分钟。适合用于长期稳定性测试。

相关推荐
测试19982 小时前
2024软件测试面试热点问题
自动化测试·软件测试·python·测试工具·面试·职场和发展·压力测试
钱钱钱端1 天前
【压力测试】如何确定系统最大并发用户数?
自动化测试·软件测试·python·职场和发展·压力测试·postman
测试19981 天前
外包干了2年,快要废了。。。
自动化测试·软件测试·python·面试·职场和发展·单元测试·压力测试
程序员小雷2 天前
软件测试基础:单元测试与集成测试
python·功能测试·selenium·测试工具·单元测试·集成测试·压力测试
杰仔正在努力3 天前
Jmeter5.X性能测试
jmeter·压力测试
&1=13 天前
Charles简单压力测试
压力测试·charles
金同学_jin3 天前
【测试工具】Fastbot 客户端稳定性测试
测试工具·压力测试
IKun-bug4 天前
locust压测工具环境搭建(Linux、Mac)
python·压力测试·locust
wusong9996 天前
系统性能测试笔记-JMeter性能测试
测试工具·jmeter·压力测试
MJH8276 天前
技术分享 —— JMeter接口与性能测试实战!
自动化测试·网络协议·测试工具·jmeter·测试用例·压力测试·postman