VMware虛擬機器磁碟操作佔用過高問題

2022-11-24 22:31:20 字數 1239 閱讀 5775

使用虛擬機器執行linux圖形桌面時,經常因為一個網頁或者編譯某個程式就導致虛擬機器卡死,甚至影響主機使用。明明主機記憶體有8g,分配給虛擬機器的記憶體也不少,為什麼就這麼卡頓。開啟主機上的工作管理員檢視發現磁碟佔用百分百,原來是磁碟讀寫的鍋。但是我就覺得特別好奇,為什麼在虛擬機器中開啟一個網頁會導致長時間的磁碟操作佔有百分百,甚至把主機都卡死。

在查了許多資料後,有建議換成ssd的,有建議裝雙系統的,有建議用遠端桌面的等等,嘗試過幾乎所有解決方案(除了換ssd和雙系統),這些方案几乎都沒有什麼效果。最後綜合了各方面的資料我發現導致磁碟i/o操作的主要原因有以下幾點:

1.vmware會在使用的時候統計記憶體中的資料的使用情況,然後將不常用的一些記憶體資料存入本地磁碟從而釋放出空間節省記憶體的使用。這個對於記憶體較小的機子可能有一些幫助,但是記憶體交換也會帶來大量的i/o操作從而導致效能下降

2.vmware從10版本開始,在執行每個虛擬機器的時候回預設在硬碟上為相應的虛擬機器生成一個記憶體實時映象檔案用於儲存虛擬機器記憶體的改變,這就導致了虛擬機器在使用的時候不斷的在對硬碟發生i/o操作,這個是及其耗費時間,從而使得虛擬機器小小的操作卻導致了長時間的卡機甚至是宕機的情況的發生。對於使用ssd的電腦還好,對於大多數在機械硬碟上進行這些操作的使用者來說簡直是災難。不過幸好解決的辦法也比較簡單。

解決辦法

針對第一點可以點選 虛擬機器/設定/選項/高階 將“禁用記憶體頁面修整”勾選起來禁止這一部分的記憶體交換 

針對第二種情況,將實時記憶體映象讀寫預設關閉,開啟c:\programdata\vmware\vmware workstation下的settings.ini檔案,在檔案中加入下面這一條命令:

mainmem.usenamedfile = "false"

建議大家在修改前先儲存一份原先的設定,然後再進行修改。如果遇到許可權問題可以右鍵點選‘屬性’,然後選擇‘安全’一欄

選擇everyone一欄,然後點選下面的編輯

將‘允許’那一列中的完全控制許可權賦予每個使用者,然後儲存修改後退出即可,修改完settings.ini檔案後再將其修改回原先的設定即可。這下磁碟佔用過大的問題就可以得到解決了。