首頁 / 避坑指南 / 雲伺服器識別雲廠商:KVM 與 QEMU 交叉驗證清單

雲伺服器識別雲廠商:KVM 與 QEMU 交叉驗證清單

用可重現方法識別雲廠商虛擬化類型

更新於 2026-08-27 · CloudWorth

KVMQEMU雲廠商識別虛擬化偵測Steal TimeCloudWorth雲伺服器超賣VPS檢測

雲伺服器識別雲廠商:KVM 與 QEMU 交叉驗證清單

四維交叉驗證:dmesg、DMI、virtio、Steal Time,可重現識別 KVM 雲廠商。

dmesg 中的 KVM 跡象

拿到一台雲端伺服器,第一步不是跑 systemd-detect-virt,而是先看核心日誌。dmesg 是最誠實的「自白書」,因為 KVM/QEMU 的虛擬化層在啟動時會留下硬證據。最典型的是直接出現 KVM: disabled by BIOSKVM: vcpu 0, cpu 0 這類字樣,但雲廠商往往會把日誌刷得乾淨些。更可靠的訊號是 ACPI 表與 PCI 裝置:執行 dmesg | grep -i -E 'kvm|qemu|virtio|hypervisor',如果看到 Hypervisor detected: KVM,基本可以鎖定。

但 dmesg 裡沒有這些關鍵詞不代表不是 KVM——很多廠商使用自訂韌體。此時要看 dmesg | grep -i smbios 或配合 /sys/class/dmi/id/ 下的檔案。另一個隱蔽線索是 時鐘源:KVM 客戶機常顯示 clocksource: tsckvm-clock,而 Xen 通常是 xen。用 cat /sys/devices/system/clocksource/clocksource0/current_clocksource 驗證,如果回傳 kvm-clock,KVM 身分就坐實了。

取證建議:dmesg-T 時間戳能幫你確認虛擬化層是在引導早期載入的,還是後來動態注入的——後者多為巢狀虛擬化。

DMI 產品名稱反推廠商

只看 dmesg 容易誤判,因為阿里雲、騰訊雲、AWS 的 KVM 行為基本上一致。此時要動用 DMI/SMBIOS 這個「廠商指紋庫」。cat /sys/class/dmi/id/product_namecat /sys/class/dmi/id/sys_vendor 是兩條最該記住的指令。

各家雲廠商的 QEMU 韌體字串差異極大:阿里雲經常回傳 Alibaba Cloud ECS,騰訊雲是 TencentCloud,華為雲是 Huawei Cloud,AWS 的 Nitro 雖不是傳統 KVM,但老一代機型仍會顯示 XenKVM。微軟 Azure 則常見 Microsoft Corporation 加上 Virtual Machine。如果你看到 QEMU Standard PC (i440FX + PIIX, 1996),表示廠商偷懶沒改模板,這本身就是一種識別訊號。

進階方法是直接比對 dmidecode -t 1dmidecode -t 2 的 System Information 與 Baseboard 資訊。需要提醒的是:有些 IDC 小廠會「魔改」 DMI 字串偽裝成大廠,所以 DMI 必須和 virtio 裝置、Steal Time 交叉驗證。想快速驗證自己的雲伺服器身份,可以先用 CloudWorth 的免費檢測頁跑一遍:/app,它會幫你組合多條 /sys 路徑自動判定。

virtio 設備清單判斷 KVM

virtio 是 KVM/QEMU 的半虛擬化 I/O 架構,只要出現 virtio 設備,基本上就是 KVM 陣營(Xen 和 OpenVZ 不用這套)。檢查指令是 ls -l /sys/bus/virtio/devices/,或 lspci | grep -i virtio。你會看到 virtio0virtio1 這類目錄,代表區塊裝置、網卡、氣球等。

更精確的判斷要看 PCI 廠商 ID:lspci -nn | grep -i -E '1af4|virtio',其中 0x1af4 是 Red Hat/virtio 的官方 PCI vendor ID。如果網卡顯示 Red Hat, Inc. Virtio network device,絕對是 KVM/QEMU 沒跑了。同理,區塊裝置若是 Virtio block device,代表磁碟也走 virtio 路徑。

如果不想用 lspci,可以用 /proc/sys 交叉驗證:cat /proc/bus/pci/devices 裡有沒有 1af4,或 find /sys/devices -name 'virtio'。注意:新版 AWS Nitro 和部分雲端廠商會用 EFAENA 取代純 virtio 網卡,但區塊裝置仍保留 virtio,所以優先看磁碟控制器。當 virtio 目錄裡出現 blocknet 子目錄時,幾乎可以排除 OpenVZ 與 Xen 的 PV 模式。

Steal Time辨識虛標

辨識 KVM 雲端廠商只是第一步,判斷這台雲端伺服器有沒有“虛標”才是關鍵。Steal Time(stolen time)是 KVM 虛擬機裡被宿主搶佔的 CPU 時間,數值越高,表示實體主機超賣越嚴重。讀取指標最簡單的方式是 top 裡的 %st,但更精確的是看 /proc/stat 中的 steal 欄位。

Linux 核心 2.6.26 起對 KVM 時鐘與網路 I/O 做了大量最佳化,也讓 Steal Time 計量更可靠。如果 vmstat 1st 欄位長期大於 5%,或者 cat /proc/stat | grep '^cpu ' 的第 8 個數字(steal 時間片)持續增加,表示你的 vCPU 時常被鄰居搶走。以下是一組現場驗證指令:

# 每2秒採樣一次,觀察 st 欄位
vmstat 1 5
# 查累計 steal 時間(單位:jiffies)
awk '/^cpu / {print "steal:", $8}' /proc/stat
# 用 mpstat 看單核心被竊取比例
mpstat -P ALL 1 2

更激進的測法是“CPU 馬拉松 + Steal 對比”:執行 stress-ng --cpu 4 五分鐘,同時記錄 mpstat%steal。如果平均竊取率超過 10%,基本上可以認定超賣嚴重,續費前要對比新購價格。想算算目前方案 vs 新用戶優惠差多少,可以看 CloudWorth 的雲端伺服器比價工具:/app。記住:Steal Time 高並不代表服務商不靠譜,但它意味著“實體主機資源冗餘不足”,這是續費和遷移決策的重要參考。將 dmesg、DMI、virtio 和 Steal Time 四者交叉比對,你就能像取證一樣精確確認雲端廠商與真實效能水位。

常見問題

如何透過 dmesg 識別 KVM 雲廠商?

執行 dmesg | grep -i kvm,查看是否有 KVM 相關日誌,若出現則確認 KVM 虛擬化。

DMI 產品名如何反推雲廠商?

執行 dmidecode -s system-product-name,輸出如 Alibaba Cloud ECS、KVM 等,據此判斷廠商。

怎樣用 virtio 設備清單驗證 KVM?

檢查 lspci 或 ls /dev/vd*,存在 virtio 磁碟和網路卡,通常表明運行在 KVM 平台。

四維交叉驗證:dmesg、DMI、virtio、Steal Time,可重現識別 KVM 雲廠商。

立即免費開始檢測 →