压力测试(内存、磁盘、网络、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分钟。适合用于长期稳定性测试。

相关推荐
2501_915918412 天前
抓包鹰 抓包会话重放与压力测试,接口回归验证与性能压测的方法
网络协议·计算机网络·网络安全·ios·adb·https·压力测试
汽车仪器仪表相关领域2 天前
XRC-3363 系列高压混合动力汽车救援充电器
大数据·人工智能·功能测试·深度学习·汽车·压力测试
汽车仪器仪表相关领域5 天前
CPX-900 电池和电气系统分析仪|高端汽修数字化智能诊断设备
功能测试·安全·压力测试·可用性测试
Zzz不能停6 天前
个人博客系统系统---测试报告【笔耕云】
python·功能测试·自动化·压力测试
yc_xym6 天前
五子棋在线对战系统测试报告
压力测试·测试
Saniffer_SH16 天前
NAND技术(二):从 Channel、Die/LUN、P/E Cycle 到 LDPC,一次讲透 NAND 里那些最容易误解的概念
人工智能·驱动开发·嵌入式硬件·测试工具·fpga开发·计算机外设·压力测试
会周易的程序员16 天前
CPU 压力测试模块 · 架构设计与实现
linux·c++·架构·nodejs·压力测试·nodejs c++原生插件
晚风吹长发16 天前
探索软件测试——用例篇
大数据·linux·服务器·压力测试·测试·测试方法
happyness4420 天前
AI编程如何进行压力测试
压力测试·ai编程