跳到主要内容
← 指南列表

测试服务器性能(CPU、磁盘)

在比较不同套餐,或比较 VPS 与独立服务器时,用同样的方法亲自测一测,会更容易判断。以 Linux(Ubuntu、Debian)为准。

测试期间会最大限度地占用 CPU 和磁盘。如果服务器上已经在运行服务,请在用户较少的时段进行。

CPU:单个核心与全部核心

sudo apt install -y sysbench
sysbench cpu --threads=1 --time=10 run
sysbench cpu --threads=$(nproc) --time=10 run

结果中的 events per second 越大越快。

  • --threads=1 —— 单个核心的性能。如果是像 Minecraft 服务器这样单个核心很重要的程序,请比较这个数字。
  • --threads=$(nproc) —— 所有核心一起使用时的性能。如果要运行多个程序,或要分摊处理任务,请比较这个数字。

哪种程序属于哪一类,请参考单核?多核?。

sysbench 是反复进行简单计算的测试,与实际程序的性能并不完全相同。请将其用于在服务器之间用相同命令进行比较。

磁盘

简单测试:写入速度

dd if=/dev/zero of=dd-test.tmp bs=1M count=1024 oflag=direct status=progress
rm dd-test.tmp

最后一行末尾的速度(MB/s 或 GB/s)是连续写入大文件的速度。

详细测试:小文件读写

像数据库或保存游戏世界这样频繁读写小数据的工作,用下面的测试更能体现出来。

sudo apt install -y fio
fio --name=test --filename=fio-test.tmp --size=1G --rw=randrw --rwmixread=70 --bs=4k --ioengine=libaio --iodepth=32 --direct=1 --runtime=30 --time_based --group_reporting
rm fio-test.tmp
  • read: IOPS=…、write: IOPS=… —— 每秒处理的读、写次数。越大越好。
  • BW= —— 每秒吞吐量。

两种测试都会创建测试用文件(1GB),因此磁盘需要有剩余空间,结束后请务必用 rm 删除。

测量网络速度时请注意

测速工具会收发大量数据,因此会消耗流量。

  • 普通网络超过每日流量配额后,当天剩余时间内会被限速。
  • 安全网络使用的是订购时确定的流量容量,如果在测试中用掉,可能需要额外购买。

如果目的是确认游戏或连接变慢的原因,很多情况下测量一下从本地电脑到服务器的响应时间(ping)就足够了。

ping server-ip

Windows 请在命令提示符中执行,Mac、Linux 请在终端中执行。(Mac、Linux 按 Ctrl + C 停止)Windows 服务器由于默认的防火墙设置,可能不会响应 ping。

比较结果时

  • 同一命令请测两三次,确认数值是否相近。VPS 是共用物理服务器的结构,每次测量的结果可能会略有不同。
  • 只有让要比较的服务器操作系统和命令完全一致,比较才有意义。
  • 比数字更重要的是实际程序能否顺畅运行。查看使用率的方法请参考服务器变慢时的排查。

如果问题仍未解决,请在 Discord 提交工单。