目前有很多方法可以改善VMware Linux虛擬機(jī)的性能,包括對虛擬硬件進(jìn)行調(diào)整,以及更改默認(rèn)的軟件配置設(shè)置。
雖然在VMware管理程序上安裝Linux虛擬機(jī)很容易,但是默認(rèn)的、開箱即用的配置并不能充分發(fā)揮虛擬機(jī)的潛在的最大性能。不過,有一些辦法可以對其進(jìn)行優(yōu)化。
虛擬硬件
首要需要考慮的是虛擬硬件。VMware產(chǎn)品的每一個新版本都帶來了新的虛擬硬件版本,你應(yīng)該盡可能使用最新的硬件版本,因為和大多數(shù)OS一樣,補(bǔ)丁和性能改進(jìn)是增量地添加的。
半虛擬化硬件
半虛擬化硬件本質(zhì)上是一個硬件的軟件實(shí)現(xiàn)。例如,網(wǎng)絡(luò)控制器VMXNET 3完全是半虛擬化的,它直接與硬件進(jìn)行對話,從而提供更好的性能,繞過了虛擬化層,降低了性能損耗。你還可以對SCSI控制器進(jìn)行半虛擬化。
▲自定義虛擬硬件規(guī)范
半虛擬化硬件帶來了顯著的性能提升,因此這個辦法可以一用。但是,有些比較老的Linux平臺不支持半虛擬化硬件,應(yīng)根據(jù)自身情況進(jìn)行選擇。
未使用硬件
管理員經(jīng)常會忘記的一件事就是未使用的硬件。默認(rèn)情況下,Linux虛擬機(jī)使用的是你可能永遠(yuǎn)都不會使用的硬件,比如軟盤驅(qū)動器、CD-ROM和聲卡。
大多數(shù)大型環(huán)境會自動刪除軟盤驅(qū)動器。誠然,它不會在較小的區(qū)間中釋放大量的RAM,但在中等規(guī)模的區(qū)間中,這可以省去相當(dāng)數(shù)量的內(nèi)存資源。
您還應(yīng)該刪除這些無關(guān)的硬件,作為物理-虛擬清理的一部分。被清理干凈的虛擬機(jī)通常會表現(xiàn)得更好。
默認(rèn)設(shè)置
當(dāng)你構(gòu)建一個虛擬機(jī)時,最好不要使用VMware的默認(rèn)設(shè)置,因為這些設(shè)置非常保守。我建議查看供應(yīng)商文檔,以了解合理的默認(rèn)設(shè)置。更好的是,開發(fā)一個提供小、中、大選項的服務(wù),這樣它就可以為每個參與者提供一致性。然后,選擇正確的大小。在磁盤大小方面,這一點(diǎn)尤為重要,因為它很難擴(kuò)展引導(dǎo)卷。
安裝GUI
還有其他一些組件可以進(jìn)行調(diào)整以提高性能,一些Linux供應(yīng)商比其他廠商做得更好。要考慮的最重要的項目是運(yùn)行級別。RedHat和CentOS默認(rèn)安裝了GUI。我建議您避免安裝GUI,除非它是絕對必要的。如果不安裝GUI,則使用較少的CPU和RAM,并且管理的應(yīng)用程序更少。這可以節(jié)省大量的資源。但是,一些服務(wù)器可能需要一個特定應(yīng)用程序的GUI。如果您的Linux虛擬機(jī)已經(jīng)安裝了GUI,可能就需要關(guān)閉GUI使用的系統(tǒng)。使用下面的命令將系統(tǒng)引導(dǎo)到網(wǎng)絡(luò)命令行:
systemctl set-default multi.user
如果管理員不能沒有GUI,重復(fù)這個過程,并使用如下所示的命令:
Systemctl set-default graphical.target
還可以通過鍵入init 5來啟動GUI。這將在該會話期間加載GUI。
Open-VM-Tools與VMware工具
傳統(tǒng)上,管理員需要做的第一件事就是安裝VMware工具,但是最近,大多數(shù)供應(yīng)商已經(jīng)轉(zhuǎn)向了開放的虛擬機(jī)工具(OVT),這是一個VMware工具的開源版本。
大多數(shù)Linux供應(yīng)商,包括Red Hat和Canonical,都將OVT作為默認(rèn)的Linux安裝的一部分。如果安裝了OVT,請確保它沒有被VMware工具覆蓋。如果您確實(shí)在OVT上安裝了VMware工具,那么OS供應(yīng)商可能會考慮一個不支持的配置。
系統(tǒng)時間
管理員常常忽略系統(tǒng)時間。默認(rèn)情況下,時間是從系統(tǒng)管理程序中獲取的。多年來,系統(tǒng)時間最佳習(xí)慣做法已經(jīng)發(fā)生了變化,但目前的最佳辦法是確保Linux 虛擬機(jī)和主機(jī)都能直接與網(wǎng)絡(luò)上的網(wǎng)絡(luò)時間協(xié)議(NTP)主機(jī)同步。如果所有的網(wǎng)絡(luò)設(shè)備都使用相同的NTP服務(wù)器,那么所有的服務(wù)器都將是同步的。正確的系統(tǒng)時間對于運(yùn)行有效的網(wǎng)絡(luò)是至關(guān)重要的。
內(nèi)存管理
運(yùn)行Java的Linux 虛擬機(jī)有一個已知的內(nèi)存管理問題,它會嚴(yán)重影響性能。根據(jù)客戶Java中的VMware氣球驅(qū)動程序的分配和重新聲明內(nèi)存的方式,性能將是次優(yōu)的。
VMware工具或OVT驅(qū)動程序試圖回收未使用的內(nèi)存,但是Java希望使用它最初分配的內(nèi)存。為了避免這個問題,請預(yù)先分配虛擬機(jī)的內(nèi)存。這可能違背了讓VMware管理分配給VM的內(nèi)存的傳統(tǒng)認(rèn)知,但是實(shí)現(xiàn)最優(yōu)的Java虛擬機(jī)性能是必要的。
磁盤配置
最后,看看磁盤配置。在虛擬環(huán)境中,磁盤擴(kuò)展易于管理,但最佳辦法是將系統(tǒng)磁盤與數(shù)據(jù)磁盤分離。