ESXi的超线程状态为“已禁用”,是谁动了我的服务器?

简介: ESXi的超线程状态为“已禁用”,是谁动了我的服务器?


最近配置虚拟机的时候,突然发现CPU的数量最高只能选到24了,因为最近没有用到高规格的主机,所以一直没有注意这个问题。发现这个问题还是因为准备装一台搞TensorFlow的虚拟机,本打算给虚拟机配置高一些,没想到发现了只能选到24核这个问题。

因为服务器放到公网上了成本增加了100块,内网服务器上公网解决方案2.0重磅来袭!,所以我最先怀疑的是有人把我的超线程给关了,于是我就进BIOS看了一下。

可以看到,处理器选项下面的Intel超线程状态为“已启用”,不是这个原因。

那是什么问题呢?我想了想最近可能有影响的几个操作,一是前几天搞macOS用的unlocker工具macOS unlocker 4.0.5 for VMware ESXi 7.0,但是这个工具我之前用了两三年了没有影响,可以暂时先排除这个原因;二是升级ESXi版本豁出去了,真机带业务演示一把ESXi 6.7升级7.0 U3,当时做过一些调整;三是安装GPU显卡切换到WDDM模式,Tesla M4可以用于本地显示输出了!,因为我在给配置了PCI直通的虚拟机启用嵌套虚拟化时,出现了报错,提示嵌套硬件辅助的虚拟化和PCI直通设备不兼容。

因为原因二和原因三的操作时间差不多,一时不好判断。但是GPU直通比较好验证,我们先关闭GPU的硬件直通试一下,在“管理”“硬件”页签下面,选中GPU设备,点击左上角的“切换直通”

等直通状态显示为“禁用”之后,我们重新引导主机。

重启之后,硬件直通的状态已经是“禁用”了,但虚拟机配置还是只能选到24核,并且在首页查看硬件配置,CPU的超线程状态还是“已禁用”

难道是ESXi升级的问题?我找到之前的操作记录,发现做了以下几个操作:

配置命令包含的几个选项都包含hyperthreading字段,这个字段正常就是超线程的意思。当时解决的问题是L1终端故障漏洞,影响范围为VMM、OS和SGX,至少2009-2018年的英特尔处理器都受影响,处理办法是启用ESXi侧通道感知调度程序(SCAv1)或ESXi侧通道感知调度程序v2(SCAv2),看上去配置操作超线程好像和解决方案不太统一啊。

如果在WEB页面查看,在主机的“高级系统设置”中,搜索超线程,有以下几个关联项。

可以看到第二个是启用超线程,状态是true启用状态,也是默认值,没有修改过。

修改过的是第一项和第三项,第一项是不显示安全漏洞告警,应该不影响实际业务,第三项是根据需要限制同一超线程核心同时使用多个逻辑处理器以缓解安全漏洞,看这个描述可能和我的问题有关系。那我们将值修改为false关掉或者重置配置试一下,重新引导服务器生效。

果不其然,就是这个设置的问题,重新引导之后CPU的超线程状态就变成了“是,已启用”的正常状态了。

在虚拟机配置验证一下,CPU配置已经可以选到48核了。

当然,到这里问题就基本解决了,但是我还验证了一下unlocker的问题,因为老版本unlocker工具的兼容性问题,我当时还调整了一些配置,但就跟当时描述的,很多配置都是重启就失效的。

这里批评一下文心一言,他给我的答复让我真就以为就是unlocker的问题了。

结果,/etc/vmware/esx.conf这个配置文件中压根就没有CPU的相关配置。

捎带的,表扬一下通义千问目前来看,通义千问好像勉强能和ChatGPT-3.5打个平手!

虽然方案不是完全正确,但是已经很接近正确方案了,只有一步之遥。如果仅通过这一个技术问题来对比,高下立判!


相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
2月前
|
安全 Java 调度
Java编程时多线程操作单核服务器可以不加锁吗?
Java编程时多线程操作单核服务器可以不加锁吗?
44 2
|
5月前
|
Java
Java Socket编程与多线程:提升客户端-服务器通信的并发性能
【6月更文挑战第21天】Java网络编程中,Socket结合多线程提升并发性能,服务器对每个客户端连接启动新线程处理,如示例所示,实现每个客户端的独立操作。多线程利用多核处理器能力,避免串行等待,提升响应速度。防止死锁需减少共享资源,统一锁定顺序,使用超时和重试策略。使用synchronized、ReentrantLock等维持数据一致性。多线程带来性能提升的同时,也伴随复杂性和挑战。
100 0
|
3月前
|
Java
Java使用FileInputStream&&FileOutputStream模拟客户端向服务器端上传文件(单线程)
Java使用FileInputStream&&FileOutputStream模拟客户端向服务器端上传文件(单线程)
83 1
|
3月前
|
存储 固态存储 虚拟化
【vSAN分布式存储服务器数据恢复】VMware vSphere vSAN ESXi超融合HCI分布式存储数据恢复案例
近期,我司处理了一个由10台华为OceanStor存储组成的vSAN超融合架构,其中一台存储闪存盘出现故障,用户取下后用新的闪存盘代替,然后对该闪存盘所在的磁盘组进行重建,导致集群中一台使用0置备策略的虚拟机数据丢失。
78 6
|
3月前
|
API Windows
揭秘网络通信的魔法:Win32多线程技术如何让服务器化身超级英雄,同时与成千上万客户端对话!
【8月更文挑战第16天】在网络编程中,客户/服务器模型让客户端向服务器发送请求并接收响应。Win32 API支持在Windows上构建此类应用。首先要初始化网络环境并通过`socket`函数创建套接字。服务器需绑定地址和端口,使用`bind`和`listen`函数准备接收连接。对每个客户端调用`accept`函数并在新线程中处理。客户端则通过`connect`建立连接,双方可通过`send`和`recv`交换数据。多线程提升服务器处理能力,确保高效响应。
54 6
|
4月前
|
Java
如何在Java中实现多线程的Socket服务器?
在Java中,多线程Socket服务器能同时处理多个客户端连接以提升并发性能。示例代码展示了如何创建此类服务器:监听指定端口,并为每个新连接启动一个`ClientHandler`线程进行通信处理。使用线程池管理这些线程,提高了效率。`ClientHandler`读取客户端消息并响应,支持简单的文本交互,如发送欢迎信息及处理退出命令。
|
3月前
|
C语言
【C语言】多线程服务器
【C语言】多线程服务器
30 0
|
4月前
|
网络协议 安全 Python
我们将使用Python的内置库`http.server`来创建一个简单的Web服务器。虽然这个示例相对简单,但我们可以围绕它展开许多讨论,包括HTTP协议、网络编程、异常处理、多线程等。
我们将使用Python的内置库`http.server`来创建一个简单的Web服务器。虽然这个示例相对简单,但我们可以围绕它展开许多讨论,包括HTTP协议、网络编程、异常处理、多线程等。
|
6月前
|
存储 关系型数据库 MySQL
服务器数据恢复—ESXi虚拟机无法启动的数据恢复案例
**服务器数据恢复环境:** 某品牌EVA某型号存储中部署VMware ESXi虚拟化平台,数据盘(精简模式)+快照数据盘,虚拟机中有mysql数据库。 **服务器故障:** 机房意外断电导致该存储中的一台VMware虚拟机无法启动,管理员清空cache并尝试重新启动该虚拟机 ,问题依旧,无法成功启动虚拟机。用户方联系到我们数据恢复中心要求恢复该无法启动的虚拟机中的数据。
|
1月前
|
存储 消息中间件 资源调度
C++ 多线程之初识多线程
这篇文章介绍了C++多线程的基本概念,包括进程和线程的定义、并发的实现方式,以及如何在C++中创建和管理线程,包括使用`std::thread`库、线程的join和detach方法,并通过示例代码展示了如何创建和使用多线程。
41 1
C++ 多线程之初识多线程