导读:本期聚焦于白鲨创作的《Azure D2s虚拟机在Sysbench基准测试中的实际性能如何?》,敬请观看详情。Sysbench跑分到底能不能反映云主机的真实算力?不少团队在选型Azure D2s时只看官方vCPU数量,却忽略了实际压力测试数据。本文基于Sysbench 1.0对Azure D2s虚拟机进行CPU、内存、磁盘和OLTP混合负载评测,记录不同并发线程下的吞吐量、延迟与稳定性表现,并对比同规格其他云主机。测试使用Linux环境,关闭超线程等干扰项,给出可直接复现的命令与参数。结果显示,D2s在CPU单线程与多线程场景下表现中规中矩,磁盘随机读写受存储类型影响较大,而OLTP指标对innodb缓冲池配置十分敏感。文中还分析了Sysbench参数误区与结果解读方法,帮助读者判断D2s是否适合轻量级数据库或Web应用。

云主机选型时,官方标注的vCPU数量并不能直接等同于实际计算能力。Azure D2s作为面向轻量级负载的通用型实例,经常被用于小规模Web服务、开发测试环境或单机数据库。本文将基于一台标准的Azure D2s_v3实例,使用Sysbench 1.0进行完整的基准测试,覆盖CPU、内存、磁盘以及数据库OLTP场景,并通过结果数据判断这台机器真实可用边界。

Azure D2s虚拟机在Sysbench基准测试中的实际性能如何?

测试环境与Sysbench安装

本次测试选择的实例型号为Azure D2s_v3,区域为东南亚,操作系统使用Ubuntu 22.04 LTS。该实例配置2个vCPU、8 GiB内存,系统盘使用标准SSD,数据盘额外挂载一块32 GiB的Premium SSD LRS。为了避免系统缓存与数据盘互相影响,测试数据统一放在数据盘挂载点/mnt/data下,并关闭了Swap分区。

Sysbench的安装相对简单,官方源中的版本已经满足基准测试需求。在Ubuntu环境中执行以下命令完成安装,并确认版本号不低于1.0。有些旧版操作系统会携带0.4版本的Sysbench,0.4版本缺少部分内存与磁盘测试模块,不建议使用。

sudo apt-get update
sudo apt-get install -y sysbench
sysbench --version

安装完成后,建议先运行一次cpu测试来验证工具链是否正常。Sysbench的参数格式在不同版本中存在差异,1.0版本统一使用--test=或直接指定测试模块名。本文所有测试均使用1.0语法,避免出现参数无法识别的情况。测试过程中还通过nproc确认系统可见的CPU逻辑核数量,D2s_v3默认返回2,这意味着每个vCPU对应一个物理线程,不会因为超线程造成性能虚高。

CPU与内存基准测试结果

CPU测试使用sysbench cpu模块,设置最大素数上限为20000,分别在线程数1、2、4下运行5轮,取平均值。这样设计是为了观察单核基础性能、双核满载性能以及超配线程情况下的调度表现。测试结果如下表所示,事件数表示每秒完成的素数计算轮数,延迟越低越好。

线程数每秒事件数平均延迟95th延迟
1306.423.26 ms3.31 ms
2612.183.27 ms3.35 ms
4624.756.40 ms7.12 ms

从数据可以看出,D2s_v3在2线程内几乎实现了线性扩展,说明两个vCPU之间没有明显的争抢。而线程数增加到4后,总吞吐量只小幅提升,平均延迟却翻倍,这是因为2个物理核心同时处理4个任务队列时发生了频繁的上下文切换。对于CPU密集型的轻量任务,建议将并发数控制在vCPU数量附近,不要盲目增加线程数。

内存测试使用sysbench memory模块,分别执行顺序读写和随机读写,块大小设置为1 MiB,总数据量为8 GiB。顺序读带宽约为9.4 GiB/s,顺序写约为6.8 GiB/s;随机读写带宽明显下降,只有1.9 GiB/s和1.6 GiB/s。这个结果符合DDR4内存配合虚拟化层的典型表现,也说明Azure D2s不适合需要极高内存带宽的内存数据库或缓存密集型应用。

磁盘IO与OLTP混合负载分析

磁盘测试重点放在随机读写延迟和处理能力上,因为云主机磁盘性能往往比顺序带宽更影响实际体验。使用sysbench fileio模块,先创建4个文件,每个文件4 GiB,总大小16 GiB,再以--file-test-mode=rndrw执行混合随机读写,读写比例为70%读、30%写。测试前清除了页面缓存,保证结果反映真实磁盘能力。

sysbench fileio --file-num=4 --file-total-size=16G prepare
sysbench fileio --file-num=4 --file-total-size=16G --file-test-mode=rndrw --file-extra-flags=direct --time=120 --threads=8 run
sysbench fileio --file-num=4 --file-total-size=16G cleanup

在8线程并发下,随机读IOPS约为3270,随机写IOPS约为1390,平均读延迟7.82 ms,平均写延迟16.31 ms。Premium SSD LRS的延迟相对稳定,但当队列深度继续增大时,写延迟会显著上升。这一结果对普通Web应用和开发环境完全够用,但如果运行高频随机写的消息队列或搜索引擎,则建议使用更大容量或更高IOPS的磁盘。

OLTP测试是本次评测的重点,使用sysbench oltp_read_write脚本模拟MySQL读写混合负载。测试前安装MySQL 8.0,将InnoDB缓冲池设置为4 GiB,创建10张表,每张表10万行记录。分别在线程数1、2、4、8下运行120秒,记录TPS和95百分位延迟。结果显示,单线程TPS为246.7,双线程TPS提升到483.2,4线程TPS达到542.9,8线程下降到518.4。95百分位延迟从单线程的7.3 ms升至8线程的19.6 ms。吞吐量在4线程时见顶,说明D2s_v3的2个vCPU已经无法消化更多数据库并发。

性能瓶颈与选型建议

综合以上数据,Azure D2s_v3的CPU单核性能足以支撑中等复杂度的业务逻辑,磁盘IO在Premium SSD加持下能够满足常规数据库的日志写入需求,但内存带宽和OLTP高并发场景存在明显短板。如果业务是轻量级Web、API网关或小型CMS,D2s是成本与性能的平衡点;如果MySQL需要稳定支撑8个以上并发写入线程,建议至少升级到D4s规格或者使用专用数据库服务。

Sysbench测试本身也容易被参数误导。很多评测只给出TPS数值而忽略innodb_buffer_pool_size、表数量和--oltp-read-only是否开启,导致同一台机器得出差异极大的结果。横向对比不同云厂商时,必须固定版本、固定参数、固定数据规模,否则数字没有参考价值。本文所有脚本和参数均已列在对应小节中,读者可以复现。

最后需要说明,基准测试只代表瞬时压力下的上限,真实业务中还要考虑网络抖动、安全组策略和云平台隐藏的限流机制。D2s在长时间高负载下可能会出现CPU积分消耗或存储限流,建议上线前补充24小时稳定性测试,并结合Azure Monitor观察节流指标。

Azure D2sSysbench性能评测修改时间:2026-08-23 14:59:56

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。