為什麼 KVM VPS 比 OPENVZ 慢
所以我剛買了一個KVM vps,當我把它和我現有的openvz vps進行比較時,我發現它比openvz vps慢,當我檢查處理器資訊時,它的資訊有點錯誤,所以我想知道公司可以控制共享cpu是否在不同 KVM 容器之間記憶體?
在 kvm 上:cat /proc/cpuinfo
vendor_id : GenuineIntel cpu family : 6 model : 79 model name : Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz stepping : 1 microcode : 0x1 cpu MHz : 2199.996 cache size : 4096 KB bogomips : 4399.99
我在英特爾網站上查看了這個 E5 處理器有大約 30 MB 的記憶體。
在 openvz vps 上:cat /proc/cpuinfo
vendor_id : GenuineIntel cpu family : 6 model : 63 model name : Intel(R) Xeon(R) CPU E5-1660 v3 @ 3.00GHz stepping : 2 microcode : 46 cpu MHz : 2999.918 cache size : 20480 KB bogomips : 5999.83
記憶體大小為 20 MB,這是真實的。
之後我做了cpu bench
在 kvm 上: sysbench –test=cpu –cpu-max-prime=20000 執行
Maximum prime number checked in CPU test: 20000 Test execution summary: total time: 30.1875s total number of events: 10000 total time taken by event execution: 30.1860 per-request statistics: min: 2.57ms avg: 3.02ms max: 4.13ms approx. 95 percentile: 3.22ms Threads fairness: events (avg/stddev): 10000.0000/0.00 execution time (avg/stddev): 30.1860/0.00
在 openvz 上: sysbench –test=cpu –cpu-max-prime=20000 執行
Maximum prime number checked in CPU test: 20000 Test execution summary: total time: 26.5902s total number of events: 10000 total time taken by event execution: 26.5889 per-request statistics: min: 2.64ms avg: 2.66ms max: 3.17ms approx. 95 percentile: 2.70ms Threads fairness: events (avg/stddev): 10000.0000/0.00 execution time (avg/stddev): 26.5889/0.00
所以你可以看到有 4 秒的差異,這是一件大事。
**簡短回答:**對於單執行緒工作負載,您的 OpenVZ CPU 比 KVM 使用的 CPU 更快。最重要的是,OpenVZ 是一種輕量級的虛擬化方法,因此,在所有其他條件相同的情況下,它比 KVM 快一些。
長答案: KVM CPU 是具有 2.2-2.9 GHz 基本/渦輪時鐘的 Broadwell Xeon。OpenVZ 使用具有 3.0-3.5 GHz 基本/渦輪時鐘的 Haswell Xeon。考慮到 Haswell 和 Broadwell IPC 基本相同,最快的 CPU 贏得單執行緒基準測試也就不足為奇了。
關於虛擬化平台:
KVM 是一個全硬體虛擬化平台(full HVM),而 OpenVZ 使用容器化,其他使用半虛擬化。
第一種方法基本上模擬整個虛擬機/平台,具有非常高兼容性的優點(即使最初編寫的作業系統並未考慮到虛擬化 - 即:Windows)。成本增加了成本,這在某些工作負載中可能非常重要。可以將特定的半虛擬化驅動程序添加到完整的 HVM 設置中,從而避免一些成本。
另一方面,半虛擬化需要客戶作業系統協作(例如,以超級呼叫的形式)。換句話說,客戶作業系統必須適應在特定的主管/準虛擬化器下執行,因此準虛擬化主機不能執行任意客戶作業系統。優點是成本低得多,因此性能更快。
容器化甚至比半虛擬化的成本更低,因為只有一個作業系統實例;每個其他 VPS 都是一個 jail/chroot-on-steroid,它使用與“主”作業系統相同的核心來複製使用者空間部分。這同時也是它的主要優勢和劣勢:由於它只複製使用者空間工具,因此成本非常低。另一方面,單個核心用於所有VPS 映像。
無論如何,完全 HVM、半虛擬化和容器化之間的區別主要體現在延遲和 I/O 綁定的工作負載上。由於您的基準測試是純 CPU 壓力測試,因此差異主要歸因於不同的 CPU 配置(而不是不同的管理程序)。