温馨提示×

CentOS系统如何进行性能测试

小樊
43
2025-12-11 17:41:32
栏目: 智能运维

CentOS 性能测试实操指南

一 测试准备与监控基线

  • 安装常用工具与监控组件:建议先启用 EPEL 源,安装 sysstat(提供 sar/iostat)、fiosysbenchstressiperf3 等;网络测试准备另一台主机作为对端。
    • 示例:sudo yum install -y epel-release && sudo yum install -y sysstat fio sysbench stress iperf3
  • 建立监控基线:在测试前后采集 CPU、内存、磁盘、网络 的关键指标,便于对比。
    • CPU/负载:uptimetopmpstat -P ALL 1 3(关注 %idle、%iowait、%sys
    • 内存:free -h
    • 磁盘:iostat -dmx 1 3(关注 %util、await、avgqu-sz)、df -h
    • 网络:sar -n DEV 1 10(关注 rxkB/s、txkB/s
    • 历史与回放:sar -o sar.out 1 60 记录,sar -f sar.out 回放分析。

二 CPU 与内存测试

  • CPU 计算能力(sysbench)
    • 示例:sysbench cpu --cpu-max-prime=100000 --threads=$(nproc) run(按 CPU 核心数并发)
  • CPU 压力(stress)
    • 示例:stress --cpu $(nproc) --timeout 600(持续 10 分钟 满载)
  • 内存带宽与访问模式(sysbench)
    • 示例:sysbench memory --memory-block-size=1K --memory-total-size=4G --memory-access-mode=rnd --threads=$(nproc) run
  • 内存压力(stress)
    • 示例:stress --vm 2 --vm-bytes 2G --timeout 600(2 个 worker,各分配 2GB 内存)
  • 观测要点:mpstat%idle 是否接近 0%%iowait 是否异常升高;pidstat -u 3 5 定位高占用进程。

三 磁盘 I O 测试

  • 灵活 I/O 场景(fio,推荐)
    • 随机读 IOPS(4KiB,队列深度 1,直接 I/O):
      fio --ioengine=libaio --bs=4k --direct=1 --thread --time-based --rw=randread --filename=/tmp/fio-randread --runtime=60 --numjobs=1 --iodepth=1 --group_reporting --name=randread --size=1G
    • 顺序写带宽(4KiB,直接 I/O):
      fio --ioengine=libaio --bs=4k --direct=1 --thread --time-based --rw=write --filename=/tmp/fio-seqwrite --runtime=60 --numjobs=1 --iodepth=1 --group_reporting --name=seqwrite --size=1G
  • 快速粗略测试(dd,易受缓存影响,仅作参考)
    • 示例:dd if=/dev/zero of=/tmp/testfile bs=64k count=4k oflag=dsync
  • 传统工具(hdparm)
    • 缓存与设备吞吐:hdparm -Tt /dev/sda
  • 观测要点:iostat -dmx 1%util 是否接近 100%await 是否过高;结合 sar -d 做历史对比。

四 网络性能测试

  • TCP/UDP 带宽与抖动(iperf3)
    • 服务端:iperf3 -s -p 5201
    • 客户端:iperf3 -c 192.0.2.10 -t 30 -P 4(对端 IP 192.0.2.10,测试 30 秒4 并发流)
  • 观测要点:sar -n DEV 1 观察 rxkB/s、txkB/s 是否达到链路上限;关注丢包/重传(服务端/客户端摘要)。

五 结果分析与报告建议

  • 保持一致性:测试前清理缓存(如 echo 3 > /proc/sys/vm/drop_caches,仅在非生产环境)、挂载选项与生产一致、避免后台任务干扰;同一套参数至少跑 3 次 取中位数。
  • 关注指标映射:
    • CPU:%idle 低、mpstat%sys 高可能意味着系统调用/中断密集;
    • 内存:free -h 看是否触发 Swap
    • 磁盘:iostat%util 持续接近 100% 常为瓶颈,await 高说明队列与设备服务时间长;
    • 网络:sar -n DEV 吞吐达上限且波动小为佳,关注重传与抖动。
  • 报告模板:记录测试目标、工具与参数、环境(CPU/内存/磁盘/网络)、监控图表(如 sar/iostat 输出)、关键指标与结论、瓶颈定位与优化建议。

0