虛擬機器為什麼很慢:處理器、磁碟,還是超額配置
變慢有三個常見來源,各自在不同的地方顯現。在找到真正的來源之前就增加核心,通常只會讓情況更糟。
AtlasPVE ·
本條目涵蓋以下問題
- proxmox vm 效能很慢
- proxmox vcpu 超額配置
- 哪台 vm 在吃 cpu
- proxmox io delay 是什麼
- vm 要給幾個核心
虛擬機器變慢時,第一個反應是給它更多核心。這通常沒有幫助,有時甚至讓情況更糟。必須先分辨變慢的來源。
超額配置:vCPU 總數超過實體核心時
伺服器上分配給各虛擬機器的 vCPU,可以超過實體執行緒的數量。這很正常,通常也無害,因為虛擬機器不會全部同時執行。但如果它們同時滿載,就會開始排隊。從虛擬機器內部看,處理器在那一刻似乎很閒,但虛擬機器其實正在等待輪到自己。在這裡增加核心只會讓隊伍變長,而不會變短。
單一核心的瓶頸
有些工作會落在一個核心上並卡在那裡。在 8 核心的虛擬機器上,總使用率可能看起來很低,卻有一個核心一直處於滿載。在這裡增加核心不會改變任何事;解法是拆分工作,或改用單核心效能更強的配置。
等待磁碟
如果處理器圖表很平穩,虛擬機器卻仍然很慢,該看的地方就是磁碟。伺服器會另外量測等待資料所花的時間。當這個數值攀升時,問題不在運算而在等待;磁碟類型、快取設定,以及共用同一顆磁碟的其他虛擬機器都會產生影響。
排查的順序
先比較 vCPU 總數與實體執行緒數,看看是否有超額配置;接著查看每個核心的負載,看看是否有某個核心一直滿載;最後才查看磁碟等待時間。這三項量測都在主機端;從虛擬機器內部看,無法區分這三種狀態。
資料來源
Proxmox 官方文件。內容為英文,且在此主題上以官方文件為準。