Linux單主機的負(fù)載_第1頁
Linux單主機的負(fù)載_第2頁
Linux單主機的負(fù)載_第3頁
Linux單主機的負(fù)載_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

數(shù)據(jù)處理:計算機從磁盤(硬盤)上讀出數(shù)據(jù)并存儲到內(nèi)存上,然后CPU會從內(nèi)存上取得數(shù)據(jù)進(jìn)行處理。而且,從內(nèi)存上取得的指令會緩存到更高速的CPU緩存中。所以,數(shù)據(jù)處理要經(jīng)過磁盤T內(nèi)存T緩存-CPU多層才能被處理。橫向擴(kuò)展(scaleout):通過增加服務(wù)器數(shù)量來提高系統(tǒng)整體的處理能力并分擔(dān)負(fù)載??v向擴(kuò)展(scaleup):通過提高硬件性能來提高處理能力的方法。系統(tǒng)負(fù)載情況處理:對于I/O負(fù)載較高的服務(wù)器擴(kuò)展其內(nèi)存對于CPU負(fù)載高的服務(wù)器升級其CPU。開發(fā)所用的工具:編程語言Perl、C/C++、JavaScript等。主要中間件:MySQL、SQLsever等。Web應(yīng)用程序的框架默認(rèn)的aspx框架。大規(guī)模數(shù)據(jù)處理的難點:內(nèi)存和磁盤當(dāng)大規(guī)模數(shù)據(jù)處理時,會遇到“無法在內(nèi)存中計算”的問題。導(dǎo)致數(shù)據(jù)“無法在內(nèi)存中計算”的原因是因為數(shù)據(jù)如果在內(nèi)存中放不下的話,通常就得一直讀磁盤,在磁盤中找啊找還是找不到。數(shù)據(jù)量過大時,其輸入數(shù)據(jù)量也就增大,計算量當(dāng)然也會增大,更嚴(yán)重問題是“需要讀取磁盤”。(但磁盤是十分緩慢的,I/O會耗費很多時間,導(dǎo)致系統(tǒng)過慢。)內(nèi)存和磁盤的速度差異:內(nèi)存比磁盤要快1000W倍?。。ê唵瘟私獯疟P和內(nèi)存搜索數(shù)據(jù)的原理就知道)Linux單主機的負(fù)載尋找瓶頸的基本流程:1?查看平均負(fù)載(Loadaverage)o2.確認(rèn)CPU、I/O有無瓶頸。査看平均負(fù)載(Loadaverage)方法:命令:top\uptime。平均負(fù)載是指示系統(tǒng)全體負(fù)載狀況的指標(biāo)。平均負(fù)載低,吞吐量也低的情況下,應(yīng)該先檢查軟件設(shè)置是否異常,檢查網(wǎng)絡(luò)和遠(yuǎn)程主機是否存在故障等。(吞吐量:每秒的數(shù)據(jù)處理量。是在給定時間段內(nèi)系統(tǒng)完成的交易數(shù)量。即系統(tǒng)的吞吐量越大,說明系統(tǒng)在單位時間內(nèi)完成的用戶或系統(tǒng)請求越多,系統(tǒng)的資源得到充分利用。)査找CPU和I/O的瓶頸方法:當(dāng)平均負(fù)載過高時,要要CPU或I/O中尋找原因osar或vmstat可以查看CPU使用率和I/O等待率隨著時間的推移情況,可以作為參考。?“CPU負(fù)載”過高時,用以下流程尋找原因:1?確認(rèn)是用戶程序處理的瓶頸,還是系統(tǒng)程序的原因。用top或sar確認(rèn)。Top的輸出結(jié)果中包含名為“l(fā)oadaverage”的數(shù)字。Loadaverage:0.70,0.66,0.59平均負(fù)載從左到右分別為1分鐘、5分鐘、15分鐘內(nèi),單位時間中處于等待狀態(tài)的任務(wù)。(也就是說,此數(shù)字報告了平均有多少任務(wù)在等待,平均負(fù)載高,說明有相應(yīng)數(shù)量的任務(wù)在等待,可以認(rèn)為運行有延遲,也就是負(fù)載過高。)再通過ps查看可見進(jìn)程的狀態(tài)和CPU使用時間等,確認(rèn)導(dǎo)致問題的進(jìn)程。確定進(jìn)程之后,想要進(jìn)一步尋找原因的話,可以通過strace跟蹤,或oprofile進(jìn)行剖測,以確定瓶頸所在。(一般來說,CPU負(fù)載是由于以下兩者原因之一引起:1?磁盤或內(nèi)存容量等其他部分沒有成為瓶頸,即處于理想狀態(tài)。2.程序失控,需要消耗過多的CPU。如果是前者并且系統(tǒng)的吞吐量有問題的話,可以采取增加服務(wù)器、改善程序邏輯和算法的方式。如果中后者,則要去除故障,避免程序失控。)?“I/O負(fù)載”過高時,用以下流程尋找原因:“I/O負(fù)載”過高,其原因多半是程序發(fā)出的I/O請求過多導(dǎo)致負(fù)載過高,或是發(fā)生頁面交換導(dǎo)致頻繁訪問磁盤??梢酝ㄟ^sar或vmstat確認(rèn)交換區(qū)狀態(tài),找出原因。>根據(jù)確認(rèn)結(jié)果,如果是發(fā)生頁面交換的情況,應(yīng)該從發(fā)下幾點著手調(diào)查:1?用ps確認(rèn)是否進(jìn)程消耗了大量內(nèi)存。如果由于程序故障造成內(nèi)存消耗過大,應(yīng)該改進(jìn)程序。如果是因為內(nèi)存安裝不足,就要增加內(nèi)存。無法增加內(nèi)存時考慮分布式。>根據(jù)確認(rèn)結(jié)果,如果是沒有交換發(fā)生的情況,而且磁盤I/O頻繁的情況,可能是用于緩存的內(nèi)存不足。根據(jù)服務(wù)器擁有的數(shù)據(jù)量和可增加的內(nèi)存量,按照以下步驟選擇應(yīng)對方法:1)如果通過增加內(nèi)存可以擴(kuò)大緩存,就增加內(nèi)存。2)如果增加內(nèi)存還不夠用,就考慮分散存儲數(shù)據(jù),或是增加緩存服務(wù)器等。改進(jìn)I/O頻率也是一種方法。改善I/O性能,需要確認(rèn)發(fā)下幾點:能否通過增加內(nèi)存以保證緩存區(qū)域的方法解決。數(shù)據(jù)量是否本來就過多。有無必要改變應(yīng)用程序的I/O算法。Web應(yīng)用程序和負(fù)載的關(guān)系在Web應(yīng)用程序中,Web應(yīng)用程序在進(jìn)行計算時,也就是接受HTTP請求、查詢數(shù)據(jù)庫,再把數(shù)據(jù)庫返回的數(shù)據(jù)加工變成HTML發(fā)送給客戶端,基本上應(yīng)用服務(wù)器只消耗CPU。相反,數(shù)據(jù)庫服務(wù)器則需要較多I/O資源,產(chǎn)生I/O負(fù)載。Web應(yīng)用程序的三層結(jié)構(gòu):代理服務(wù)器、應(yīng)用程序服務(wù)器、數(shù)據(jù)庫組成。如果在應(yīng)用程序中只造成CPU負(fù)載,只需要增加相同結(jié)構(gòu)的應(yīng)用程序服務(wù)器通過負(fù)載均衡就可以了。因為應(yīng)用程序服務(wù)器只消耗CPU資源,不需要分散數(shù)據(jù),增加多臺服務(wù)器作為負(fù)載均衡器均勻地分發(fā)請求就OK了。但是,如果是I/O負(fù)載的問題。只使用增加數(shù)據(jù)庫的方法是不正確的。因為要考慮到兩個數(shù)據(jù)庫之間數(shù)據(jù)同步的問題(例如,寫入數(shù)據(jù)庫A中的數(shù)據(jù),怎么寫的數(shù)據(jù)庫B中呢?寫入的分布式是很困難的)。特別是大規(guī)模的數(shù)據(jù)量時就更難。還有,在前面說過,1/0是跟磁盤有關(guān)系的。當(dāng)數(shù)據(jù)量太大,導(dǎo)致無法在內(nèi)存處理時,就必然使用到磁盤。如果在兩個數(shù)據(jù)庫中進(jìn)行大量的磁盤讀/寫操作,就會有大量磁盤I/O的產(chǎn)生。而磁盤的速度是很慢的,計算密集型程序(CPUbound):有一個執(zhí)行大規(guī)??茖W(xué)計算的程序,雖然此程序與磁盤無數(shù)據(jù)I/O,但完成處理需要很長時間,從“執(zhí)行計算”可得知該程序的處理速度依賴CPU的計算速度。這就是產(chǎn)生CPU負(fù)載的程序,也稱之為“計算密集型程序“。I/O密集型程序(I/Obound):假設(shè)有一個從保存在磁盤上的大量數(shù)據(jù)中搜索出任意文檔的程序。該搜索程序的處理速度不依賴于CPU,而是依賴于磁盤的讀取速度,即I/O。磁盤轉(zhuǎn)速越快,搜索用時就越短。這種給I/O加上負(fù)載的程序也稱之為“I/O密集型程序“。一般情況下,應(yīng)用程序服務(wù)器從數(shù)據(jù)庫是獲取數(shù)據(jù),加工后發(fā)送給客戶端的過程很少產(chǎn)生大規(guī)模的I/O。因此,大多數(shù)情況下應(yīng)用程序服務(wù)器是計算密集型的服務(wù)器。相反,數(shù)據(jù)庫服務(wù)器則是I/O密集型程序。通過sar查看CPU使用率和I/O等待率Sar(SystemActivityReporter):查看系統(tǒng)狀況報告的工具。它能列出各個時間點的負(fù)載指標(biāo)以便比較。在計算密集型系統(tǒng)上查看sar執(zhí)行結(jié)果“%user”是CPU在用戶模式下的使用率°“%system”是系統(tǒng)模式下的使用率。平均負(fù)載過高,且CPU使用率也高的話,就可以判斷出進(jìn)程等待的高負(fù)載原因就是CPU資源不足。在sar命令上加上選項-p,可以查看四核CPU(現(xiàn)在Intel架構(gòu)的CPU都是多核的了,就是指只有一個物理CPU,卻能看成是多個CPU)服務(wù)器上執(zhí)行結(jié)果。加上輸入sar-命令之后分別看到(0、1、2、3、)四個CPUID。以及四個CPU的使用率統(tǒng)計結(jié)果(在計算型密集服務(wù)器上每個CPU都能夠均衡負(fù)載)。在I/O密集型服務(wù)器上査看sar執(zhí)行結(jié)果:“%iowait”是I/O等待率。平均負(fù)載過高并且“%iowait”數(shù)值也過高的話,可以認(rèn)為高負(fù)載的原因是I/O。在sar命令上加上選項-p,可以查看四核CPU服務(wù)器上的執(zhí)行結(jié)果。結(jié)果出乎意料,I/O等待只

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論