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

相关推荐
Saniffer_SH9 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
糖果店的幽灵11 天前
软件测试接口测试从入门到精通:JMeter接口测试
软件测试·jmeter·接口测试·压力测试·性能测试
wenying_4432374412 天前
软件测试—JMeter—跨线程组关联
jmeter·压力测试
HBYKKJ13 天前
格雷希尔G70-370L050N定制款密封测试接头,专门针对法兰式凸缘管口而设计,解决SF6压力表的气密性测试难题
功能测试·压力测试·快速接头·气密性测试·密封测试接头
不剪发的Tony老师14 天前
SQLQueryStress:一款SQL Server查询压力测试工具
数据库·sqlserver·压力测试
AI thought15 天前
C语言企业项目实战(四)
c语言·单元测试·压力测试·企业项目·工程体系
测试199815 天前
Jmeter性能压测:TPS与QPS
自动化测试·软件测试·python·jmeter·测试用例·压力测试·性能测试
wenying_4432374416 天前
软件测试—Jmeter后置处理器—正则表达式提取器
jmeter·压力测试
暗冰ཏོ16 天前
软件测试完整学习指南:从入门到自动化、性能与安全测试实战
软件测试·功能测试·单元测试·集成测试·压力测试·测试·安全性测试
汽车仪器仪表相关领域17 天前
南华 NHASM-1 型稳态工况法汽车排气检测系统|国标合规汽油车工况检测专用设备
功能测试·安全·单元测试·汽车·压力测试·可用性测试