测试云服务器的CPU、硬盘和网络性能,是评估其是否能满足业务需求的关键步骤。这里为你整理了一份常用测试方法和工具清单,可以帮你快速上手。

在开始测试前,有两点需要特别注意:
- 测试环境纯净:强烈建议在新购买、无业务数据的服务器上进行测试,避免影响现有业务或造成数据丢失。
- 建立性能基线:可以先通过lscpu、htop、vmstat等命令了解系统空闲时的状态,作为后续压力测试的对比基准。
CPU性能测试
CPU性能主要关注其运算速度和多核处理能力。
| 测试工具 | 核心命令示例 | 主要关注指标 | 说明 |
|---|---|---|---|
| sysbench | sysbench cpu --cpu-max-prime=20000 --threads=4 run | events per second | 经典工具,通过计算素数来测试CPU性能。--threads参数可设置为CPU总线程数,测试满负载性能。 |
| Geekbench | 运行./geekbench6 | 单核/多核分数 | 行业标准,通过模拟照片处理、机器学习等真实负载给出评分,便于跨平台对比。有自动化脚本可一键运行。 |
| stress / stress-ng | stress-ng --cpu 4 --timeout 60s | 系统稳定性 | 压力测试工具,可对CPU、内存、I/O施加极限压力,长时间运行(数小时)以检验系统稳定性。 |
硬盘性能测试
硬盘性能主要关注IOPS(每秒读写次数)、吞吐量(数据传输速度)和时延。
- 核心指标:IOPS(尤其对随机读写重要)和吞吐量(对顺序读写重要)。
- 关键工具:FIO。这是目前最主流和灵活的测试工具,几乎所有的云厂商文档都推荐使用。
⚠️ 重要警告: FIO会直接读写裸盘,会破坏文件系统。请务必在空闲、无数据的磁盘上进行测试,且不要在测试设备上挂载文件系统。
常用FIO测试场景及命令示例(请将/dev/vdb替换为你实际的测试设备名):
| 测试场景 | FIO命令示例 | 关键参数说明 |
|---|---|---|
| 随机读IOPS | fio -name=randread_iops -filename=/dev/vdb -bs=4k -direct=1 -ioengine=libaio -rw=randread -iodepth=32 -runtime=600 -time_based -group_reporting | -bs=4k:块大小4KB;-rw=randread:随机读;-iodepth=32:队列深度为32。 |
| 随机写IOPS | fio -name=randwrite_iops -filename=/dev/vdb -bs=4k -direct=1 -ioengine=libaio -rw=randwrite -iodepth=32 -runtime=600 -time_based -group_reporting | -rw=randwrite:随机写。 |
| 顺序读吞吐量 | fio -name=read_bw -filename=/dev/vdb -bs=1024k -direct=1 -ioengine=libaio -rw=read -iodepth=32 -runtime=600 -time_based -group_reporting | -bs=1024k:大块数据,测试吞吐量;-rw=read:顺序读。 |
| 顺序写吞吐量 | fio -name=write_bw -filename=/dev/vdb -bs=1024k -direct=1 -ioengine=libaio -rw=write -iodepth=32 -runtime=600 -time_based -group_reporting | -rw=write:顺序写。 |
测试前准备:建议先确认硬盘的起始扇区是否4KiB对齐,这会影响性能。使用fdisk -lu命令,若输出的Start值能被8整除,则表示已对齐。
网络性能测试
网络性能主要测试带宽(吞吐量)、PPS(每秒包数)和时延。
- 测试原则:网络性能测试通常需要两台以上同规格的云服务器配合。一台作为测试机(client),另一台或多台作为陪练机(server)。
- 环境要求:所有机器应位于同一地域(Region)、同一私有网络(VPC)和同一交换机(Switch)下。
| 测试目标 | 推荐工具 | 简要测试方法 |
|---|---|---|
| 带宽 (Throughput) | iperf3, Netperf | iperf3:在服务端运行iperf3 -s,客户端运行iperf3 -c <服务端IP> -P <并发流数>测试多流带宽。Netperf:使用 TCP_STREAM测试模式。 |
| PPS (Packet Per Second) | Netperf | 使用UDP_STREAM测试模式,并配合-m 64参数(小包)来测试极限转发能力。测试时需观察服务端的收包PPS,使用sar -n DEV 1命令监控。 |
| 时延/响应效率 (Latency/RR) | Netperf, sockperf | Netperf:使用TCP_RR(TCP请求/响应)或UDP_RR测试模式。sockperf:专用于时延测试的工具。 |
测试小贴士:
- 对于网络PPS测试,如果单台陪练机无法达到被测机的性能上限,可能需要使用多台陪练机同时发起流量。
- 测试前确保网卡多队列已开启,可以使用ethtool -l eth0查看和设置,以充分发挥性能。



