細(xì)數(shù)十個最令人頭疼的性能瓶頸
原創(chuàng)【51CTO 11月16日外電頭條】當(dāng)你聽到“性能瓶頸”這個名詞,馬上出現(xiàn)在你腦海中的形象應(yīng)該是CPU、內(nèi)存、磁盤和網(wǎng)絡(luò)。不可否認(rèn),這些是尋找性能問題所在很好的出發(fā)點,但是它們并不是所有性能問題唯一的聚集點。以下我們將列出另外六個問題可能潛在的地方,當(dāng)你在出現(xiàn)性能故障的時候就可以對其進(jìn)行一一排除。有時候,知道問題的根源所在可以很好地防止你的個人系統(tǒng)崩潰。
請注意,以下排序不分先后。
51CTO推薦專題:Linux監(jiān)控工具的展覽館
1.CPU
CPU是電腦進(jìn)行計算和指令操作的中樞。
CPU可以處理數(shù)以百萬計的計算和指令,但是在這些操作超過負(fù)荷的時候,它的性能可能就會受到影響。當(dāng)CPU支持大于75%的運算的時候,整個系統(tǒng)的運行速度就會減緩。CPU需要一些空間來承載不定時的數(shù)據(jù)沖擊,在這個時候,工作負(fù)載可能會在很短的時間內(nèi)達(dá)到100%。CPU負(fù)載是性能瓶頸的一個常見來源。
推薦閱讀:Linux系統(tǒng)監(jiān)控工具之vmstat詳解
2.內(nèi)存
關(guān)于內(nèi)存的常規(guī)經(jīng)驗法則是“增加再增加”。當(dāng)性能問題指向內(nèi)存的時候,一般的共識是,增加更多的內(nèi)存。不過,這種做法只能在短期內(nèi)有效。其實,當(dāng)性能瓶頸指向內(nèi)存的時候,往往是因為欠缺的軟件設(shè)計(內(nèi)存泄露)或者其它的系統(tǒng)缺陷,只不過其表現(xiàn)為內(nèi)存問題。解決內(nèi)存性能問題的關(guān)鍵在于要在嘗試增加內(nèi)存之前找到真正的問題根源所在。
相關(guān)閱讀:Linux系統(tǒng)內(nèi)存監(jiān)控全面講解:free命令
3.存儲
磁盤速度、RAID類型、存儲類型和控制器技術(shù)這些結(jié)合在一起就產(chǎn)生了我們所認(rèn)識的磁盤I/O。磁盤I/O是系統(tǒng)管理員和用戶們普遍焦慮的性能問題來源。這里有實際和物理的性能限制,即使是使用現(xiàn)在***的磁盤技術(shù)也不例外。當(dāng)在磁盤上結(jié)合和分離工作負(fù)載的時候,請使用***做法。
推薦閱讀:Linux系統(tǒng)監(jiān)控之磁盤I/O篇
4.網(wǎng)絡(luò)
網(wǎng)絡(luò)往往被大家認(rèn)為是一種常見的性能瓶頸來源,但是事實上并非如此。除非有一個網(wǎng)絡(luò)組件發(fā)生硬件故障,比如交換機(jī)端口損壞、電纜損壞、網(wǎng)卡或者路由器配置出錯。所以在你懷疑“網(wǎng)絡(luò)”性能出現(xiàn)問題的時候***檢查一下其它地方。網(wǎng)絡(luò)上感知到的運行緩慢問題通常應(yīng)該指向本列表中的其它九項。
推薦閱讀:Cacti網(wǎng)絡(luò)監(jiān)控工具完全指南
5.應(yīng)用程序
雖然沒有應(yīng)用程序開發(fā)人員愿意承認(rèn),但是劣質(zhì)編碼的應(yīng)用程序成為了硬件問題的導(dǎo)火線。處于靜止?fàn)顟B(tài)的系統(tǒng)將嚴(yán)重受到應(yīng)用程序啟動并且沒有任何跡象表明的關(guān)閉的影響。這是一場在系統(tǒng)管理員和開發(fā)人員之間一直在持續(xù)的斗爭。他們都聲稱是對方的責(zé)任。不過,在進(jìn)行了無數(shù)小時的硬件性能測試之后,人們發(fā)現(xiàn),問題出在應(yīng)用程序。
推薦閱讀:運維監(jiān)控連載:開源監(jiān)控利器nagios實戰(zhàn)全解
6.惡意軟件
病毒、木馬和間諜軟件在由于惡意軟件導(dǎo)致的性能問題中占很大一部分。在出現(xiàn)問題的時候,用戶大多會抱怨網(wǎng)絡(luò)、應(yīng)用程序或者他們的計算機(jī)。這些性能殺手可能隱匿在一個或者多個服務(wù)器系統(tǒng)中、用戶工作站中或者兩者的結(jié)合體中。惡意軟件的感染十分普遍,因此,你必須采取全方位的防御措施來阻止他們。殺毒軟件、反間諜軟件、本地防火墻和定期補(bǔ)丁能夠幫助你保護(hù)系統(tǒng)并防止由此產(chǎn)生的性能問題。
推薦閱讀:五種惡意軟件監(jiān)測方法
7.工作負(fù)載
智能工作負(fù)載管理可以幫助你防止由于欠缺平衡的工作負(fù)載或者負(fù)載平衡計劃設(shè)計不周而引起的性能問題。把另外一個系統(tǒng)添加到有問題的集群中去可以緩解它的工作壓力。但是在虛擬環(huán)境下的物理機(jī)上似乎更容易完成這一操作。***的建議是衡量所有系統(tǒng)的工作能力和性能并對報告給你的數(shù)據(jù)進(jìn)行分析。轉(zhuǎn)移工作負(fù)載,加強(qiáng)系統(tǒng)并小心留意它的表現(xiàn)。
推薦專題:Linux 集群技術(shù)專題
8.故障或者過期的硬件
舊的硬件很容易出故障。硬件問題可能會導(dǎo)致系統(tǒng)重啟、數(shù)據(jù)丟失,它的不可預(yù)測性讓系統(tǒng)管理員們叫苦不迭。阻止這類悲劇***的辦法是保持硬件更新頻率,使用冗余硬件,并對你的系統(tǒng)進(jìn)行仔細(xì)的監(jiān)控。
編輯推薦:十大x86服務(wù)器常見故障——系統(tǒng)篇 | 明明白白你的Linux服務(wù)器——故障篇
9.文件系統(tǒng)
你是否知道你對文件系統(tǒng)的選擇可能會對性能產(chǎn)生深遠(yuǎn)的影響?答案是肯定的。有些文件系統(tǒng),比如JFS,可能只占用很少的CPU。XFS擁有很高的可擴(kuò)展性和性能。NTFS是一個可恢復(fù)的高性能文件系統(tǒng)。新的EXT4文件系統(tǒng)能夠有效地支持龐大的文檔。每種文件系統(tǒng)都有它自己的針對性,如果不能為一個應(yīng)用程序選擇正確的文件系統(tǒng)就可能導(dǎo)致災(zāi)難性的后果。慎重考慮你的文件系并做出適合你工作的正確選擇。
推薦閱讀:Linux文件系統(tǒng)保護(hù)***實踐:Tripwire
10.技術(shù)
你為自己的基礎(chǔ)架構(gòu)所選擇的技術(shù)在性能方面扮演著非常重要的角色。比如,如果你的服務(wù)致力于一個虛擬架構(gòu)技術(shù),你可能會遇到在物理系統(tǒng)中不曾見過的性能問題。另外,有些工作負(fù)載可以在虛擬技術(shù)中生機(jī)勃勃。例如,LAMP(Linux、Apache、MySQL、PHP)工作負(fù)載比在KVW上的速度更快。不過,集裝箱式的虛擬化(OpenVZ、Parallels、Solaris Zones)擁有適合任何工作負(fù)載的性能。
原文:Uncover Your 10 Most Painful Performance Bottlenecks
作者:Kenneth Hess
【編輯推薦】