Linux系統性能優化思路和優化方法_第1頁
Linux系統性能優化思路和優化方法_第2頁
Linux系統性能優化思路和優化方法_第3頁
Linux系統性能優化思路和優化方法_第4頁
Linux系統性能優化思路和優化方法_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Linux系統性能優化思路和優化方法

一、影響Linux性能的各種因素1、系統硬件資源(1)CPU如何判斷多核CPU與超線程消耗CPU的業務:動態web服務、mail服務(2)內存物理內存與

swap的取舍選擇64位Linux操作系統消耗內存的業務:內存數據庫(redis/hbase/mongodb)(3)磁盤IORAID技術(RAID0/1/5/01/10)SSD磁盤消耗磁盤的業務:數據庫服務器(4)網絡帶寬網卡/交換機的選擇操作系統雙網卡綁定消耗帶寬的業務:hadoop平臺、視頻業務平臺2、操作系統相關資源(1)系統安裝優化磁盤分區、RAID設置、swap設置(2)內核參數優化ulimit-n(最大打開文件數)ulimit-u(最大用戶數)(3)文件系統優化ext2:Linux下標準文件系統,無日志記錄(inode)功能。ext3:在ext2基礎上增加了日志記錄功能(inode),僅支持32000個子目錄。ex4:ext3的后續版本,Linux2.6.28內核開始支持。無限子目錄支持,快速fsck。xfs:高性能文件系統,Linux3.10內核開始默認支持。建議:讀操作頻繁,同時小文件眾多的應用:首選ext4文件系統,接下來依次是xfs、ext3寫操作頻繁的應用,首選是xfs,接下來依次是ext4和ext3對性能要求丌高、數據安全要求丌高的業務,ext3是比較好的選擇。3、程序問題此類問題需要開發人員查看代碼,介入處理。但作為運維人員需要給出程序問題的有力證據。二、Linux性能優化工具1、CPU性能評估工具(1)vmstat(系統默認自帶)利用vmstat命令可以對操作系統的內存信息、進程狀態、CPU活勱等進行監視。常用方式:vmstat23表示每3秒更新一次輸出信息,統計5次后停止輸出。下面是vmstat命令在某個系統的輸出結果:對上面每項的輸出解釋如下:procsr列表示運行和等待cpu時間片的進程數,這個值如果長期大于系統CPU的個數,說明CPU不足,需要增加CPU。b列表示在等待資源的進程數,比如正在等待I/O、或者內存交換等。memoryswpd列表示切換到內存交換區的內存數量(以k為單位)。如果swpd的值不為0,或者比較大,只要si、so的值長期為0,這種情況下一般不用擔心,不會影響系統性能。free列表示當前空閑的物理內存數量(以k為單位)buff列表示bufferscache的內存數量,一般對塊設備的讀寫才需要緩沖。cache列表示pagecached的內存數量,一般作為文件系統cached,頻繁訪問的文件都會被cached,如果cache值較大,說明cached的文件數較多,如果此時IO中bi比較小,說明文件系統效率比較好。swapsi列表示由磁盤調入內存,也就是內存進入內存交換區的數量。so列表示由內存調入磁盤,也就是內存交換區進入內存的數量。一般情況下,si、so的值都為0,如果si、so的值長期不為0,則表示系統內存不足。需要增加系統內存。IO項顯示磁盤讀寫狀況Bi列表示從塊設備讀入數據的總量(即讀磁盤)(每秒kb)。Bo列表示寫入到塊設備的數據總量(即寫磁盤)(每秒kb)。這里我們設置的bi+bo參考值為1000,如果超過1000,而且wa值較大,則表示系統磁盤IO有問題,應該考慮提高磁盤的讀寫性能。system顯示采集間隔內發生的中斷數in列表示在某一時間間隔中觀測到的每秒設備中斷數。cs列表示每秒產生的上下文切換次數。上面這2個值越大,會看到由內核消耗的CPU時間會越多。CPU項顯示了CPU的使用狀態,此列是我們關注的重點。us列顯示了用戶進程消耗的CPU時間百分比。us的值比較高時,說明用戶進程消耗的cpu時間多,但是如果長期大于50%,就需要考慮優化程序或算法。sy列顯示了內核進程消耗的CPU時間百分比。Sy的值較高時,說明內核消耗的CPU資源很多。根據經驗,us+sy的參考值為80%,如果us+sy大于80%說明可能存在CPU資源不足。id列顯示了CPU處在空閑狀態的時間百分比。wa列顯示了IO等待所占用的CPU時間百分比。wa值越高,說明IO等待越嚴重,根據經驗,wa的參考值為20%,如果wa超過20%,說明IO等待嚴重,引起IO等待的原因可能是磁盤大量隨機讀寫造成的,也可能是磁盤或者磁盤控制器的帶寬瓶頸造成的(主要是塊操作)。綜上所述,在對CPU的評估中,需要重點注意的是procs項r列的值和CPU項中us、sy和id列的值。(2)iostat(需要安裝sysstat工具包)iostat是I/Ostatistics(輸入/輸出統計)的縮寫,主要的功能是對系統的磁盤I/O操作進行監視。常用方式:iostat-c35其中,-c表示顯示CPU的使用情況,-d:顯示磁盤的使用情況。(3)uptime命令uptime是監控系統性能最常用的一個命令,主要用來統計系統當前的運行狀況,輸出的信息依次為:系統現在的時間、系統從上次開機到現在運行了多長時間、系統目前有多少登陸用戶、系統在一分鐘內、五分鐘內、十五分鐘內的平均負載。2、內存性能評估(1)free命令free命令是監控linux內存使用狀況最常用的指令常見用法:free–m看下面的一個輸出:“free–m”表示以M為單位查看內存使用情況,在這個輸出中,我們重點關注的應該是free列與cached列的輸出值,由輸出可知,此系統共8G內存,系統空閑內存還有925M,其中,BufferCache占用了243M,PageCache占用了6299M,由此可知系統緩存了很多的文件和目錄,而對于應用程序來說,可以使用的內存還有7468M,當然這個7468M包含了BufferCache和PageCache的值。在swap項可以看出,交換分區還未使用。所以從應用的角度來說,此系統內存資源還非常充足。一般有這樣一個經驗公式:應用程序可用內存/系統物理內存>70%時,表示系統內存資源非常充足,不影響系統性能,應用程序可用內存/系統物理內存<20%時,表示系統內存資源緊缺,需要增加系統內存,20%<應用程序可用內存/系統物理內存<70%時,表示系統內存資源基本能滿足應用需求,暫時不影響系統性能。(2)sar/pidstat此兩個命令主要用于監控全部或指定進程占用系統資源的情況,如CPU,內存、設備IO。三個公用參數:-u(獲取CPU狀態)、-r(獲取內存狀態)、-d(獲取磁盤)常用組合:sar-u3獲取cpu3秒內的狀態pidstat-r–p13獲取內存3秒內的狀態看看以上兩個命令的差別?請看下面的一個輸出:其中:Kbmemfree表示空閑物理內存大小,kbmemused表示已使用的物理內存空間大小,%memused表示已使用內存占總內存大小的百分比,kbbuffers和kbcached分別表示BufferCache和PageCache的大小,kbcommit和%commit分別表示應用程序當前使用的內存大小和使用百分比。可以看出sar的輸出其實與free的輸出完全對應,不過sar更加人性化,不但給出了內存使用量,還給出了內存使用的百分比以及統計的平均值。從%commit項可知,此系統目前內存資源充足。3、磁盤性能評估(1)iostat–d組合iostat–d23通過“iostat–d”命令組合也可以查看系統磁盤的使用狀況,請看如下輸出:對上面每項的輸出解釋如下:Blk_read/s表示每秒讀取的數據塊數。Blk_wrtn/s表示每秒寫入的數據塊數。Blk_read表示讀取的所有塊數。Blk_wrtn表示寫入的所有塊數。(2)pidstat-d-p318873(3)sar-d23通過“sar–d”組合,可以對系統的磁盤IO做一個基本的統計,請看下面的一個輸出:對上面每項的輸出解釋如下:DEV表示磁盤設備名稱。tps表示每秒到物理磁盤的傳送數,也就是每秒的I/O流量。一個傳送就是一個I/O請求,多個邏輯請求可以被合并為一個物理I/O請求。rd_sec/s表示每秒從設備讀取的扇區數(1扇區=512字節)。wr_sec/s表示每秒寫入設備的扇區數目。avgrq-sz表示平均每次設備I/O操作的數據大小(以扇區為單位)。avgqu-sz表示平均I/O隊列長度。await表示平均每次設備I/O操作的等待時間(以毫秒為單位)。svctm表示平均每次設備I/O操作的服務時間(以毫秒為單位)。%util表示一秒中有百分之幾的時間用于I/O操作。Linux中I/O請求系統與現實生活中超市購物排隊系統有很多類似的地方,通過對超市購物排隊系統的理解,可以很快掌握linux中I/O運行機制。比如:avgrq-sz類似于超市排隊中每人所買東西的多少。avgqu-sz類似于超市排隊中單位時間內平均排隊的人數。await類似于超市排隊中每人的等待時間。svctm類似于超市排隊中收銀員的收款速度。%util類似于超市收銀臺前有人排隊的時間比例。對于磁盤IO性能,一般有如下評判標準:正常情況下svctm應該是小于await值的,而svctm的大小和磁盤性能有關,CPU、內存的負荷也會對svctm值造成影響,過多的請求也會間接的導致svctm值的增加。await值的大小一般取決于

svctm的值和I/O隊列長度以及I/O請求模式,如果svctm的值與await很接近,表示幾乎沒有I/O等待,磁盤性能很好,如果await的值遠高于svctm的值,則表示I/O隊列等待太長,系統上運行的應用程序將變慢,此時可以通過更換更快的硬盤來解決問題。%util項的值也是衡量磁盤I/O的一個重要指標,如果%util接近100%,表示磁盤產生的I/O請求太多,I/O系統已經滿負荷的在工作,該磁盤可能存在瓶頸。長期下去,勢必影響系統的性能,可以通過優化程序或者通過更換更高、更快的磁盤來解決此問題。4、網絡性能評估(1)ping命令請看下面的一個輸出:在這個輸出

溫馨提示

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

評論

0/150

提交評論