我如何知道我的 XEN 系统有多少个 CPU (vcpus)?
How do I find out how many CPUs (vcpus) my XEN system has?
如果我启动 top
或查看 /proc/cpuinfo
,我只看到两个 CPU。如果我使用 virt-manager
查看为我的系统显示的值,该工具会显示 32 vcpus(这是我认为正确的值)。
我(还)未能在管理程序的脚本级别找到正确的值 (32)。我一直在研究 /proc/cpuinfo
和 /sys/devices/system/cpu/
以及其他我能想到的东西,但没有找到那个值。另外 shell 命令,如 xen
或 xm
我仔细检查了,但发现无法显示我正在寻找的值。
有人知道我如何知道我的 XEN 系统提供了多少个 vcpus 吗?
编辑:lscpu
给我:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 2
Core(s) per socket: 1
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 45
Stepping: 7
CPU MHz: 2900.086
BogoMIPS: 5800.17
Hypervisor vendor: Xen
Virtualization type: none
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 20480K
NUMA node0 CPU(s): 0,1
因此,这也不会在任何地方显示“32”。
/proc/cpuinfo
的内容:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 45
model name : Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz
stepping : 7
microcode : 0x70d
cpu MHz : 2900.086
cache size : 20480 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu de tsc msr pae cx8 apic sep cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl nonstop_tsc pni pclmulqdq est ssse3 cx16 sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes hypervisor lahf_lm ida arat pln pts dtherm
bogomips : 5800.17
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 45
model name : Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz
stepping : 7
microcode : 0x70d
cpu MHz : 2900.086
cache size : 20480 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu de tsc msr pae cx8 apic sep cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl nonstop_tsc pni pclmulqdq est ssse3 cx16 sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes hypervisor lahf_lm ida arat pln pts dtherm
bogomips : 5800.17
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
这个方法不错:
cat /proc/cpuinfo | grep "core id"
这是输出示例:
core id : 0
core id : 1
core id : 0
core id : 1
我的系统是双核的,我只有core-id 0和core-id 1
我现在找到方法了:
IFS=: read _ nr_cpus < <(xm info | grep ^nr_cpus)
echo "$nr_cpus"
这将(最终)打印
32
在我的系统上。
如果我启动 top
或查看 /proc/cpuinfo
,我只看到两个 CPU。如果我使用 virt-manager
查看为我的系统显示的值,该工具会显示 32 vcpus(这是我认为正确的值)。
我(还)未能在管理程序的脚本级别找到正确的值 (32)。我一直在研究 /proc/cpuinfo
和 /sys/devices/system/cpu/
以及其他我能想到的东西,但没有找到那个值。另外 shell 命令,如 xen
或 xm
我仔细检查了,但发现无法显示我正在寻找的值。
有人知道我如何知道我的 XEN 系统提供了多少个 vcpus 吗?
编辑:lscpu
给我:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 2
Core(s) per socket: 1
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 45
Stepping: 7
CPU MHz: 2900.086
BogoMIPS: 5800.17
Hypervisor vendor: Xen
Virtualization type: none
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 20480K
NUMA node0 CPU(s): 0,1
因此,这也不会在任何地方显示“32”。
/proc/cpuinfo
的内容:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 45
model name : Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz
stepping : 7
microcode : 0x70d
cpu MHz : 2900.086
cache size : 20480 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu de tsc msr pae cx8 apic sep cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl nonstop_tsc pni pclmulqdq est ssse3 cx16 sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes hypervisor lahf_lm ida arat pln pts dtherm
bogomips : 5800.17
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 45
model name : Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz
stepping : 7
microcode : 0x70d
cpu MHz : 2900.086
cache size : 20480 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu de tsc msr pae cx8 apic sep cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl nonstop_tsc pni pclmulqdq est ssse3 cx16 sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes hypervisor lahf_lm ida arat pln pts dtherm
bogomips : 5800.17
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
这个方法不错:
cat /proc/cpuinfo | grep "core id"
这是输出示例:
core id : 0
core id : 1
core id : 0
core id : 1
我的系统是双核的,我只有core-id 0和core-id 1
我现在找到方法了:
IFS=: read _ nr_cpus < <(xm info | grep ^nr_cpus)
echo "$nr_cpus"
这将(最终)打印
32
在我的系统上。