2014年1月20日 星期一

VirtualBox 「虛擬機」的最佳化設定組態

這篇文章寫了很久,原本是針對在 VirtualBox 虛擬機中安裝 Windows XP 而寫的。隨著資料的收集、測試、整理,最近將本文目標定在單純的「虛擬機」設定最佳化,不再鎖定特定作業系統。
  Linux 的使用者都可在 Linux 環境中,找到「跨平台的軟體」如:Mozilla 的 Firefox 和 Thunderbird、Google Chrome、Filezilla 等,或是「相容、替代」的對應軟體。但是,在學習另一個作業系統或是執行限定在某個作業系統環境的軟體,上述的替代方案就不一定可行了。
  VirtualBox 是筆者比較推薦的「虛擬機」系統,主因是目前由社群維護,雖說效能並非最佳,但是開發過程由社群主導,讓人使用上不用擔心將來會有何變化。『VirtualBox 虛擬機』的最佳設定值如下表:(未更改者維持預設值)
裝 置項 目次 項 目建 議 較 佳 設 定 (以 Windows XP 為例)
一般基本類型Microsoft Windows  (視作業系統選擇,或 Other)
版本Windows XP  (視作業系統選擇,注意 32 或 64 位元)
進階共用剪貼簿預設為【停用】,視需要啟用,較不佔用系統資源。
拖放預設為【停用】,視需要啟用,較不佔用系統資源。
系統主機板基本記憶體512MB (以 Windows XP 為例,除非特別需求 1GB 已足夠)
指標裝置PS/2 滑鼠 (『USB 平板』相容度較高,但佔系統資源)
延伸功能啟用 I/O APIC (有設多 CPU 時再開啟)
處理器處理器2 顆  (但不要超過實體 CPU 的總核心數)
執行上限100%  (若無未分配核心,調降以維持主機效能)
延伸功能分配之記憶體未超過 4G,不需啟用 PAE。
加速硬體虛擬化預設應為全部啟用,若硬體未支援(有些 BIOS 預設關閉),虛擬機開啟後,也會自動關閉。
顯示視訊視訊記憶體8 MB
監視器數量1 個
延伸功能預設為【關閉】,視需要啟用,較不佔用系統資源。
遠端顯示預設為【關閉】,視需要啟用,較不佔用系統資源。
視訊擷取預設為【關閉】,視需要啟用,較不佔用系統資源。
存放
裝置
IDE 控制器預設類型為【PIIX4】,【使用主機 I/O 快取】
SATA 控制器預設類型為【AHCI】。啟用【使用主機 I/O 快取】增加效能。(註一
虛擬硬碟「檔案類型」預設【VDI】(虛擬硬碟為「主機」檔案)
「存放位置」設為【固定大小】效能較高,但預設【動態配置】較省「主機」硬碟空間。
「硬碟大小」設為 20 GB 已足夠一般使用所需。
音效
預設【開啟】,若不需要可關閉,較節省系統資源。
網路介面卡1啟用預設【開啟】,不啟用則無網路可用。
附加到預設【NAT】,有實體的 IP 分享器時,設為【橋接介面卡】可增加效能。
名稱只有「NAT」與「通用驅動程式」兩模式不用選,其它視將『附加』的網路卡選擇。(註二
進階→
介面卡類型
註三
半虛擬化網路 (virtio-net)(效能最高)
Intel PRO/1000 MT Desktop (82540EM)(驅動易取得)
PCnet-FAST III (AM97C973)(相容度較高)
進階→
混合模式
預設【拒絕】。
進階→
MAC 位址
VirtualBox 自動產生,按右方的『  』可更換。
進階→
線路已連接
☑:網路線接上。☐:網路線未接。
介面卡2~4預設為【關閉】,視需要啟用,較不佔系統資源。
序列埠<預設>預設為【關閉】,若無需求,不需啟用,較不佔系統資源。
USB<預設>啟用 USB 2.0 (EHCI) 控制器註四
共用
資料夾
註五可藉由本功能使用「主機電腦」的硬碟空間,減少「虛擬機」硬碟大小的需求。

註一若將硬碟接在『SATA 控制器』時,有些系統(如:Windows XP)並未內建驅動程式。SATA 控制器(IntelⓇ ICH8M-E/M SATA AHCI Controller)的驅動程式可到 Intel 下載中心,點『生產中的產品』,在『1.選取產品系列』選『軟體產品』,接著在『2.選取產品線』選『晶片組軟體』,最後在『3.選取產品名稱』選『IntelⓇ 快速儲存技術 (IntelⓇ RST)』,根據作業系統下載適當的驅動程式。
註二附加到【橋接介面卡】時,若電腦有一張以上的網路卡,要選對網卡「虛擬機」的網路才會正確通往「網際網路」。
註三開放原始碼的作業系統,多直接支援這幾張網卡,只要在「虛擬機」的設定選擇更換網卡即可。部份系統,如:Windows XP 無內建之驅動程式,讀者要另外去下載才可。
  • Intel 網卡可到 Intel 下載中心,點『停止生產的產品』,在『1.選取產品系列』選『網路連接』,接著在『2.選取產品線』選『IntelⓇ 桌上型介面卡』,最後在『3.選取產品名稱』選『IntelⓇ PRO/1000 MT 桌上型介面卡』,根據作業系統下載適當的驅動程式。
  • 而『半虛擬化網路 (virtio-net)』,只有一些『社群提供的驅動程式』,至於用起來效能如何,筆者尚未測試過。
註四需在主機電腦加裝 Oracle VM VirtualBox Extension Pack 才有此功能。
註五在「虛擬機」的系統中需加裝 Guest Additions「虛擬機」增效程式,才可用「共用資料夾 。

注意VirtualBox 的設定畫面中,有關數字設定都有一條(或)的參考線,其中『 綠色 』表示安全區域,『 紅色 』為非建議數值。設定時保持指示該數值之箭頭,位於『 綠色 』區域。

後記:

  • 2014-8-1:補充「儲存裝置」的說明,增加「虛擬硬碟」的設定說明。

已測試版本:

  • Fedora: 14, 18 ~ 20
  • VirtualBox: 4.1.x, 4.2.x, 4.3.6

5 則留言:

  1. 感謝您的分享,我自己的使用上如果是windowsXP, 因為只拿來VPN回公司上網用(要綁AD及特定防毒軟體)所以只給192MB就很好用了.
    工作上則是使用Windows 7, 給2GB.
    我自己的經驗是VirtualBox的效能並不輸給VMWare, 包括目前的版本10, 而VMWare 在VM儲存狀態方式來關閉時的速度上,以前一直大輸VirtualBox, 到了版本10終於有大幅改善(主要是一些參數設定的調整).
    而網路上文章大都說VMWare效能較好,我發現是因為VMWare的模擬比較徹底些(一時無法三言二語說明),其中對於時脈的掌控比較好,導致在裡面跑效能數據時比較漂亮, 當然VMWare的各方面支援較完整也是優點之一。

    回覆刪除
    回覆
    1. 感謝您的補充資料,看回覆內容您應該也是「虛擬機」的用家。
      1. Windows XP 和 Windows 7 配置的記憶體,與使用時的軟體有絕對的關係,您的經驗對類似的使用者而言,一定很有幫助。
      2. VirtualBox 並非最佳,是綜合網路上測試資料而得。我的評估較注重「虛擬網路」與「模擬 CPU」的效能,畢竟 VMWare 是可以當伺服器來用的。但是,一般使用者的詢問,我多推薦使用 VirtualBox。

      刪除
    2. 關於「虛擬機」記憶體是否足夠,我採用的判定原則為「虛擬機」是否大量使用「虛擬記憶體」(即把硬碟的空間模擬成記憶體)。觀察使用「虛擬機」時的硬碟存取燈號,若未有資料存取時,而硬碟有大量存取,就是「虛擬機」配置的記憶體不足。

      刪除
  2. 您好,請問若是兩台VM要分別建立SSL VPN的tunnel,是否可行?我測試發現只要第二條tunnel的認證通過後,之前另一台VM建的tunnel就會斷線!不知是否與VirtualBox的參數設定有關?或者用VM的話都無解?

    回覆刪除
    回覆
    1. 與你在 VM 所設定的「網路卡」附加有關,
      若 VPN 伺服器只允許一個 IP 只能建立一條 VPN tunnel,
      那 VM 的網卡附加設定,只好用【橋接介面卡】。

      刪除

感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)