前言
此篇开启服务器对比实测评分系列文章,以腾讯云服务器 CVM S5.MEDIUM2(下称 CVM)为基准 100 分,用 Docker 运行测试程序。
网上常见的服务器评测对我意义不大,我想要更直观地知道,其他服务器相比我现在用的 CVM 可以打几分,值不值得买。我网站的高负载主要发生在上传文件后的处理,所以专项测试服务器处理文件的能力,也就是 CPU 性能和磁盘 I/O 的具像化表现。
测试方案
我将测试指标简化为处理文件的执行时长,耗时越短代表性能越好。
测试步骤
- 准备不同后缀、不同大小的图片、音频、视频文件
- 计算 1 个文件完成 1 种处理的耗时,记为 1 次测试
- 达到 10 次测试后用 Z-Score 方法剔除异常数据
- 重复上述步骤直至完成 10 次有效测试,取平均值
- 同类文件处理耗时之和的倒数作为该类评分依据
- 各类文件处理能力得分加权之和作为最终得分
文件权重
参照我网站的实际情况,当前有 4611 张图片、1877 个短片、17 个语音,故设图片、视频、音频的权重分别为 70.88%、28.85%、0.27%。
评分算法
类评分
设 CVM 图片处理总耗时为 t1,测试服务器图片处理总耗时为 t2。则测试服务器图片处理能力得分为:100 * (1 / t2) / (1 / t1)。
总评分
设测试服务器图片、音频、视频处理得分分别为 s1、s2、s3,则测试服务器总得分为 0.7088 * s1 + 0.2885 * s2 + 0.27 * s3。
测试环境
Docker 部署
为统一软件环境,并在特定情况下限制 CPU 与内存(高配服务器模拟与 CVM 一致的规格),故用 Docker 来部署测试。
#安装 Docker 和 docker-compose
apt install docker.io docker-compose -y
#克隆代码
git clone https://github.com/dujunio/server_testing
#开启测试
cd server_testing
docker-compose up -d
生成结果在 result
目录。
软件环境(容器内)
- PHP 8.2.18(含 php8.2-imagick 3.7.0-4)
- FFmpeg 5.1.5
- jpegoptim 1.4.7
测试文件
图片文件
编号 | 类型 | 大小 | 尺寸 |
---|
111 | JPG | 449K | 1920 × 1080 |
112 | JPG | 1.9M | 3000 × 2000 |
121 | PNG | 750K | 1024 × 683 |
122 | PNG | 3.8M | 1920 × 1080 |
131 | BMP | 1.5M | 960 × 540 |
132 | BMP | 6.0M | 1920 × 1080 |
141 | GIF | 417K | 400 × 226(13 帧) |
142 | GIF | 1.8M | 202 × 513(66 帧) |
音频文件
编号 | 类型 | 大小 | 位速率 | 采样速率 | 时长 |
---|
211 | MP3 | 137K | 64kbps | 48.0kHz | 0:17 |
212 | MP3 | 939K | 64kbps | 44.1kHz | 2:00 |
213 | MP3 | 5.2M | 128kbps | 44.1kHz | 5:37 |
视频文件
编号 | 类型 | 大小 | 格式 | 分辨率 | 时长 |
---|
311 | MP4 | 2.4M | H.264 | 576P | 0:15 |
312 | MP4 | 9.4M | HEVC | 480P | 0:22 |
321 | MOV | 7.7M | HEVC | 720P | 0:05 |
322 | MOV | 29M | H.264 | 1080P | 0:16 |
基准服务器
本站所运行的服务器,腾讯云 CVM S5.MEDIUM2,2 核 2GB 1Mbps。
| CPU |
---|
型号 | Intel(R) Xeon(R) Platinum 8255C CPU @ 2.50GHz |
主频 | 2494.140 MHz |
缓存 | 36608 KB |
内核 | 2 核 |
BogoMIPS | 4988.28 |
基准性能
图片处理测试结果
特别说明:BMP 额外有预先转码成 JPG 的开销。
图片压缩
编号 | 文件 | 耗时 |
---|
111 | JPG 449K | 0.0481s |
112 | JPG 1.9M | 0.1676s |
121 | PNG 750K | 0.4122s |
122 | PNG 3.8M | 0.4824s |
131 | BMP 1.5M | 0.0130s |
132 | BMP 6.0M | 0.0393s |
生成缩略图
编号 | 文件 | 耗时 |
---|
111 | JPG 449K | 0.0360s |
112 | JPG 1.9M | 0.1296s |
121 | PNG 750K | 0.0560s |
122 | PNG 3.8M | 0.0864s |
131 | BMP 1.5M | 0.0203s |
132 | BMP 6.0M | 0.0262s |
141 | GIF 417K | 0.0672s |
142 | GIF 1.8M | 0.2773s |
生成 WebP
编号 | 文件 | 耗时 |
---|
111 | JPG 449K | 0.3137s |
112 | JPG 1.9M | 1.0763s |
121 | PNG 750K | 0.1017s |
122 | PNG 3.8M | 0.3095s |
131 | BMP 1.5M | 0.0545s |
132 | BMP 6.0M | 0.2096s |
141 | GIF 417K | 0.2887s |
142 | GIF 1.8M | 0.6153s |
音频处理测试结果
生成 OGG
编号 | 文件 | 耗时 |
---|
211 | MP3 137K | 0.2928s |
212 | MP3 939K | 1.1947s |
213 | MP3 5.2M | 6.4211s |
视频处理测试结果
特别说明:MOV 额外有预先转码成 MP4 的开销。
视频压缩
编号 | 文件 | 耗时 |
---|
311 | MP4 2.4M | 12.7703s |
312 | MP4 9.4M | 0.0917s |
321 | MOV 7.7M | 9.4417s |
322 | MOV 29M | 29.2054s |
生成缩略图
编号 | 文件 | 耗时 |
---|
311 | MP4 2.4M | 0.3318s |
312 | MP4 9.4M | 0.2952s |
321 | MOV 7.7M | 3.6489s |
322 | MOV 29M | 11.1678s |
生成 WebM
编号 | 文件 | 耗时 |
---|
311 | MP4 2.4M | 79.7153s |
312 | MP4 9.4M | 72.3739s |
321 | MOV 7.7M | 71.5808s |
322 | MOV 29M | 317.8199s |
结果呈现
类评分和总评分以分数的形式呈现,单个测试结果以如下符号呈现:
性能相较 CVM | 符号 |
---|
> 200% | ✓✓✓✓✓ |
169% ~ 200% | ✓✓✓✓ |
142% ~ 168% | ✓✓✓ |
119% ~ 141% | ✓✓ |
100% ~ 118% | ✓ |
85% ~ 99% | ✗ |
71% ~ 84% | ✗✗ |
60% ~ 70% | ✗✗✗ |
50% ~ 59% | ✗✗✗✗ |
< 50% | ✗✗✗✗✗ |