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