# 性能测试：怎样读取 CPU、磁盘与网络结果

先确定你要验证的工作负载，再挑测试项目。一次脚本评分不能代表服务器长期性能，更不能单独决定是否值得升级。

更新日期：2026-09-16

规范地址：https://stock.iftalking.com/guides/benchmark/

## 1. 先记录机器配置，再决定测什么

跑分适合比较同一工作负载在不同机器上的表现，不能单凭一个总分判断网站体验。先在控制面板核对 CPU 核数、内存、磁盘和流量，再记录系统、内核和虚拟化环境。共享 CPU 的结果会受宿主机负载影响，短时峰值不代表持续可用性能。

![从实例信息开始记录测试环境](https://stock.iftalking.com/tutorial-media/provider-kiwivm-overview.jpg)

*图示说明：服务商官方知识库公开截图（旧版界面），用于对照功能名称；当前菜单位置可能调整。图中的套餐、IP、端口和日期仅为示例。*

```bash
uname -r
lscpu
free -h
df -hT
```

若机器已运行正式业务，优先做只读观察；完整 CPU、磁盘压力测试安排在维护窗口或测试实例上。提前查看[资源限制说明](https://stock.iftalking.com/guides/usage-limits/)，并给测试设定时间和数据量上限。

## 2. CPU：固定参数，短时间比较

Ubuntu/Debian 可从系统源安装 `sysbench`。下面只使用一个线程、运行 10 秒，适合观察单线程表现；不要把生产机器全部核心长时间跑满。

```bash
sudo apt update
sudo apt install sysbench
sysbench cpu --threads=1 --time=10 run
```

记录 events per second 和延迟，同时记下工具版本。比较两台机器时，线程数、运行时间、版本要一致。若要观察多线程，另开一次短测试并单独标注线程数，不能与单线程结果直接混在同一列。

## 3. 内存：看应用是否真的缺内存

`free -h` 中的 available 比单看 free 更有用，因为文件缓存通常可以回收。Swap 少量使用不必立刻判为异常；持续换入换出、应用卡顿和 OOM 日志一起出现，才说明容量或配置需要处理。

```bash
vmstat 1 10
sudo journalctl -k --since '1 hour ago' --no-pager
```

关注 `si/so` 是否持续有值、`wa` 是否升高以及日志中是否出现被 OOM killer 终止的进程。按[内存与 Swap](https://stock.iftalking.com/guides/memory-swap/)处理，先找出占用来源，不要只靠扩大 Swap 掩盖问题。

## 4. 磁盘：使用专用文件，别对块设备写入

需要磁盘基准时可用发行版软件源中的 `fio`。准备一个有足够剩余空间的普通测试目录，明确文件名；绝不能把 `filename` 指向 `/dev/vda` 等真实磁盘设备。

```bash
mkdir -p "$HOME/vps-benchmark"
fio --name=short-write --filename="$HOME/vps-benchmark/fio-test.bin" --size=128M --rw=write --bs=1M --direct=1 --ioengine=sync --iodepth=1
```

这会创建并写入 128 MiB 测试文件。输出中的带宽、IOPS 和延迟对应这组顺序写参数，不能当成数据库随机读写结果。测试后确认只删除自己创建的 `fio-test.bin`。不支持 direct I/O 的文件系统需要另选测试方式并注明缓存影响，不要悄悄换参数再比较。

## 5. 形成能复现的结论

把系统版本、实例配置、时间、命令、结果放在同一份记录里。同一测试可间隔一段时间再做一次；差异较大时说明环境有波动，不应只保留最高分。网站慢还要结合数据库查询、PHP 工作进程、缓存命中率与用户网络。

网络吞吐单独按[带宽测试](https://stock.iftalking.com/guides/speed-tests/)记录，应用卡顿按[进程监控](https://stock.iftalking.com/guides/process-monitoring/)定位。升级套餐前先确定瓶颈是 CPU、内存、磁盘还是线路，才能知道升级是否解决问题。


## 完成后检查

测试完确认临时文件已清理、应用仍正常。不要把短时峰值写成保证值。

## 参考资料

- [Ubuntu Server 文档](https://documentation.ubuntu.com/server/)
- [服务商官方说明](https://bandwagonhost.com/kb.php?action=displayarticle&id=30)
