Azure D2s是微软云上非常常见的入门级通用型虚拟机,标配2个vCPU和8GB内存,很多团队会拿它跑开发测试环境、轻量级数据库或小型Web服务。但规格表上的数字终究只是数字,实际算力表现如何,还是要靠压测数据说话。本文将以Sysbench为主要工具,对Azure D2s做一轮完整的性能评测,覆盖CPU、内存和文件IO三个维度,并对结果进行分析。

一、测试环境与准备工作
本次测试使用的实例规格为Standard_D2s_v5,区域选择East Asia,操作系统为Ubuntu 22.04 LTS,内核版本5.15。Sysbench版本为1.0.20,直接通过apt安装即可。测试前建议做几件事:关闭不必要的后台服务,确保系统处于相对空闲状态;记录虚拟机的启动时间,避开宿主机可能的负载高峰;同一组测试至少跑三次取平均值,减少偶然误差。
安装命令很简单,执行以下操作即可完成环境搭建:
sudo apt update sudo apt install -y sysbench sysbench --version
需要说明的是,Azure的B系列和D系列在CPU保障策略上不同,D2s属于标准系列,vCPU不依赖积分机制,测试数据相对稳定。这一点在做长时间压测时尤其重要,否则会出现前几分钟性能好、后面断崖式下跌的情况。
二、CPU性能压测与结果分析
CPU测试使用Sysbench的cpu子命令,核心参数是--cpu-max-prime,它决定了素数计算的上限。上限越高,单次事件耗时越长,测试结果越能反映持续计算能力。常用的取值有4000和20000,本次两组都测了,方便和其他公开数据对照。
先看单线程测试命令:
sysbench cpu --threads=1 --cpu-max-prime=20000 run
多线程测试则把线程数拉满到2,匹配D2s的vCPU数量:
sysbench cpu --threads=2 --cpu-max-prime=20000 run
实测结果方面,单线程下events per second大约在850到950之间,双线程下提升到1700到1900左右,接近线性扩展,说明两个vCPU没有被超卖到明显互相抢占的程度。总耗时、平均延迟等指标也符合预期,avg latency在单线程时约1.1毫秒,双线程时基本持平,这说明超线程或调度层面没有引入额外开销。
作为参照,同等vCPU数量的B2s实例在长时间压测下会出现降频,而D2s在连续十分钟的cpu测试中吞吐量曲线平稳,没有明显衰减。如果你的业务是持续型的计算负载,D2s比B系列更适合。
三、内存与文件IO测试
内存测试使用memory子命令,关注的是单位时间内的数据吞吐量。默认块大小1KB,总数据量100GB,实际测试中可以调整块大小观察不同访问模式下的表现:
sysbench memory --threads=2 --memory-block-size=1K --memory-total-size=100G run
实测吞吐量大约在每秒15GB到18GB之间,换算后内存带宽表现正常。把块大小调到16K后,吞吐量可以进一步提升到25GB每秒以上,这符合内存访问的局部性特征,属于正常水平。由于D2s只有2个vCPU,内存带宽上限受CPU核心数制约,无法与更大规格实例相比,但在同类2核机型中不落下风。
文件IO测试稍微复杂一些,需要先用prepare准备测试文件,再执行run,最后cleanup清理:
sysbench fileio --file-test-mode=rndrw --file-total-size=2G prepare sysbench fileio --file-test-mode=rndrw --file-total-size=2G --file-num=64 --time=60 run sysbench fileio --file-test-mode=rndrw --file-total-size=2G cleanup
随机读写模式下,实测IOPS大约在5000到7000之间,读吞吐约60MB每秒。这个数字对应的其实是D2s自带的临时磁盘或附加的P10级托管磁盘水平。如果挂载的是P15或P20,IOPS上限会更高。测试时务必确认数据落在哪块盘上,很多人测出的IOPS偏低,其实是把文件写到了限速较低的默认OS盘上,得出的结论自然不准。
四、结论与使用建议
综合来看,Azure D2s的CPU性能稳定、内存表现合格、IO能力取决于所挂载的磁盘规格。它适合的场景包括:开发测试环境、小型容器宿主机、轻量级数据库从库、低流量Web应用等。对于数据库主节点这类对单核性能和IO延迟敏感的负载,建议至少选择D4s以上规格,或者在D2s上搭配高级SSD并做好监控。
做Sysbench测试时有几个细节值得注意:一是测试前用top或htop确认没有其他进程占用CPU;二是CPU测试建议至少跑60秒,短时间测试容易受调度抖动影响;三是对比不同云厂商数据时,务必保持--cpu-max-prime等参数一致,否则结果没有可比性。掌握这些方法后,你可以用同样的流程去评估任何一台云服务器,让选型决策建立在数据而不是宣传页之上。