在 ESXi 主机上检查 cpuinfo 信息
search cancel

在 ESXi 主机上检查 cpuinfo 信息

book

Article ID: 328867

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

免责声明:本文为 Checking cpuinfo information on an ESXi host (1031785) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


本文介绍如何在 ESXi 主机上检查是否设置了 NX/XD (No eXecute/eXecute Disable) 标记。


Environment

VMware ESXi 4.0.x Embedded
VMware vSphere ESXi 5.0
VMware ESXi 4.0.x Installable
VMware ESXi 3.5.x Embedded
VMware ESXi 4.1.x Embedded
VMware vSphere ESXi 5.5
VMware ESXi 3.5.x Installable
VMware vSphere ESXi 5.1
VMware ESXi 4.1.x Installable

Resolution

在 ESX 主机上,您可以通过在 /proc/cpuinfo 文件中查看标记行来检查 cpuinfo。但是,ESXi 主机上不存在此文件。

您可以使用 VMware CPU 主机信息实用程序(可从 http://www.run-virtual.com/?page_id=38 下载)以通过查询 vCenter Server 数据库读取所有 ESX 主机中的 CPU 信息。注意:此链接中的信息按原样提供,VMware 对于这些信息的准确性或适用性不做任何保证。此实用程序仅作为示例提供,VMware 不认可、不推荐任何第三方实用程序。

还可以使用命令 vim-cmd hostsvc/hosthardware 确定此信息。
输出如下所示:
~ # vmware -v
VMware ESX Server 3i 3.5.0 build-158869
~ # vim-cmd hostsvc/hosthardware
(vim.host.HardwareInfo) {
dynamicType = <unset>,
systemInfo = (vim.host.SystemInfo) {
dynamicType = <unset>,
vendor = "Dell Inc.",
model = "PowerEdge 2950",
uuid = "44454c4c-4800-104e-8035-b1c04f58324a",
},
cpuInfo = (vim.host.CpuInfo) {
dynamicType = <unset>,
numCpuPackages = 2,
numCpuCores = 4,
numCpuThreads = 4,
hz = 2327523877,
},
cpuPkg = (vim.host.CpuPackage) [
(vim.host.CpuPackage) {
dynamicType = <unset>,
index = 0,
vendor = "intel",
hz = 2327523877,
busHz = 332503411,
description = "Intel(R) Xeon(R) CPU 5140 @ 2.33GHz",
threadId = (short) [
0,
1
],
cpuFeature = (vim.host.CpuIdInfo) [
(vim.host.CpuIdInfo) {
dynamicType = <unset>,
level = 0,
vendor = <unset>,
eax = "0000:0000:0000:0000:0000:0000:0000:1010",
ebx = "0111:0101:0110:1110:0110:0101:0100:0111",
ecx = "0110:1100:0110:0101:0111:0100:0110:1110",
edx = "0100:1001:0110:0101:0110:1110:0110:1001",
},
(vim.host.CpuIdInfo) {
dynamicType = <unset>,
level = 1,
vendor = <unset>,
eax = "0000:0000:0000:0000:0000:0110:1111:0110",
ebx = "0000:0000:0000:0010:0000:1000:0000:0000",
ecx = "0000:0000:0000:0100:1110:0011:1011:1101",
edx = "1011:1111:1110:1011:1111:1011:1111:1111",
},
: : : : : : : : : :
(vim.host.CpuIdInfo) {
dynamicType = <unset>,
level = -2147483647,
vendor = <unset>,
eax = "0000:0000:0000:0000:0000:0000:0000:0000",
ebx = "0000:0000:0000:0000:0000:0000:0000:0000",
ecx = "0000:0000:0000:0000:0000:0000:0000:0001",
edx = "0010:1000:0001:0000:0000:1000:0000:0000",
可通过查看 0x8000 0001:EDX 的第 20 位来确定 NX/XD 状态,如 VMware VMotion and CPU Compatibility 中的 x86 功能位和实施差异中所述。
请注意,级别 0x80000001 实际上以带符号的十进制整数格式显示,因此它显示为 -2147483647。NX 位在以上示例中高亮显示为红色。


Additional Information

VMware 的 CPUID ISO 可以在 ESX 或 ESXi 主机上的虚拟机中运行,这将提供基础硬盘的 CPU 信息,包括 NX/XD 位。可从 http://download3.vmware.com/software/vi/VMware-CPU-Compatibility-e.x.p-160658.zip下载此 ISO。

注意:在以下情况下,当检查是否已启用 VT 或 NX 时,CPUID ISO 可能不准确:
  1. 如果已启用 EVC 或已向虚拟机应用手动 CPU 掩码,虚拟机将看不到除此之外的信息。
  2. 如果存在 ESX/ESXi 未使用的 CPU 功能,可能不会将这些功能提供给 VMX 进程。
此外,还存在一些 CPUID ISO 并非完全准确的其他可能情况。要获取所有功能,您将需要直接从 ISO 引导主机。Checking cpuinfo information on an ESXi host