當(dāng)你聽(tīng)到“性能瓶頸”這個(gè)詞的時(shí)候,通常出現(xiàn)在腦海中的都是CPU、內(nèi)存、磁盤(pán)和網(wǎng)絡(luò)。那些都是容易出現(xiàn)性能瓶頸的地方,但是并不是只有那些地方才是性能瓶頸的藏身之所。 這份列表還列出了其他6個(gè)值得調(diào)查的地方,它們也都有可能影響到系統(tǒng)性能。有時(shí)候,只要知道該檢查哪里或許就能避免讓你自己陷入手忙腳亂的境地。
注意:下表中所列出的項(xiàng)目不分先后次序。
1、CPU。CPU是計(jì)算機(jī)的大腦,這里是運(yùn)算和指令操作的地方。CPU可以處理數(shù)百萬(wàn)計(jì)的運(yùn)算和指令,但是當(dāng)這些運(yùn)算的數(shù)量超過(guò)它的能力范圍時(shí),性能就會(huì)受到影響。如果CPU的資源占用率一直保持在75%以上,那么整個(gè)系統(tǒng)的性能就會(huì)減慢。CPU需要為突發(fā)性活動(dòng)留有空間,因?yàn)橛袝r(shí)那些負(fù)載會(huì)令系統(tǒng)資源占用率在短期內(nèi)飆升至100%。CPU的負(fù)荷是最常見(jiàn)的性能瓶頸源頭。
2、內(nèi)存。內(nèi)存中的拇指法則是“增加更多的內(nèi)存”。當(dāng)性能問(wèn)題指向內(nèi)存的時(shí)候,通常公認(rèn)的解決問(wèn)題的辦法就是增加更多的內(nèi)存。然而,這種做法只能應(yīng)付一時(shí)只需。指向內(nèi)存的性能瓶頸通常是因?yàn)樵O(shè)計(jì)不佳的軟件或其他系統(tǒng)漏洞造成的。解決內(nèi)存性能問(wèn)題的關(guān)鍵是在添加更多的RAM之前找出癥狀背后的真正病因。
3、存儲(chǔ)設(shè)備。磁盤(pán)速度、RAID類(lèi)型、存儲(chǔ)類(lèi)型和控制器技術(shù)都會(huì)影響到所謂的磁盤(pán)I/O。磁盤(pán)I/O是系統(tǒng)管理員和用戶(hù)最有可能擔(dān)心出現(xiàn)性能瓶頸的來(lái)源。即使使用目前最先進(jìn)的磁盤(pán)技術(shù),也有可能遇到現(xiàn)實(shí)中和物理上的性能限制。在合并和分割磁盤(pán)上的工作負(fù)載時(shí),最好按照最佳實(shí)務(wù)來(lái)做。與借貸存儲(chǔ)一樣,本地磁盤(pán)的速度仍然比速度最快的SAN還要快。
4、網(wǎng)絡(luò)。網(wǎng)絡(luò)也是最常見(jiàn)的性能瓶頸來(lái)源之一,但是性能瓶頸出現(xiàn)在這里的概率并不高。除非有網(wǎng)絡(luò)組件硬件出現(xiàn)故障,比如交換機(jī)接口損壞、線纜損壞、網(wǎng)卡故障或路由器配置出現(xiàn)問(wèn)題,否則你還是應(yīng)該到別的地方去查找網(wǎng)絡(luò)性能瓶頸。所謂的網(wǎng)速被拖慢通常是因?yàn)檫@個(gè)列表中的其他9個(gè)項(xiàng)目造成的。
5、應(yīng)用。雖然沒(méi)有一位應(yīng)用開(kāi)發(fā)者愿意聽(tīng)到這種做法,但是有時(shí)候應(yīng)用軟件設(shè)計(jì)上的缺陷確實(shí)會(huì)讓它們看起來(lái)象是硬件故障造成的一樣。當(dāng)靜止的系統(tǒng)的性能突然明顯受到影響,而某一款打開(kāi)的應(yīng)用仍然可以順暢地運(yùn)行和關(guān)閉時(shí),那么基本上可以肯定問(wèn)題就出在那款應(yīng)用上。當(dāng)出現(xiàn)性能問(wèn)題的時(shí)候,它就會(huì)變成系統(tǒng)管理員與開(kāi)發(fā)員之間的一場(chǎng)戰(zhàn)役。兩方都想指責(zé)對(duì)方的不是。在費(fèi)了九牛二虎之力去檢查硬件性能瓶頸之后,最后的結(jié)論是:這都是應(yīng)用造成的。
6、惡意件。在已知的性能瓶頸問(wèn)題中,有很大一部分問(wèn)題是由病毒、木馬和間諜軟件造成的。當(dāng)這些惡意件令系統(tǒng)性能受到嚴(yán)重影響的時(shí)候,用戶(hù)們經(jīng)常會(huì)抱怨網(wǎng)絡(luò)、應(yīng)用或他們的電腦。那些性能殺手可能存在于一個(gè)或多個(gè)服務(wù)器系統(tǒng)中、用戶(hù)的工作站之中、或兩者之中都有。感染惡意件是很常見(jiàn)的,因此你必須采取多種保護(hù)措施來(lái)與它們對(duì)抗。殺毒軟件、反間諜軟件、本地防火墻、網(wǎng)絡(luò)防火墻以及定期安裝補(bǔ)丁將有助于保護(hù)你的系統(tǒng),從而避免因?yàn)樗鼈冊(cè)斐傻男阅芷款i。
7、工作負(fù)載。智能管理工作負(fù)載有助于避免因?yàn)楣ぷ髫?fù)載不均衡或負(fù)載均衡方案不恰當(dāng)導(dǎo)致的性能問(wèn)題。在一個(gè)出現(xiàn)了性能問(wèn)題的群集中添加另一個(gè)系統(tǒng)可以緩解壓力,但是這種做法更適用于虛擬環(huán)境而非物理環(huán)境。在這里,最好的建議是檢測(cè)所有性能的容量和性能,密切關(guān)注你得到的那些數(shù)據(jù)。移動(dòng)工作負(fù)載,添加新系統(tǒng),然后密切關(guān)注性能。
8、失效或老化的硬件。硬件越是老舊,它就越有可能出現(xiàn)問(wèn)題。有些硬件組件只能用茍延殘喘來(lái)形容,還有很多硬件隨時(shí)會(huì)引發(fā)各種問(wèn)題和令人難以捉摸的故障。造成系統(tǒng)重啟、數(shù)據(jù)丟失或性能瓶頸的硬件會(huì)令系統(tǒng)管理員生不如死,因?yàn)槟切┕收隙际遣豢深A(yù)測(cè)的。最好的做法是堅(jiān)持使用最新的硬件,使用備用硬件以及仔細(xì)地監(jiān)控你的系統(tǒng)。
9、文件系統(tǒng)。你知道你在文件系統(tǒng)上作出的選擇會(huì)對(duì)性能造成巨大的影響嗎?事實(shí)確實(shí)如此。有些文件系統(tǒng)比如JFS幾乎不會(huì)耗用CPU資源。XFS的可擴(kuò)展性極高,性能也很強(qiáng)。NTFS是一種可恢復(fù)的高性能文件系統(tǒng)。新的EXT4文件系統(tǒng)可以高效支持非常大的文件。每一種文件系統(tǒng)都有其用途,如果用錯(cuò)了地方,就會(huì)導(dǎo)致災(zāi)難性的后果。因此,在選擇文件系統(tǒng)的種類(lèi)時(shí),請(qǐng)三思啊。最好是根據(jù)具體的工作選擇最佳的文件系統(tǒng)。沒(méi)有一種文件系統(tǒng)是適用于任何工作的。
10、技術(shù)。你為基礎(chǔ)設(shè)施選擇的技術(shù)會(huì)對(duì)系統(tǒng)性能造成重要的影響。例如,如果你將所有的服務(wù)都放在虛擬基礎(chǔ)設(shè)施技術(shù)之上,那么你很可能會(huì)遇到一些從未在物理系統(tǒng)上見(jiàn)過(guò)的性能問(wèn)題?;蛘撸行┕ぷ髫?fù)載是需要在虛擬技術(shù)上才能正常完成的。例如,LAMP(Linux、Apache、MySQL、PHP)工作負(fù)載在虛擬機(jī)上運(yùn)行得更好一些,而集裝箱型的虛擬化(OpenVZ、Parallels、Solaris Zones)則適用于任何類(lèi)型的工作負(fù)載。