在如今越來(lái)越虛擬化的環(huán)境下,服務(wù)器性能問(wèn)題比以往任何時(shí)候都要來(lái)得常見(jiàn)、嚴(yán)重。咨詢公司Glass House Technologies的虛擬化服務(wù)主管Erwin Vollering說(shuō):“在物理環(huán)境下,每臺(tái)服務(wù)器都有其各自的SCSI控制器、磁盤(pán)、內(nèi)存和處理器等部件。而現(xiàn)在,你在一個(gè)物理主機(jī)上的共享環(huán)境中運(yùn)行10至15臺(tái)服務(wù)器,這些服務(wù)器同時(shí)處理同樣的任務(wù),使用同樣的資源,一旦物理主機(jī)出現(xiàn)故障,統(tǒng)統(tǒng)崩潰。”
那么,你如何著手診斷這些問(wèn)題,以便解決問(wèn)題、繼續(xù)恢復(fù)運(yùn)行?下面幾個(gè)貼士可以幫你輕松入手。
確保引起問(wèn)題的是服務(wù)器
ExtraHop公司的首席執(zhí)行官兼創(chuàng)始人Jesse Rothstein表示,許多似乎來(lái)自服務(wù)器層面的性能問(wèn)題常常是由網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)和存儲(chǔ)系統(tǒng)等層面的問(wèn)題引起的。Rothstein說(shuō):“最終,你需要通盤(pán)考慮和分析這些問(wèn)題,不過(guò)實(shí)際做起來(lái)很棘手。”
Fluke Networks公司的全球產(chǎn)品營(yíng)銷(xiāo)經(jīng)理DanKlimke說(shuō):“要是出現(xiàn)了延遲問(wèn)題,我們需要看一下這個(gè)延遲最先出現(xiàn)在服務(wù)器,還是出現(xiàn)在網(wǎng)絡(luò)或客戶端層面。跟蹤分析癥狀需要耗費(fèi)很多時(shí)間。”
IT部門(mén)經(jīng)常把多臺(tái)服務(wù)器連接起來(lái),為最終用戶提供資源(如應(yīng)用程序)。Klimke說(shuō):“你可能有一臺(tái)基于Web的前端服務(wù)器與應(yīng)用服務(wù)器進(jìn)行對(duì)話,而該應(yīng)用服務(wù)器與數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行對(duì)話,所有這些服務(wù)器通過(guò)某種網(wǎng)絡(luò)連接起來(lái)。所以在排除故障時(shí),第一步就是確保問(wèn)題確實(shí)來(lái)自某臺(tái)服務(wù)器,而不是來(lái)自網(wǎng)絡(luò)。”
搞定繁瑣累贅的應(yīng)用程序
某個(gè)應(yīng)用程序引起服務(wù)器反應(yīng)遲緩或干脆停機(jī),這完全有可能。Klimke說(shuō):“應(yīng)用程序可能過(guò)于‘繁瑣累贅’(chatty)——也就是說(shuō),這類(lèi)應(yīng)用程序?qū)懭霑r(shí)不是使用含有大量數(shù)據(jù)的大型幀、發(fā)送數(shù)量比較少的幀,而是使用最小的幀,因而到頭來(lái)只好來(lái)回頻繁地發(fā)送大量數(shù)據(jù),才能完成較大的幀所能完成的任務(wù);相比之下,使用大型幀速度快得多、效率高得多。”
比如說(shuō),來(lái)自應(yīng)用程序的某個(gè)命令可能發(fā)送到服務(wù)器,導(dǎo)致服務(wù)器出現(xiàn)問(wèn)題。Klimke說(shuō):“看一下進(jìn)入到服務(wù)器的實(shí)際數(shù)據(jù)流量,就能查出數(shù)據(jù)包進(jìn)入到哪個(gè)環(huán)節(jié),服務(wù)器停機(jī)之前什么命令發(fā)送到了服務(wù)器。這勢(shì)必需要查看網(wǎng)絡(luò)連接上的實(shí)際數(shù)據(jù)流量,還需要能解讀就在服務(wù)器停機(jī)之前發(fā)送過(guò)去的命令和幀。”
清理骯臟的網(wǎng)絡(luò)
Rothstein表示,骯臟的網(wǎng)絡(luò)是指數(shù)據(jù)包出現(xiàn)丟失、重新排序或碎片的網(wǎng)絡(luò),它會(huì)拖累服務(wù)器的性能,因而引起服務(wù)器性能下降、服務(wù)器負(fù)載加大。
他解釋:“大多數(shù)人沒(méi)有認(rèn)識(shí)到,像TCP堆棧這些網(wǎng)絡(luò)協(xié)議堆棧既有快速路徑,又有慢速路徑。快速路徑很高效,針對(duì)它所要傳送的數(shù)據(jù)包進(jìn)行了優(yōu)化,可以按順序傳送下一個(gè)數(shù)據(jù)包。但是如果你無(wú)序傳送數(shù)據(jù)包,或者無(wú)意中將數(shù)據(jù)包由第四層往下傳送到第三層,服務(wù)器和操作系統(tǒng)就會(huì)耗費(fèi)大量的資源,用于重新組裝那些IP碎片,或者重新排序或重新組裝TCP片段。”
虛擬化可能會(huì)使這個(gè)問(wèn)題復(fù)雜化。Rothstein說(shuō):“你的虛擬機(jī)管理程序是個(gè)調(diào)度程序……跨所有運(yùn)行中的不同虛擬機(jī)和訪客操作系統(tǒng)共享處理器時(shí)間;如果從一個(gè)虛擬機(jī)切換到另一個(gè)虛擬機(jī),難免會(huì)出現(xiàn)延遲。要是配置有誤,網(wǎng)絡(luò)數(shù)據(jù)包就會(huì)出現(xiàn)延遲,以至于被底層網(wǎng)絡(luò)堆棧丟棄;一旦你達(dá)到引爆點(diǎn),性能衰減不僅僅顯而易見(jiàn),還會(huì)帶來(lái)災(zāi)難性后果。”
使用監(jiān)控工具
Rothstein表示,無(wú)論是執(zhí)行SNMP輪詢來(lái)記錄服務(wù)器健康指標(biāo)的自動(dòng)化第三方工具,還是比較簡(jiǎn)單的免費(fèi)開(kāi)源工具,你都要充分利用監(jiān)控工具。
Vollering表示,如果你在使用虛擬化服務(wù)器,監(jiān)控工具顯得尤為重要。他表示,VMware、微軟和思杰這三大虛擬化技術(shù)提供商都提供優(yōu)秀的監(jiān)控工具。他說(shuō):“這些工具可以告訴你什么方面在給你的環(huán)境施加壓力,無(wú)論是處理器使用率、內(nèi)存使用率還是磁盤(pán)使用率。”
Vollering表示,即使那些工具可供使用、部署到位,但是許多公司還是往往要么不知道自己可以使用它們,要么不知道如何使用。此外,這些工具會(huì)帶來(lái)洪水般的信息和警報(bào)。他說(shuō):“你可能得花一整天的時(shí)間來(lái)查閱各種圖表。”
那么,怎樣才能最有效地利用這些工具呢?Vollering說(shuō):“仔細(xì)閱讀使用手冊(cè),針對(duì)自己的環(huán)境合理配置工具。那樣一來(lái),要是出現(xiàn)了警報(bào),你就知道需要探究警報(bào),而不是由于工具仍采用默認(rèn)的閾值進(jìn)行配置而面臨洪水般的警報(bào)。”
檢查服務(wù)器的物理資源
CDW公司的內(nèi)部解決方案架構(gòu)師KellySather表示,一旦你查明了某個(gè)性能問(wèn)題來(lái)自服務(wù)器層面,就要仔細(xì)檢查這臺(tái)問(wèn)題服務(wù)器的物理資源。他說(shuō):“最好的情況是,只要添加另一個(gè)處理器或添加更多內(nèi)存這么簡(jiǎn)單。”
Fluke Networks公司的全球產(chǎn)品營(yíng)銷(xiāo)經(jīng)理Dan Klimke補(bǔ)充說(shuō):“務(wù)必要看一下你的處理器利用率是不是因許多進(jìn)程而過(guò)高。我們發(fā)現(xiàn),許多問(wèn)題的出現(xiàn)完全歸因于磁盤(pán)塞滿了。”
確保服務(wù)器勝任工作
Sather表示,就因?yàn)槟愕挠布c新安裝的或升級(jí)的應(yīng)用程序兼容,并不意味著這個(gè)應(yīng)用程序就會(huì)順利運(yùn)行。他說(shuō):“你服務(wù)器中的資源需要與它要處理的負(fù)載相稱。比如說(shuō),有人向遷移到Exchange2010,于是遷離在配備24GB內(nèi)存的雙處理器雙核系統(tǒng)上順暢運(yùn)行的舊版本Exchange。但是由于Exchange2010是更耗費(fèi)資源的系統(tǒng),他們事后才發(fā)現(xiàn)該系統(tǒng)在舊硬件上無(wú)法運(yùn)行。”
校正和調(diào)整負(fù)載
多個(gè)虛擬服務(wù)器帶來(lái)的負(fù)載可能遠(yuǎn)遠(yuǎn)超出物理服務(wù)器的處理能力范圍。咨詢公司Glass House Technologies的虛擬化服務(wù)主管Erwin Vollering說(shuō):“你要知道自己的局限性。如果你在處理月度財(cái)務(wù)合并數(shù)字的同時(shí)拍攝快照,你的存儲(chǔ)系統(tǒng)就無(wú)力同時(shí)處理所有那些事務(wù)。”
實(shí)時(shí)遷移虛擬機(jī)
CDW公司的內(nèi)部解決方案架構(gòu)師KellySather表示,隨著工作負(fù)載加大、虛擬機(jī)數(shù)量激增,你可能會(huì)發(fā)現(xiàn)需要把一個(gè)引起問(wèn)題的虛擬機(jī)遷移到另一個(gè)主機(jī)上,或者把“正常的”虛擬機(jī)卸載到另一個(gè)主機(jī)上,以便為需要資源的虛擬機(jī)騰出資源。VMware的vMotion和微軟的Hyper-V(以及其他技術(shù))都讓你可以將虛擬機(jī)實(shí)時(shí)遷移到其他主機(jī)上,根本不需要連接到最終用戶。