




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
系統(tǒng)性能分析和優(yōu)化童劍2006/03/21msn:she11c0de@系統(tǒng)性能分析和優(yōu)化童劍2006/03/211前言很高興能有這樣的機(jī)會(huì),把我自己多年工作中對(duì)服務(wù)器硬件、軟件方面的性能分析的經(jīng)驗(yàn)和體會(huì),以及性能優(yōu)化的經(jīng)驗(yàn)和各位朋友做一次分享。
這份ppt的內(nèi)容組織大致是這樣的,通過(guò)對(duì)系統(tǒng)中和性能相關(guān)的各個(gè)環(huán)節(jié)的介紹,使大家知道出現(xiàn)性能問(wèn)題時(shí)可以從那些方面入手去查,而分析典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn),讓大家對(duì)應(yīng)用和系統(tǒng)資源的依賴有了更直觀的認(rèn)識(shí),然后我會(huì)介紹常見(jiàn)的分析及監(jiān)控系統(tǒng)資源時(shí)使用的工具,這個(gè)環(huán)節(jié)應(yīng)該是最主要的,最后我會(huì)舉一個(gè)實(shí)際發(fā)生過(guò)的系統(tǒng)性能瓶頸分析和優(yōu)化的案例,作為一個(gè)實(shí)踐和總結(jié)。本文涉及的內(nèi)容基于Gnu/Linux系統(tǒng)平臺(tái),但關(guān)于性能優(yōu)化分析和優(yōu)化的思路也能適用于其他系統(tǒng)平臺(tái)。前言2我們將會(huì)討論下列7個(gè)話題性能分析的目的性能分析相關(guān)的人性能相關(guān)的各個(gè)環(huán)節(jié)系統(tǒng)使用和優(yōu)化的原則典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)常見(jiàn)的性能分析工具介紹性能分析及優(yōu)化的案例我們將會(huì)討論下列7個(gè)話題性能分析的目的3開(kāi)始第1個(gè)話題性能分析的目的性能分析相關(guān)的人性能相關(guān)的各個(gè)環(huán)節(jié)系統(tǒng)使用和優(yōu)化的原則典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)常見(jiàn)的性能分析工具介紹性能分析及優(yōu)化的案例開(kāi)始第1個(gè)話題性能分析的目的4性能分析的目的找出系統(tǒng)性能瓶頸硬件瓶頸軟件瓶頸提供性能優(yōu)化方案升級(jí)硬件改進(jìn)系統(tǒng)結(jié)構(gòu)達(dá)到合理的硬件和軟件配置使系統(tǒng)資源使用達(dá)到平衡性能分析的目的找出系統(tǒng)性能瓶頸5性能分析的目的但遺憾的是
解決一個(gè)性能瓶頸,往往又會(huì)出現(xiàn)另外的瓶頸或者其他問(wèn)題,所以性能優(yōu)化更加切實(shí)的目標(biāo)是做到在一定范圍內(nèi)使系統(tǒng)的各項(xiàng)資源使用趨向合理和保持一定的平衡。系統(tǒng)運(yùn)行良好的時(shí)候恰恰也是各項(xiàng)資源達(dá)到了一個(gè)平衡體,任何一項(xiàng)資源的過(guò)渡使用都會(huì)造成平衡體系破壞,從而造成系統(tǒng)負(fù)載極高或者響應(yīng)遲緩。比如CPU過(guò)渡使用會(huì)造成大量進(jìn)程等待CPU資源,系統(tǒng)響應(yīng)變慢,等待會(huì)造成進(jìn)程數(shù)增加,進(jìn)程增加又會(huì)造成內(nèi)存使用增加,內(nèi)存耗盡又會(huì)造成虛擬內(nèi)存使用,使用虛擬內(nèi)存又會(huì)造成磁盤IO增加和CPU開(kāi)銷增加(用于進(jìn)程切換、缺頁(yè)處理的CPU開(kāi)銷)性能分析的目的但遺憾的是6開(kāi)始第2個(gè)話題性能分析的目的性能分析相關(guān)的人性能相關(guān)的各個(gè)環(huán)節(jié)系統(tǒng)使用和優(yōu)化的原則典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)常見(jiàn)的性能分析工具介紹性能分析及優(yōu)化的案例開(kāi)始第2個(gè)話題性能分析的目的7性能分析相關(guān)的人系統(tǒng)管理員大型應(yīng)用的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)人員軟件開(kāi)發(fā)人員性能分析相關(guān)的人系統(tǒng)管理員8性能分析相關(guān)的人系統(tǒng)管理員掌握系統(tǒng)運(yùn)行狀況(負(fù)載)掌握系統(tǒng)資源使用情況(硬件)掌握應(yīng)用程序?qū)Y源的使用情況(應(yīng)用程序執(zhí)行效率,反饋給應(yīng)用開(kāi)發(fā)人員)有針對(duì)性的開(kāi)展服務(wù)器性能優(yōu)化(硬件、軟件、軟件配置)性能分析相關(guān)的人系統(tǒng)管理員9性能分析相關(guān)的人系統(tǒng)架構(gòu)設(shè)計(jì)人員了解程序執(zhí)行效率了解系統(tǒng)架構(gòu)中的性能瓶頸,優(yōu)化系統(tǒng)結(jié)構(gòu)設(shè)計(jì)更好的應(yīng)用系統(tǒng)架構(gòu)性能分析相關(guān)的人系統(tǒng)架構(gòu)設(shè)計(jì)人員10性能分析相關(guān)的人軟件開(kāi)發(fā)人員了解程序執(zhí)行效率改進(jìn)程序邏輯、改進(jìn)性能性能分析相關(guān)的人軟件開(kāi)發(fā)人員11開(kāi)始第3個(gè)話題性能分析的目的性能分析相關(guān)的人性能相關(guān)的各個(gè)環(huán)節(jié)系統(tǒng)使用和優(yōu)化的原則典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)常見(jiàn)的性能分析工具介紹性能分析及優(yōu)化的案例開(kāi)始第3個(gè)話題性能分析的目的12性能相關(guān)的各個(gè)環(huán)節(jié)硬件資源操作系統(tǒng)服務(wù)器軟件開(kāi)發(fā)平臺(tái)/中間件軟件/框架軟件應(yīng)用程序性能相關(guān)的各個(gè)環(huán)節(jié)硬件資源13性能相關(guān)的-硬件資源CPU內(nèi)存存儲(chǔ)系統(tǒng)帶寬性能相關(guān)的-硬件資源CPU14性能相關(guān)的-硬件資源CPU是否使用SMP單顆CPU的性能對(duì)依賴CPU的某些應(yīng)用的影響很嚴(yán)重,比如數(shù)據(jù)庫(kù)的查詢處理性能相關(guān)的-硬件資源CPU15性能相關(guān)的-硬件資源內(nèi)存物理內(nèi)存
物理內(nèi)存不夠時(shí)會(huì)使用交換內(nèi)存交換內(nèi)存使用交換內(nèi)存會(huì)帶來(lái)磁盤IO和CPU的開(kāi)銷增加
性能相關(guān)的-硬件資源內(nèi)存16性能相關(guān)的-硬件資源存儲(chǔ)系統(tǒng)SCSI磁盤ATA/SATA磁盤RAID磁盤陣列(RAID0,RAID1,RAID5,RAID0+1)一些經(jīng)驗(yàn)小文件讀寫的性能瓶頸是磁盤的尋址(隨機(jī)讀寫性能更差),評(píng)估的標(biāo)準(zhǔn)是tps大文件讀寫的性能瓶頸是帶寬,評(píng)估的標(biāo)準(zhǔn)是持續(xù)的讀寫速度Linux可以利用空閑內(nèi)存作文件系統(tǒng)訪問(wèn)的cache,因此系統(tǒng)內(nèi)存越大存儲(chǔ)系統(tǒng)的性能也越好性能相關(guān)的-硬件資源存儲(chǔ)系統(tǒng)17性能相關(guān)的-硬件資源帶寬網(wǎng)絡(luò)帶寬SCSI總線帶寬大文件訪問(wèn)時(shí)SCSI的帶寬瓶頸系統(tǒng)總線帶寬性能相關(guān)的-硬件資源帶寬18性能相關(guān)的-操作系統(tǒng)SMP性能VM性能IO性能(存儲(chǔ)設(shè)備、網(wǎng)絡(luò)設(shè)備、異步IO)文件系統(tǒng)性能(大文件優(yōu)化、小文件優(yōu)化、寫優(yōu)化、讀優(yōu)化、網(wǎng)絡(luò)文件系統(tǒng))多線程性能性能相關(guān)的-操作系統(tǒng)SMP性能19開(kāi)始第4個(gè)話題性能分析的目的性能分析相關(guān)的人性能相關(guān)的各個(gè)環(huán)節(jié)系統(tǒng)使用和優(yōu)化的原則典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)常見(jiàn)的性能分析工具介紹性能分析及優(yōu)化的案例開(kāi)始第4個(gè)話題性能分析的目的20系統(tǒng)使用和優(yōu)化的原則對(duì)資源的使用狀況作長(zhǎng)期的監(jiān)控和數(shù)據(jù)收集Snmp+MRTGSar程序的優(yōu)化和系統(tǒng)結(jié)構(gòu)的優(yōu)化比硬件的性能優(yōu)化更有效避免不受限制的使用系統(tǒng)資源設(shè)置各項(xiàng)服務(wù)對(duì)資源的使用限額,如Apache,MySQL,PHP等系統(tǒng)使用和優(yōu)化的原則對(duì)資源的使用狀況作長(zhǎng)期的監(jiān)控和數(shù)據(jù)收集21系統(tǒng)使用和優(yōu)化的原則始終保留一定量的空閑資源多少合適?根據(jù)應(yīng)用的特點(diǎn),比如是否有突發(fā)性使用增長(zhǎng)?日常情況下,保留至少60%的系統(tǒng)資源,以應(yīng)付突發(fā)使用增長(zhǎng)。日常情況下,資源使用率達(dá)到80%時(shí),你必須有所行動(dòng)了,尤其是web應(yīng)用。系統(tǒng)硬件達(dá)到合理的配置(以適合應(yīng)用的特點(diǎn)為依據(jù),資源消耗均衡為目標(biāo))系統(tǒng)性能的水桶理論系統(tǒng)使用和優(yōu)化的原則始終保留一定量的空閑資源22系統(tǒng)使用和優(yōu)化的原則應(yīng)用軟件對(duì)資源的使用要均衡(理想目標(biāo))怎么樣就算是均衡了?我也在摸索中……理想狀況為:CPU消耗到50%的時(shí)候,磁盤的帶寬也到50%,磁盤的tps也到50%,內(nèi)存使用也到50%(除去可以提供給cache的內(nèi)存)系統(tǒng)使用和優(yōu)化的原則應(yīng)用軟件對(duì)資源的使用要均衡(理想目標(biāo))23開(kāi)始第5個(gè)話題性能分析的目的性能分析相關(guān)的人性能相關(guān)的各個(gè)環(huán)節(jié)系統(tǒng)使用和優(yōu)化的原則典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)常見(jiàn)的性能分析工具介紹性能分析及優(yōu)化的案例開(kāi)始第5個(gè)話題性能分析的目的24典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)聲明這部分內(nèi)容主要是本人在網(wǎng)站工作多年的一些實(shí)踐經(jīng)驗(yàn)積累,所以這些經(jīng)驗(yàn)并不完全適用于其他的應(yīng)用環(huán)境。在我的經(jīng)驗(yàn)中,大多數(shù)的硬件性能問(wèn)題主要和CPU、磁盤、內(nèi)存相關(guān),還沒(méi)有遇到因?yàn)殚_(kāi)發(fā)語(yǔ)言的運(yùn)行效率對(duì)整個(gè)應(yīng)用的性能造成影響,而應(yīng)用程序設(shè)計(jì)的缺陷和數(shù)據(jù)庫(kù)查詢的濫用反倒是最最常見(jiàn)的性能問(wèn)題。需要注意的是,大多數(shù)情況下,雖然性能瓶頸的起因是程序性能差或者是內(nèi)存不足或者是磁盤瓶頸等各種原因,但最終表現(xiàn)出的結(jié)果就是CPU耗盡,系統(tǒng)負(fù)載極高,響應(yīng)遲緩,甚至?xí)簳r(shí)失去響應(yīng),因此我們觀察服務(wù)器狀況時(shí),最先看的就是系統(tǒng)負(fù)載和CPU空閑度。典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)聲明25典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)動(dòng)態(tài)內(nèi)容為主的Web應(yīng)用靜態(tài)內(nèi)容為主的Web應(yīng)用(如SquidCache)數(shù)據(jù)庫(kù)應(yīng)用軟件下載流媒體服務(wù)典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)動(dòng)態(tài)內(nèi)容為主的Web應(yīng)用26典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)動(dòng)態(tài)內(nèi)容為主的Web應(yīng)用頻繁執(zhí)行程序,如Perl,PHP,Java等,消耗CPU嚴(yán)重提供并發(fā)用戶訪問(wèn),因此系統(tǒng)進(jìn)程數(shù)多,消耗內(nèi)存多,當(dāng)內(nèi)存不足時(shí),使用交換內(nèi)存也會(huì)增加CPU的開(kāi)銷磁盤的寫IO比較頻繁(主要為隨機(jī)寫),比如生成cache文件,更新session文件等。內(nèi)存充足時(shí)讀取的內(nèi)容可以被cache住,cache的命中率和文件更新的頻繁程度成反比,磁盤的讀IO相對(duì)較小典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)動(dòng)態(tài)內(nèi)容為主的Web應(yīng)用27典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)靜態(tài)內(nèi)容為主的Web應(yīng)用(如SquidCache)網(wǎng)絡(luò)帶寬瓶頸小文件的隨機(jī)讀取頻繁,內(nèi)存充足時(shí)可以緩解磁盤隨機(jī)讀的壓力系統(tǒng)內(nèi)存不足時(shí)磁盤IO量會(huì)比較大(讀、寫、交換內(nèi)存),因此增加CPU的開(kāi)銷典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)靜態(tài)內(nèi)容為主的Web應(yīng)用(如S28典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)數(shù)據(jù)庫(kù)應(yīng)用數(shù)據(jù)庫(kù)查詢語(yǔ)句復(fù)雜,大量的where子句,orderby,groupby排序等,CPU容易出現(xiàn)瓶頸表太大時(shí),查詢遍歷全表造成磁盤讀的IO量大,容易出現(xiàn)讀IO等待的情況數(shù)據(jù)更新量大或者更新頻繁時(shí),造成磁盤寫的IO量大內(nèi)存不足時(shí)頻繁使用交換內(nèi)存典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)數(shù)據(jù)庫(kù)應(yīng)用29典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)軟件下載網(wǎng)絡(luò)帶寬瓶頸存儲(chǔ)系統(tǒng)帶寬瓶頸(讀)流媒體服務(wù)網(wǎng)絡(luò)帶寬瓶頸存儲(chǔ)系統(tǒng)帶寬瓶頸(讀)典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)軟件下載30開(kāi)始第6個(gè)話題性能分析的目的性能分析相關(guān)的人性能相關(guān)的各個(gè)環(huán)節(jié)系統(tǒng)使用和優(yōu)化的原則典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)常見(jiàn)的性能分析工具介紹性能分析及優(yōu)化的案例開(kāi)始第6個(gè)話題性能分析的目的31常見(jiàn)的性能分析工具介紹VmstatTopFreeUptimesysstat工具包IozoneStrace希望看完以上工具的使用說(shuō)明,讓你能夠知道如何判斷系統(tǒng)瓶頸在那里、內(nèi)存是否夠用、CPU是否夠用、磁盤IO是否夠用、網(wǎng)絡(luò)和磁盤帶寬是否夠用等問(wèn)題。常見(jiàn)的性能分析工具介紹Vmstat32工具介紹-vmstatvmstat是一個(gè)很全面的性能分析工具,可以觀察到系統(tǒng)的進(jìn)程狀態(tài)、內(nèi)存使用、虛擬內(nèi)存使用、磁盤的IO、中斷、上下問(wèn)切換、CPU使用等。系統(tǒng)性能分析工具中,我使用最多的是這個(gè),除了sysstat工具包外,這個(gè)工具能查看的系統(tǒng)資源最多。對(duì)于Linux的性能分析,100%理解vmstat輸出內(nèi)容的含義,那你對(duì)系統(tǒng)性能分析的能力就算是基本掌握了。我這里主要說(shuō)明一下這個(gè)命令顯示出的部分?jǐn)?shù)據(jù)代表的含義,和它反映出系統(tǒng)相關(guān)資源的狀況。輸出內(nèi)容共有6類,分別說(shuō)明如下。工具介紹-vmstat33工具介紹-vmstatVmstat的輸出格式如下(CentOS3.3)工具介紹-vmstatVmstat的輸出格式如下(CentO34工具介紹-vmstatProcsr:運(yùn)行的和等待(CPU時(shí)間片)運(yùn)行的進(jìn)程數(shù),這個(gè)值也可以判斷是否需要增加CPU(長(zhǎng)期大于1)b:處于不可中斷狀態(tài)的進(jìn)程數(shù),常見(jiàn)的情況是由IO引起的工具介紹-vmstatProcs35工具介紹-vmstatMemoryswpd:切換到交換內(nèi)存上的內(nèi)存(默認(rèn)以KB為單位)如果swpd的值不為0,或者還比較大,比如超過(guò)100M了,但是si,so的值長(zhǎng)期為0,這種情況我們可以不用擔(dān)心,不會(huì)影響系統(tǒng)性能。free:空閑的物理內(nèi)存buff:作為buffercache的內(nèi)存,對(duì)塊設(shè)備的讀寫進(jìn)行緩沖cache:作為pagecache的內(nèi)存,文件系統(tǒng)的cache如果cache的值大的時(shí)候,說(shuō)明cache住的文件數(shù)多,如果頻繁訪問(wèn)到的文件都能被cache住,那么磁盤的讀IObi會(huì)非常小。工具介紹-vmstatMemory36工具介紹-vmstatSwapsi:交換內(nèi)存使用,由磁盤調(diào)入內(nèi)存so:交換內(nèi)存使用,由內(nèi)存調(diào)入磁盤內(nèi)存夠用的時(shí)候,這2個(gè)值都是0,如果這2個(gè)值長(zhǎng)期大于0時(shí),系統(tǒng)性能會(huì)受到影響。磁盤IO和CPU資源都會(huì)被消耗。我發(fā)現(xiàn)有些朋友看到空閑內(nèi)存(free)很少或接近于0時(shí),就認(rèn)為內(nèi)存不夠用了,實(shí)際上不能光看這一點(diǎn)的,還要結(jié)合si,so,如果free很少,但是si,so也很少(大多時(shí)候是0),那么不用擔(dān)心,系統(tǒng)性能這時(shí)不會(huì)受到影響的。工具介紹-vmstatSwap37工具介紹-vmstatIobi:從塊設(shè)備讀入的數(shù)據(jù)總量(讀磁盤)(KB/s),bo:寫入到塊設(shè)備的數(shù)據(jù)總理(寫磁盤)(KB/s)隨機(jī)磁盤讀寫的時(shí)候,這2個(gè)值越大(如超出1M),能看到CPU在IO等待的值也會(huì)越大工具介紹-vmstatIo38工具介紹-vmstatSystemin:每秒產(chǎn)生的中斷次數(shù)cs:每秒產(chǎn)生的上下文切換次數(shù)上面這2個(gè)值越大,會(huì)看到由內(nèi)核消耗的CPU時(shí)間會(huì)越多工具介紹-vmstatSystem39工具介紹-vmstatCpuus:用戶進(jìn)程消耗的CPU時(shí)間百分比us的值比較高時(shí),說(shuō)明用戶進(jìn)程消耗的CPU時(shí)間多,但是如果長(zhǎng)期超過(guò)50%的使用,那么我們就該考慮優(yōu)化程序算法或者進(jìn)行加速了(比如PHP/Perl)sy:內(nèi)核進(jìn)程消耗的CPU時(shí)間百分比sy的值高時(shí),說(shuō)明系統(tǒng)內(nèi)核消耗的CPU資源多,這并不是良性的表現(xiàn),我們應(yīng)該檢查原因。wa:IO等待消耗的CPU時(shí)間百分比wa的值高時(shí),說(shuō)明IO等待比較嚴(yán)重,這可能是由于磁盤大量作隨機(jī)訪問(wèn)造成,也有可能是磁盤的帶寬出現(xiàn)瓶頸(塊操作)。id:CPU處在空閑狀態(tài)時(shí)間百分比工具介紹-vmstatCpu40工具介紹-vmstat情景分析這個(gè)vmstat的輸出那些信息值得關(guān)注?Procsr:運(yùn)行的進(jìn)程比較多,系統(tǒng)很繁忙Iobo:磁盤寫的數(shù)據(jù)量稍大,如果是大文件的寫,10M以內(nèi)基本不用擔(dān)心,如果是小文件寫2M以內(nèi)基本正常Cpuus:持續(xù)大于50,服務(wù)高峰期可以接受Cpuwa:稍微有些高Cpuid:持續(xù)小于50,服務(wù)高峰期可以接受工具介紹-vmstat情景分析41工具介紹-top這個(gè)命令可以查看系統(tǒng)中運(yùn)行的進(jìn)程的狀況,CPU使用狀況,系統(tǒng)負(fù)載,內(nèi)存使用等。它是檢查系統(tǒng)進(jìn)程運(yùn)行狀況最方便的工具了,它默認(rèn)顯示部分活動(dòng)的進(jìn)程,并且按照進(jìn)程使用CPU的多少排序。它可以顯示全部CPU的使用狀況,也可以顯示每個(gè)進(jìn)程都運(yùn)行在那個(gè)CPU上面。
我習(xí)慣使用這個(gè)命令查看那些進(jìn)程或者那類進(jìn)程占用CPU和內(nèi)存資源最多,以此迅速定位存在性能問(wèn)題的進(jìn)程,以及運(yùn)行異常的進(jìn)程。工具介紹-top這個(gè)命令可以查看系統(tǒng)中運(yùn)行的進(jìn)程的狀42工具介紹-topTop命令的輸出1(CentOS3.3)工具介紹-topTop命令的輸出1(CentOS3.3)43工具介紹-topTop命令的輸出2(CentOS3.3)工具介紹-topTop命令的輸出2(CentOS3.3)44工具介紹-top用top看到的內(nèi)存的說(shuō)明(Mem的第2行)actvactive活躍的內(nèi)存頁(yè),正在映射給進(jìn)程使用in_dinactive_dirty非活躍的內(nèi)存頁(yè),并且內(nèi)存數(shù)據(jù)被修改,需要寫回磁盤in_cinactive_clean非活躍的內(nèi)存頁(yè),干凈的數(shù)據(jù),可以被重新分配使用工具介紹-top用top看到的內(nèi)存的說(shuō)明(Mem的第2行45工具介紹-top問(wèn)題?in_d和in_c以及cache,buffer的內(nèi)存有何不同?
我的理解:actv,in_d,in_c是VM中對(duì)內(nèi)存的管理組織形式,buffer是塊設(shè)備讀寫緩沖,cache是文件系統(tǒng)緩存工具介紹-top問(wèn)題?46工具介紹-top用top看到的進(jìn)程所處的幾種狀態(tài)(STAT列)。D不可中斷休眠,通常是IO操作所處的狀態(tài)R正在執(zhí)行的或者處在等待執(zhí)行的進(jìn)程隊(duì)列中S休眠中T暫停刮起的(比如Ctrl+Z),也可能是被strace命令調(diào)用中的狀態(tài)Z僵尸進(jìn)程,進(jìn)程執(zhí)行完成,但由于其父進(jìn)程沒(méi)有銷毀該進(jìn)程,而被init進(jìn)程接管進(jìn)行銷毀。W沒(méi)有使用物理內(nèi)存,所占用的物理內(nèi)存被切換到交換內(nèi)存<高優(yōu)先級(jí)的進(jìn)程N(yùn)低優(yōu)先級(jí)有時(shí)候一個(gè)進(jìn)程會(huì)有多個(gè)狀態(tài)的標(biāo)志,比如SWN,SW工具介紹-top用top看到的進(jìn)程所處的幾種狀態(tài)(STA47工具介紹-top情景分析前面兩次top的輸出那些信息值得關(guān)注?圖1)Loadaverage:系統(tǒng)負(fù)載有降低的趨勢(shì),但仍然較高Running:有3個(gè)進(jìn)程正在運(yùn)行,正常,因?yàn)橄到y(tǒng)有4顆CPUCpuuser:接近200%了,有些大,服務(wù)高峰時(shí)可以接受Cpuidle:小于200%了,需要注意圖2)Cpuiowait:接近200%了,很大工具介紹-top情景分析48工具介紹-freefree命令顯示系統(tǒng)內(nèi)存的使用狀況(物理內(nèi)存和交換內(nèi)存)通過(guò)這個(gè)命令我們可以看到系統(tǒng)進(jìn)程實(shí)際使用的物理內(nèi)存,buffer和cache使用的物理內(nèi)存工具介紹-freefree命令顯示系統(tǒng)內(nèi)存的使用狀況(物理內(nèi)49工具介紹-freefree命令輸出的第二行(Mem)
這行分別顯示了物理內(nèi)存的總量(total)、已使用的(used)、空閑的(free)、共享的(shared)、buffer、cache的內(nèi)存。工具介紹-freefree命令輸出的第二行(Mem)50工具介紹-freefree命令輸出的第三行(-/+buffers/cache)這行最容易讓人迷惑。它顯示的第一個(gè)值(used這一列)是這樣得來(lái)的:Mem行used列-Mem行buffers列-Mem行cached列
它顯示的第二個(gè)值(free這一列)是這樣得來(lái)的:Mem行free列+Mem行buffers列+Mem行cached列工具介紹-freefree命令輸出的第三行(-/+buff51工具介紹-freefree命令輸出的第四行(Swap)這行顯示交換內(nèi)存的總量、已使用量、空閑量通常buffer和cache可以使用的內(nèi)存空間越大,系統(tǒng)IO和文件系統(tǒng)訪問(wèn)的性能越好。工具介紹-freefree命令輸出的第四行(Swap)52工具介紹-uptime最簡(jiǎn)便的查看系統(tǒng)負(fù)載的工具,系統(tǒng)負(fù)載越小,系統(tǒng)運(yùn)行狀況越好,對(duì)于系統(tǒng)負(fù)載處在什么范圍內(nèi)比較合適,我想是沒(méi)有定論的,我介紹一下我的習(xí)慣。
我一般以15分鐘負(fù)載的值來(lái)評(píng)估系統(tǒng)的健康度,以10為這個(gè)值的臨界點(diǎn),如果系統(tǒng)負(fù)載持續(xù)高于10,通常是存在某個(gè)資源長(zhǎng)期緊張的原因,我們需要重視,并且得開(kāi)始著手解決這個(gè)問(wèn)題了。
如果偶爾高于10,應(yīng)該開(kāi)始留意它出現(xiàn)的頻度,這往往是前面一種狀況的先兆。工具介紹-uptime最簡(jiǎn)便的查看系統(tǒng)負(fù)載的工具,系53工具介紹-sysstat工具包這個(gè)工具包提供了著名的sar命令,還有非常實(shí)用的iostat,mpstat,sa1,sa2等命令。
這幾個(gè)命令可實(shí)現(xiàn)前面提及工具大多數(shù)的功能,除此之外,還能查看系統(tǒng)的網(wǎng)絡(luò)帶寬狀況、每塊磁盤使用狀況、每個(gè)磁盤分區(qū)的使用狀況等。
工具介紹-sysstat工具包這個(gè)工具包提供了著名54工具介紹-sysstat工具包sa1,sa2這2個(gè)命令以配置在cron中定期執(zhí)行,把系統(tǒng)當(dāng)時(shí)的運(yùn)行狀況信息保存在磁盤上,每日存在一個(gè)文件中,因?yàn)橛羞@個(gè)功能,因此sar工具不單是一個(gè)性能分析的工具,這2個(gè)命令的使用說(shuō)明如下:sa1配置在cron中可以實(shí)現(xiàn)系統(tǒng)狀態(tài)收集,比如10分鐘運(yùn)行一次sa2配置在cron中可以實(shí)現(xiàn)每日狀態(tài)的匯總報(bào)告你可以在系統(tǒng)crontab中添加如下配置:*/10****root/usr/lib/sa/sa1115323***root/usr/lib/sa/sa2-A
工具介紹-sysstat工具包sa1,sa2這55工具介紹-其他IozoneIO和文件系統(tǒng)性能測(cè)試的工具,我也習(xí)慣用它作存儲(chǔ)系統(tǒng)的性能分析。Strace如果我們知道一個(gè)程序執(zhí)行效率很差,需要分析這個(gè)程序執(zhí)行時(shí)的某個(gè)階段或者某個(gè)系統(tǒng)調(diào)用的性能狀況,可以使用strace命令。其他工具介紹-其他Iozone56開(kāi)始第7個(gè)話題性能分析的目的性能分析相關(guān)的人性能相關(guān)的各個(gè)環(huán)節(jié)系統(tǒng)使用和優(yōu)化的原則典型應(yīng)用對(duì)系統(tǒng)資源使用的特點(diǎn)常見(jiàn)的性能分析工具介紹性能分析及優(yōu)化的案例開(kāi)始第7個(gè)話題性能分析的目的57性能分析及優(yōu)化的案例動(dòng)態(tài)內(nèi)容為主的網(wǎng)站動(dòng)態(tài)內(nèi)容+Cache為主的網(wǎng)站性能分析及優(yōu)化的案例動(dòng)態(tài)內(nèi)容為主的網(wǎng)站58動(dòng)態(tài)內(nèi)容為主的網(wǎng)站該網(wǎng)站系統(tǒng)結(jié)構(gòu)說(shuō)明1臺(tái)Dell2650服務(wù)器,單顆Xeon3.0GCPU,1G內(nèi)存,2塊72GSCSI磁盤操作系統(tǒng)CentOS3.3應(yīng)用基于LAMP架構(gòu),所有服務(wù)都在一臺(tái)服務(wù)器上動(dòng)態(tài)內(nèi)容為主的網(wǎng)站該網(wǎng)站系統(tǒng)結(jié)構(gòu)說(shuō)明59動(dòng)態(tài)內(nèi)容為主的網(wǎng)站分析和優(yōu)化的過(guò)程初期性能問(wèn)題及處理第二次優(yōu)化第三次優(yōu)化第四次優(yōu)化網(wǎng)站結(jié)構(gòu)優(yōu)化動(dòng)態(tài)內(nèi)容為主的網(wǎng)站分析和優(yōu)化的過(guò)程60動(dòng)態(tài)內(nèi)容為主的網(wǎng)站初期性能問(wèn)題及處理表現(xiàn):早晨和下午訪問(wèn)高峰時(shí),服務(wù)器頻繁宕機(jī),重啟后的一段時(shí)間內(nèi)能正常服務(wù),過(guò)一會(huì)以后又變的響應(yīng)緩慢,然后又宕機(jī)。檢查:發(fā)現(xiàn)宕機(jī)前系統(tǒng)負(fù)載高,Apachehttpd.conf配置最大用戶數(shù)為1024處理:修改httpd.conf配置文件,降到最大512個(gè)用戶數(shù),仍然頻繁宕機(jī),又降到256個(gè)用戶數(shù),系統(tǒng)不宕機(jī)了,但是負(fù)載很高,站點(diǎn)訪問(wèn)極慢動(dòng)態(tài)內(nèi)容為主的網(wǎng)站初期性能問(wèn)題及處理61動(dòng)態(tài)內(nèi)容為主的網(wǎng)站初次優(yōu)化深入分析系統(tǒng)資源使用情況(vmstat,top,ps)結(jié)論:CPU資源時(shí)常耗盡,因此造成響應(yīng)緩慢或者長(zhǎng)時(shí)間沒(méi)有響應(yīng),主要是用戶進(jìn)程消耗資源嚴(yán)重。原因:PHP程序沒(méi)有使用代碼加速,網(wǎng)站首頁(yè)是個(gè)PHP程序,每次用戶訪問(wèn)都要多次查詢數(shù)據(jù)庫(kù),其他程序也沒(méi)有Cache機(jī)制,數(shù)據(jù)庫(kù)查詢負(fù)荷過(guò)高。處理:安裝配置turck-mmcache代碼加速器,改寫網(wǎng)站首頁(yè)以及部分頻繁訪問(wèn)的程序增加cache機(jī)制,減少數(shù)據(jù)庫(kù)訪問(wèn)。動(dòng)態(tài)內(nèi)容為主的網(wǎng)站初次優(yōu)化62動(dòng)態(tài)內(nèi)容為主的網(wǎng)站第二次優(yōu)化一段時(shí)間后,系統(tǒng)又開(kāi)始不穩(wěn)定,訪問(wèn)高峰時(shí)站點(diǎn)無(wú)法正常訪問(wèn)分析系統(tǒng)資源使用狀況,發(fā)現(xiàn)仍然是CPU耗盡后引起問(wèn)題,但這次系統(tǒng)IO等待消耗的CPU資源比較大。原因:上次解決了CPU資源容易耗盡的問(wèn)題,目前網(wǎng)站訪問(wèn)量增加了,apache進(jìn)程數(shù)時(shí)常達(dá)到256個(gè),導(dǎo)致內(nèi)存使用殆盡,頻繁使用交換內(nèi)存,最終仍然導(dǎo)致CPU資源耗盡處理:把Apache配置中的KeepAlive特性關(guān)閉,進(jìn)程數(shù)大量減少,基本保持在80個(gè)進(jìn)程以內(nèi),還是會(huì)使用交換內(nèi)存,但是服務(wù)正常了。動(dòng)態(tài)內(nèi)容為主的網(wǎng)站第二次優(yōu)化63動(dòng)態(tài)內(nèi)容為主的網(wǎng)站第三次優(yōu)化一段時(shí)間后,系統(tǒng)又開(kāi)始不穩(wěn)定,訪問(wèn)高峰時(shí)站點(diǎn)無(wú)法正常訪問(wèn)分析發(fā)現(xiàn)還是CPU資源耗盡導(dǎo)致的原因。原因:程序頻繁訪問(wèn)數(shù)據(jù)庫(kù),大量的SQL語(yǔ)句中有where,orderby等子句,而大量的表沒(méi)有建索引,導(dǎo)致MySQL數(shù)據(jù)庫(kù)負(fù)荷過(guò)高,消耗CPU資源過(guò)高。處理:優(yōu)化程序中的SQL語(yǔ)句,where和orderby子句上的字段建索引,程序增加Cache機(jī)制,再次使服務(wù)恢復(fù)正常。動(dòng)態(tài)內(nèi)容為主的網(wǎng)站第三次優(yōu)化64動(dòng)態(tài)內(nèi)容為主的網(wǎng)站第四次優(yōu)化一段時(shí)間后,系統(tǒng)又開(kāi)始不穩(wěn)定,訪問(wèn)高峰時(shí)站點(diǎn)無(wú)法正常訪問(wèn)分析系統(tǒng)資源使用狀況,發(fā)現(xiàn)還是CPU耗盡造成的原因:數(shù)據(jù)庫(kù)查詢過(guò)多,大部分都是復(fù)雜查詢,時(shí)常需要遍歷全表處理:優(yōu)化程序中的SQL語(yǔ)句,增加where子句上的匹配條件,減少遍歷全部的查詢。動(dòng)態(tài)內(nèi)容為主的網(wǎng)站第四次優(yōu)化65動(dòng)態(tài)內(nèi)容為主的網(wǎng)站網(wǎng)站結(jié)構(gòu)優(yōu)化鑒于程序的優(yōu)化空間越來(lái)越小,避免以后仍然出現(xiàn)問(wèn)題,增加了一臺(tái)專用數(shù)據(jù)庫(kù)服務(wù)器在后來(lái)的使用過(guò)程中,又陸續(xù)增加了1臺(tái)Web前端服務(wù)器,和一臺(tái)只用于讀的MySQL數(shù)據(jù)庫(kù)服務(wù)器動(dòng)態(tài)內(nèi)容為主的網(wǎng)站網(wǎng)站結(jié)構(gòu)優(yōu)化66動(dòng)態(tài)內(nèi)容+Cache為主的網(wǎng)站該網(wǎng)站系統(tǒng)結(jié)構(gòu)說(shuō)明多臺(tái)Web前端服務(wù)器,配置都為單顆Xeon3.0GCPU,4G內(nèi)存,2塊73GSCSI磁盤操作系統(tǒng)CentOS3.3多臺(tái)MySQL數(shù)據(jù)庫(kù)服務(wù)器基于PHP開(kāi)發(fā)的應(yīng)用動(dòng)態(tài)內(nèi)容+Cache為主的網(wǎng)站該網(wǎng)站系統(tǒng)結(jié)構(gòu)說(shuō)明67動(dòng)態(tài)內(nèi)容+Cache為主的網(wǎng)站該應(yīng)用的特點(diǎn)大量?jī)?nèi)容基于數(shù)據(jù)庫(kù),需要頻繁訪問(wèn)數(shù)據(jù)庫(kù),并且數(shù)據(jù)更新很快采用頁(yè)面cache機(jī)制緩解數(shù)據(jù)庫(kù)壓力,但頁(yè)面cache只有5分鐘有效期,需要頻繁生成新的cacheCache以文件形式存在磁盤上,都是小文件,最小不到1k,最大不超過(guò)128k動(dòng)態(tài)內(nèi)容+Cache為主的網(wǎng)站該應(yīng)用的特點(diǎn)68動(dòng)態(tài)內(nèi)容+Cache為主的網(wǎng)站問(wèn)題描述訪問(wèn)高峰期時(shí)Web前端負(fù)載比較高,時(shí)常超過(guò)10訪問(wèn)高峰期時(shí)Web前端響應(yīng)很慢性能分析負(fù)載比較高,時(shí)常會(huì)超過(guò)10,CPUIdel經(jīng)常會(huì)小于30%,有時(shí)Idel為0,CPUiowait很大,經(jīng)常超過(guò)30%,磁
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建漳州三模數(shù)學(xué)試卷
- 廣東高分突破九年級(jí)數(shù)學(xué)試卷
- 肛腸術(shù)后護(hù)理課件
- 高三寫不完的數(shù)學(xué)試卷
- 肋骨骨折護(hù)理
- 2024年09月湖北省農(nóng)村信用社聯(lián)合社網(wǎng)絡(luò)信息中心度招考35名勞務(wù)派遣科技專業(yè)人才筆試歷年參考題庫(kù)附帶答案詳解
- 2025至2030袋泡茶市場(chǎng)前景分析及發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 高血糖引起的并發(fā)癥的早期干預(yù)
- 2025至2030寵物袋運(yùn)動(dòng)衫行業(yè)市場(chǎng)深度研究與戰(zhàn)略咨詢分析報(bào)告
- 2024年山東煙臺(tái)干部學(xué)院招聘教師筆試真題
- 小學(xué)五年級(jí)第一學(xué)期體育教案(新版)
- 北京市西城區(qū)2021-2022學(xué)年八年級(jí)下學(xué)期期末歷史試題(試題+答案)
- 土地綜合整治項(xiàng)目施工組織設(shè)計(jì)
- 大疆無(wú)人機(jī)租賃合同協(xié)議書
- HG∕T 4592-2014 離子膜法金屬陽(yáng)極電解槽電極活性層
- 訂婚解除婚約協(xié)議書模板
- 進(jìn)入車間管理制度
- 急性肝衰竭的護(hù)理查房
- 卵巢癌教學(xué)查房課件
- 全國(guó)職業(yè)大賽(中職)ZZ006水利工程制圖與應(yīng)用賽項(xiàng)賽題第2套
- 監(jiān)控安裝項(xiàng)目計(jì)劃書
評(píng)論
0/150
提交評(píng)論