欢迎光临散文网 会员登陆 & 注册

Minecraft服务端性能测试:物理机、容器与虚拟机

2023-07-20 01:19 作者:橫眉冷對千夫指  | 我要投稿

这次测试的目的是探索Minecraft服务端在宿主机、LXC容器与虚拟机中运行时的性能。

一、测试环境

本次测试的硬件配置与红蓝对决中的蓝方相同。

软件方面分为四组:

①宿主机,或称物理机。操作系统为 Proxmox VE 7.4-16,服务端直接运行在宿主机上,不包含虚拟化。

②LXC容器。使用 Debian 12.0-1 的容器模板,服务端运行在容器中。

③虚拟机(12线程)。操作系统为 Debian 12.0-1,服务端运行在虚拟机中。虚拟机可以占用CPU的所有12个线程。

④虚拟机(6线程)。操作系统为 Debian 12.0-1,服务端运行在虚拟机中。虚拟机可以占用CPU的6个线程,这6个线程分别属于6个物理核心,可以不严谨地认为在虚拟化中关闭了超线程。

图1 分配6个线程的方式

此外,Java 版本更新为 17.0.8,其他均与红蓝对决中相同。

下面说明一下设置6线程虚拟机的原因:

超线程在宿主机上能以正确的方式被识别和调用,但分配给虚拟机时,虚拟机可能无法认识到哪两个线程来自同一物理核心,因此在涉及多核计算时无法正确地调用。后面的数据将验证这一猜测。

红蓝对决中也对读者可能产生的一些问题做了说明。

二、测试项目

红蓝对决中的项目相同,但取消了活塞测试,因为其数据不稳定。

三、测试流程

每次测试的流程与红蓝对决中相同,这样的流程重复了八次。第一、五次是宿主机测试,第二、六次是LXC容器测试,第三、七次是虚拟机(12线程)测试,第四、八次是虚拟机(6线程)测试。目的同样是排除偶然因素、获取能相互验证的测试结果。

四、测试结果

测试得到的数据如图2。

图2 测试数据

对数据做可视化。

图3 mspt(绝对值)最大值、均值和最小值,越小越好

将每项测试的数据除以宿主机平均值得到相对值。

图4 mspt(相对值)最大值、均值和最小值,越小越好

五、总结

TNT测试中虚拟机(6线程)明显优于虚拟机(12线程),这项测试的CPU占用也确实超出了一个线程(注意,这可能是优化mod而非原版Minecraft的策略)。这一现象有力地验证了前面的猜测:虚拟机不能正确识别和调用超线程,因此只分配每个核心的一个线程给虚拟机能取得更大性能优势。

其他几项测试也说明,虚拟机相比于LXC容器在性能上更接近宿主机。尤其在村民测试中,虚拟机的性能甚至优于宿主机,这种差异由偶然因素导致的可能性较低,更可能是由操作系统不同导致的。尽管虚拟机本身也运行在PVE中,但其面向Minecraft服务端的操作系统是Debian。

综合以上结论:非超线程虚拟机对超线程虚拟机有性能优势,虚拟机对LXC容器有性能优势。

Minecraft服务端性能测试:物理机、容器与虚拟机的评论 (共 条)

分享到微博请遵守国家法律