
我被這個問題困住了。
在兩台實體機上全新安裝 Ubuntu 12.04 伺服器 64 位元。機器完全相同,只是一台具有 8GB RAM,而問題機器具有 32GB RAM,兩台機器是同時以相同規格購買的。 Ubuntu 截至 24 小時前已完全更新。
我透過 SSH 隧道上的 X-windows 使用 virt-manager 來管理虛擬機,伺服器作業系統根本不執行 X-windows 會話,我的桌面卻在運作。
建置並執行多個 Ubuntu 12.04 伺服器 64 位元虛擬機,每個虛擬機分配有 1GB RAM。虛擬機器的配置基本上相同(允許 MAC 位址等)。
8GB 計算機有 2 個虛擬機,32GB 計算機有 3 個虛擬機。所有虛擬機器均報告負載較低(低於 0.5,通常為 0.01),且使用率根本不高。
8GB 主機伺服器報告的負載小於 0.1,通常為 0.01。 32GB 主機伺服器報告持續負載大於 10.0。同樣,所有虛擬機器報告的內部負載均小於 0.5。頂部的 CPU 95% 以上空閒,0.0% 等待。
為什麼 32GB 機器具有高負載(當主機空閒和來賓空閒時),而相同配置的 8GB 機器會報告預期的低負載?
啟動一台虛擬機器後,32GB 上的負載會變高,執行 3xVM 不會使負載變高。停止所有虛擬機會導致 32GB 電腦負載下降。
我無法弄清楚這一點。我預計 32GB 負載與 8GB 負載相符。
更新 #1:內森 C
top - 16:19:54 up 8 days, 6:01, 1 user, load average: 14.33, 18.23, 18.07
Tasks: 135 total, 1 running, 134 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.5%us, 0.4%sy, 0.0%ni, 98.9%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st
Mem: 32938864k total, 29307380k used, 3631484k free, 331324k buffers
Swap: 4182436k total, 0k used, 4182436k free, 25330400k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8752 libvirt- 20 0 3170m 747m 6932 S 7 2.3 26:27.20 /usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name r -uuid ...
8720 libvirt- 20 0 3969m 928m 6936 S 3 2.9 76:17.66 /usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name m -uuid ...
8687 libvirt- 20 0 3315m 1.0g 6936 S 2 3.3 60:33.03 /usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name d -uuid ...
答案1
經過大量調查後,我現在發現了機器的問題所在。非常感謝那些提供幫助的人!
這裡有一個有用的網頁:http://itscblog.tamu.edu/improve-disk-io-performance-in-kvm/
基本上,我的實體主機有 SATA 磁碟,虛擬機器配置有 SATA 控制器和 SATA 磁碟。我不知道這意味著虛擬化子系統將呈現虛擬 SATA 而不是 SATA 直通。
解決方案是切換到 virtio 磁碟。這意味著虛擬機器現在意識到它們是虛擬化系統的一部分,並且會進行合作以獲得更好的效能。 (我想這就是這個意思)。
長話短說,始終將 virtio 用於虛擬機器上的磁碟和網路。
主機現在的平均負載約為 2-3,既快樂又涼爽。比之前的20-50好多了。