有没有办法知道我使用的是 XEN 还是 KVM Linux 服务器?我问这个问题的原因是,虽然没有任何东西处于最顶端,但我在执行任务后发现平均负载很高,而执行简单任务时会出现挂起/峰值
答案1
如果您有sudo
权限,您可以运行以下命令来获取有关 CentOS 所运行的“硬件”的信息:
sudo lshw
例如,我的一台计算机上的前几行输出是:
description: Desktop Computer
product: Virtual Machine
vendor: Microsoft Corporation
微软的虚拟机?我在 Hyper-V 上运行。
答案2
systemd-detect-virt
kvm
在我的主机上:
none
也可以看看:https://unix.stackexchange.com/questions/89714/easy-way-to-determine-virtualization-technology
在 Ubuntu 18.04 主机上测试。
答案3
有代码可以检测到这一点:http://ivanlef0u.fr/repo/windoz/rootkit/invisiblethings/redpill.html
您还可以检查 dmesg 和 lspci。
Xen PV 客户机或带有 PV 驱动程序的 Xen 客户机将在 dmesg 中显示与 xen 相关的信息
dmesg | egrep -i 'xen|front
答案4
lshw
在 *nix 服务器上并不总是可用。是的,您可以安装它,但是我喜欢选择我在盒子上免费获得的东西。我发现大多数情况下dmidecode
通常都可以使用。请改用这个:
有趣的是,lshw
它从 DMI 表条目和其他来源获取一些信息。但对于此目的,仅使用dmidecode
就足够了。
dmidecode -t system|grep 'Manufacturer\|Product'
Dell 服务器上的输出:
Manufacturer: Dell Inc.
Product Name: PowerEdge C5220
Virtualbox VM 上的输出:
Manufacturer: innotek GmbH
Product Name: VirtualBox
KVM/QEMU 上的输出:
Manufacturer: QEMU
Product Name: Standard PC (i440FX + PIIX, 1996)
这对于可以解析这些内容以更好地识别服务器的脚本非常有用...但是如果您在基础架构中使用 Chef,则可以检查Virtualization -> system
chef 服务器中的节点属性。