温馨提示×

ubuntu环境如何进行性能测试

小樊
31
2025-12-31 23:10:54
栏目: 智能运维

Ubuntu 性能测试实操指南

一 测试前准备与通用原则

  • 保持环境一致:尽量在同一台机器、同一电源策略、同一驱动版本下对比;关闭不必要的前台与后台程序(如浏览器、下载器、自动更新)。
  • 插电与性能模式:笔记本接入电源,切换为性能模式(如 power-profiles-daemon 或 BIOS 高性能)。
  • 监控与记录:测试时同步观察CPU温度、频率、I/O 等待、占用,便于解释分数波动。
  • 多次取平均:每个项目建议重复3次取中位数,避免偶发干扰。
  • 数据保护:对磁盘做基准测试时优先使用临时文件或专用测试分区,避免对业务数据造成影响。

二 快速上手 CPU 与内存测试

  • CPU 基础与压力
    • Sysbench(多线程计算素数):sudo apt-get install sysbench -y;执行:sysbench cpu --cpu-max-prime=20000 run(数值越大越耗时,适合对比不同机器/内核)。
    • SuperPI(单线程浮点):可编译运行,示例:gcc -O -funroll-loops -fomit-frame-pointer pi_fftcs.c fftsg_h.c -lm -o pi_css5;计算67108864位耗时:./pi_css5 $((1<<26))(时间越短单线程越强)。
    • 压力与实时性:sudo apt-get install stress-ng rt-tests -y;长时实时性:sudo cyclictest -t $(nproc) -p 80 -i 1000 -D 2h(线程数=CPU线程数,持续2小时)。
  • 内存带宽与压力
    • mbw(内存拷贝带宽):sudo apt-get install mbw -y;示例:mbw -q -n 10 245760(测试约240GB,输出 MEMCPY/DUMB/MCBLOCK 的带宽,关注 AVG)。
    • memtester(内存错误检测):示例:memtester 240G 10(先 free -h 确认可用内存,避免 OOM;用于稳定性验证,非纯带宽基准)。

三 磁盘 I O 与文件系统测试

  • 快速体检
    • hdparm(缓存/设备读取):sudo hdparm -Tt /dev/sdX(区分缓存读-T设备读-t)。
    • dd(顺序吞吐,简单直观):写:time dd if=/dev/zero of=testfile bs=1M count=1024 oflag=direct;读:time dd if=testfile of=/dev/null bs=1M count=1024 iflag=direct(oflag/iflag=direct 尽量绕过页缓存)。
    • ioping(延迟与抖动):sudo ioping -c 100 -b 4K /path-b 1M 观察不同块大小的延迟分布。
  • 专业基准 FIO(推荐)
    • 顺序读/写(吞吐):
      • 读:fio --name=seqread --ioengine=sync --rw=read --bs=1M --size=1G --numjobs=1 --direct=1 --group_reporting
      • 写:fio --name=seqwrite --ioengine=sync --rw=write --bs=1M --size=1G --numjobs=1 --direct=1 --group_reporting
    • 4K 随机读/写(IOPS 与延迟):
      • 读:fio --name=randread --ioengine=libaio --rw=randread --bs=4k --size=1G --numjobs=1 --direct=1 --iodepth=64 --runtime=60 --group_reporting
      • 写:fio --name=randwrite --ioengine=libaio --rw=randwrite --bs=4k --size=1G --numjobs=1 --direct=1 --iodepth=64 --runtime=60 --group_reporting
    • 重要参数说明:direct=1(绕过缓存)、ioengine=libaio(异步 I/O)、iodepth(队列深度,SSD/高端 NVMe 可适当增大)、bs(块大小)、size(数据量,建议≥内存2倍以减少缓存影响)、runtime(持续时间)。
    • 注意:对整盘(如 /dev/sdX)做写测试会破坏分区与数据,务必提前备份或使用临时文件/测试分区。

四 图形 GPU 与综合测试

  • OpenGL 基础与 3D 基准
    • glxgears(基础帧率):sudo apt-get install mesa-utils -y;运行 glxgears(仅作入门参考,不代表游戏/专业负载)。
    • Unigine 系列(重度 GPU 压力/画质):如 Valley/Heaven/Superposition,在 Ubuntu 下可运行并记录FPS/稳定性(更贴近真实游戏/渲染)。
  • 跨平台与系统化
    • Geekbench(CPU/GPU 综合):下载 Linux 版运行,便于跨平台对比。
    • Phoronix Test Suite(系统化套件):sudo apt-get install phoronix-test-suite -y;可一键执行处理器/磁盘等项目并在线对比,适合做回归与横向评测。

五 网络测试与结果记录

  • 带宽与质量
    • iperf3(TCP/UDP 吞吐、抖动、丢包):在服务端启动 iperf3 -s,客户端测试:iperf3 -c <server_ip> -t 30 -P 4(并发4流,持续30秒);如需 UDP:iperf3 -c <server_ip> -u -b 1G -t 30
    • netperf(面向请求/应答与批量传输模型):适合对比不同协议与应用场景下的网络性能。
  • 结果记录建议
    • 统一记录:测试项、命令参数设备型号/驱动版本系统版本温度/频率三次中位数截图;便于复盘与对比。

0