本指南涵盖
Linux 系统
CPU、内存、磁盘 I/O、网络及综合负载等核心维度的性能测试方法,整合了命令行
实用工具与系统化压测方案,适配 CentOS、
Ubuntu、Debian 等主流发行版。内容从测试基本原则、各组件专项测试,到综合性能评估、压力稳定性验证及瓶颈定位分析,形成
“监控 - 基准 - 压力 - 分析 - 优化” 的全链路实操体系。每个测试方法均配套详细安装命令与执行步骤,兼顾新手入门与资深运维的使用需求,可帮助快速定位系统瓶颈、评估硬件 / 系统承载能力,为
系统优化提供数据支撑。
- 基准测试(Benchmark):获取系统在标准条件下的基础性能指标,作为后续对比的参考基准。
- 压力测试(Stress Test):在极限负载下验证系统稳定性,精准定位性能瓶颈点(如 CPU 上限、内存阈值、I/O 瓶颈)。
- 负载测试(Load Test):模拟实际业务场景的负载强度,验证系统在真实业务压力下的承载能力与响应表现。
- 关闭不必要的服务与后台应用,减少无关进程对测试结果的干扰。
- 测试期间确保无其他高负载任务运行,保持环境一致性。
- 同一测试用例需多次执行,取平均值作为最终结果,避免单次测试的偶然性。
- 详细记录测试前后的系统状态,可通过
uptime、free -m、iostat、vmstat 等命令采集基础数据。
实时查看 CPU 运行状态,快速判断 CPU 负载情况:
top
htop
mpstat -P ALL 1
sar -u 1 5
支持多维度测试,CPU 测试通过计算质数验证运算能力:
yum install sysbench -y
apt install sysbench -y
sysbench cpu --threads=$(nproc) --time=60 run
模拟 CPU 满负载运行,验证系统在极限压力下的稳定性:
yum install stress -y
apt install stress -y
stress --cpu 4 --timeout 60s
跨平台性能测试工具,可获取单核 / 多核性能分数,便于横向对比:
- 从 Geekbench 官网 下载对应 Linux 版本的二进制包;
- 解压后直接运行可执行文件,自动完成测试并输出分数。
free -h
cat /proc/meminfo
vmstat 1 5
sar -r 1 5
通过 Copy、Scale、Add、Triad 四种操作测试内存带宽,需源码编译:
wget https://www.cs.virginia.edu/stream/FTP/Code/stream.c
gcc -O3 -march=native stream.c -o stream
./stream
测试结果重点关注 Copy、Scale、Add、Triad 四项操作的带宽值(单位:MB/s),数值越高说明内存带宽越好。
专注于内存硬件稳定性检测,可发现内存坏道、电压异常等隐患,非性能基准测试工具:
- 下载镜像文件制作启动 U 盘;
- 从 U 盘启动系统,自动执行内存检测(建议完整运行 1-2 轮)。
模拟内存读写操作,验证内存并发处理能力:
sysbench memory \
--memory-block-size=1K \
--memory-total-size=100G \
--threads=4 \
run
实时监控磁盘空间、I/O 负载,定位高 I/O 进程:
df -h
iostat -xz 1
iotop
dstat -d --disk-util
系统自带工具,快速测试磁盘顺序读写性能(注意:写测试会覆盖目标文件):
dd if=/dev/zero of=/tmp/test bs=1M count=1024 oflag=direct
dd if=/tmp/test of=/dev/null bs=1M iflag=direct
rm -f /tmp/test
关键指标:speed(读写速度,单位:MB/s),数值越高性能越好。
支持随机读写、顺序读写、并发 I/O 等多种场景,是磁盘性能测试的首选工具:
yum install fio -y
apt install fio -y
fio --name=randread \
--ioengine=libaio \
--filename=/tmp/fio_test \
--rw=randread \
--bs=4k \
--numjobs=4 \
--size=1G \
--runtime=60 \
--group_reporting
fio --name=randwrite --ioengine=libaio --filename=/tmp/fio_test --rw=randwrite --bs=4k --numjobs=4 --size=1G --runtime=60 --group_reporting
rm -f /tmp/fio_test
快速测试磁盘缓存读取和直接读取速度:
结果中 Timing cached reads 为缓存读取速度,Timing buffered disk reads 为直接读取速度。
查看网卡流量、连接状态,实时监控网络负载:
ip -s link
iftop
nload
sar -n DEV 1 5
ss -tulnp
跨平台网络带宽测试工具,需在服务端与客户端配合使用:
iperf3 -s
iperf3 -c server_ip -t 30
iperf3 -c server_ip -t 30 -u
关键指标:Bits/sec(带宽,单位:Gbit/s 或 Mbit/s),TCP 测试关注吞吐量,UDP 测试关注丢包率。
支持 TCP_STREAM、UDP_STREAM、TCP_RR 等多种测试模式,适合深度网络性能分析,需编译安装:
- 从 netperf 官网 下载源码;
- 编译安装:
./configure && make && make install;
- 示例(TCP 吞吐量测试):服务端
netserver,客户端 netperf -H server_ip -t TCP_STREAM。
测试网络延迟、丢包率,定位网络链路问题:
ping -c 100 target_ip
mtr --report target_ip
使用 Apache Bench(ab)工具模拟多并发 HTTP 请求,测试 Web 服务承载能力:
yum install httpd-tools -y
apt install apache2-utils -y
ab -n 10000 -c 100 http://your_web_site/
关键指标:Requests per second(QPS,每秒处理请求数)、Time per request(平均请求时间)。
通过多个测试用例(如文件拷贝、管道吞吐量、进程创建、数学运算)评估系统综合性能,输出单线程 / 多线程综合得分:
wget https://github.com/kdlucas/byte-unixbench/archive/master.zip
unzip master.zip && cd byte-unixbench-master/UnixBench
make
./Run
得分越高,说明系统综合性能越强,可用于不同
服务器之间的横向对比。
企业级性能评估的行业标准,涵盖 SPEC CPU(CPU 性能)、SPECjbb(
Java 服务器性能)、SPECweb(Web 服务器性能)等多个子项目,需商业授权,适合专业性能评估。
Python 编写的全维度监控工具,支持 CPU、内存、磁盘、网络等指标实时展示,界面简洁直观:
pip install glances
glances
适合长期性能监控与趋势分析,通过部署 exporter 收集系统数据,Grafana 生成可视化图表:
- 部署 Prometheus 服务(时序数据库,存储监控数据);
- 安装 node_exporter(收集 Linux 系统指标)、MySQLd_exporter(MySQL 指标)等;
- 配置 Grafana 连接 Prometheus,导入系统监控模板(如 Node Exporter Full),生成可视化图表。
stress 的增强版,支持同时对 CPU、磁盘 I/O、内存、网络等多个维度施加压力,验证系统在混合负载下的稳定性:
yum install stress-ng -y
apt install stress-ng -y
stress-ng --cpu 4 --io 2 --vm 1 --vm-bytes 2G --timeout 300s
针对 Linux 内核功能的稳定性与压力测试套件,包含数千个测试用例,适合内核开发者或
系统运维验证系统底层稳定性,需编译安装。
Linux 内核自带的性能分析工具,可跟踪内核与应用程序的热点函数,定位 CPU 瓶颈:
perf top
perf record -g ./your_app
perf report
跟踪进程的系统调用或库调用,分析程序 I/O 瓶颈、异常调用等问题:
strace -c -p pid
ltrace -c -p pid
精准分析单个进程的 CPU、内存、I/O 占用情况,定位异常进程:
- 明确测试目标:确定是测试单一组件(如 CPU、磁盘)还是系统综合性能,是基准测试还是压力测试。
- 准备干净环境:关闭无关服务与进程,清理缓存,确保测试环境一致。
- 采集基线数据:记录系统空闲状态下的性能指标,作为后续对比基准。
- 执行基准测试:运行对应测试工具,记录核心指标(如带宽、QPS、延迟)。
- 执行压力测试:逐步提升负载,观察系统性能变化,记录极限负载与稳定性表现(如是否出现宕机、卡顿)。
- 分析结果定位瓶颈:结合 top、iostat、perf 等工具,判断性能瓶颈所在(如 CPU 不足、内存泄漏、I/O 缓慢)。
- 优化并复测:根据瓶颈调整系统参数(如内核参数、应用配置)、升级硬件,重新测试验证优化效果。
Linux 性能测试需覆盖 “监控 - 基准 - 压力 - 分析” 全链路,不同测试目标对应不同工具组合:
- CPU 测试:sysbench、stress、Geekbench
- 内存测试:stream、sysbench memory、memtest86+
- 磁盘 I/O 测试:fio、dd、hdparm、iostat
- 网络测试:iperf3、ab、ping/mtr、netperf
- 综合测试:UnixBench、Glances、Prometheus+Grafana
- 瓶颈分析:perf、strace、ltrace、pidstat
实际测试中需根据业务场景选择合适的工具与参数,确保测试结果贴近真实应用场景,为系统优化提供可靠依据。