Linux系統優化思路

2021-07-01 23:06:11 字數 2988 閱讀 2755

1.1. 系統的效能:是指作業系統完成任務的有效性,穩定性和響應速度。   (linux應用出現問題時,應當從應用程式,作業系統,伺服器硬體和網路環境等方面綜合排查,定位問題出現在哪個部分,然後集中解決。)

1.2 系統效能分析

效能調優的主要目的是使系統能夠有效地利用各種資源,最大的發揮應用程式和系統之間的效能融合,使應用高效,穩定地執行。

表:判定系統資源利用狀況的一般準則

1.cpu   user%+sys%<70%   (好)

user%+sys%=85%  (壞)

user%+sys%>=90%  (槽糕)

2.記憶體    swap in (si)=0   swap out (so)=0  (好)

per cpu with 10 page/s  (壞)

more swap in & swap out (槽糕)

3.磁碟     iowait% <20% (好)

iowait%=35%   (壞)

iowait%

>=50% (槽糕)

其中:%user:表示cpu在使用者模式下的時間百分比。

%sys:表示cpu處在系統模式下的時間百分比。

%iowait:表示cpu等待輸入輸出完成時間的百分比。

swap in:即si,表示虛擬記憶體的頁匯入,即從swap disk交換到ram。

swap out:即so,表示虛擬記憶體的頁匯出,即從ram交換到swap disk。

2.解決作業系統效能問題的一般思路

2.1影響linux效能的因素

cpu   記憶體     磁碟i/o頻寬      網路i/o頻寬       

2.2系統效能分析工具

2.2.1  vmstat 命令 (virtual memory statistics 虛擬記憶體統計) 

可以對作業系統的記憶體資訊,程序狀態和cpu活動等進行監控。

語法: vmstat  [-v]  [-n]  [delay  [count]]  

-v:表示列印出版本資訊       

-n:表示週期性迴圈的時,輸出的頭部資訊僅僅顯示一次 

delay:表示兩次輸出之間的間隔時間

count:表示按照「delay」指定的時間間隔統計的次數。

eg:  vmstat  3        表示每3秒更新一次輸出資訊,迴圈輸出。

vmstat   3   5   表示每3秒更新一次輸出資訊,統計5次後停止輸出。 

2.2.2  iostat 命令  (輸入/輸出統計)  

主要對系統的磁碟i/o操作進行監視。

語法: iostat   [ -c | -d ] [-k] [-t] [-x [device]] [interval  [count] ]

-c:顯示cpu的情況

-d:顯示磁碟的使用情況

-k:每秒以k bytes為單位顯示資料

-t:列印出統計資訊開始執行的時間

-x  device:指定要統計的磁碟名稱,預設為所有的磁碟裝置

interval:

表示兩次輸出之間的間隔時間

count:表示按照「interval」指定的時間間隔統計的次數。

2.2.3   sar 命令   

可以全面地獲取系統的cpu,執行佇列,磁碟i/o,分頁(交換區),記憶體,cpu中斷和網路等效能資料。

格式: sar [option] [-o filename] [interval [count] ]

option常用選項:

-a: 顯示系統所有資源裝置(cpu,記憶體,磁碟)的執行狀態。

-u:所有cpu在取樣時間內的負載狀態。

-p:當前指定cpu的使用情況。

-d:所有硬碟裝置在取樣時間內的使用狀況。

-r:顯示系統內存在取樣時間內的使用狀態。

-b:顯示緩衝區在取樣時間內的使用情況。

-v:顯示程序,檔案,i節點和鎖表狀態。

-n:顯示網路執行狀態。引數後面可跟dev,edev,sock和full。 (dev顯示網路介面資訊,edev顯示網路錯誤的統計資料,sock顯示套接字資訊,full全顯示。)

-q:顯示執行佇列的大小,它與系統當時平均負載相同。

-r:顯示程序在取樣時間內的活動情況。

-y: 顯示終端裝置在取樣時間內的活動情況

-w: 顯示系統交換活動在取樣時間內的狀態。

-o   filename  :表示將命令結果以二進位制格式存放在檔案中,filename是檔名。 

interval:表示兩次輸出之間的間隔時間

count:表示按照「interval」指定的時間間隔統計的次數。

eg: sar -u   3   5     檢視系統cpu的整體負載狀況,每3秒統計一次,統計5次

sar -p 1 3  5    檢視第二顆cpu的執行負載(系統cpu計數是從0開始的)

sar -d  3  5       檢視系統磁碟的讀寫效能

sar -n dev  5  3   檢視網路執行狀態。

2.2.4   uptime   可以檢查cpu的平均負載

free     檢視系統的記憶體使用情況

ps ,top  可以配合監控系統的程序執行狀態

netstat  可以監控網路流量狀態

3. 例如: linux系統下的乙個**系統,使用者反映**訪問速度很慢,且有時無法訪問。

第一步:檢查網路,可以通過ping命令檢查**的網域名稱解析是否正常,同時,ping伺服器位址的延時是否過大等。(排除網路原因)

第二步:記憶體使用狀況進行檢查。因為**響應速度慢,一般跟記憶體關聯比較大,可通過free,vmstat等命令判斷記憶體資源是否緊缺。(排記憶體原因)

第三步:檢查cpu的負載狀況。 可以通過sar,vmstat和top等命令的輸出綜合判斷cpu是否存在過載問題。(排除cpu原因)

第四步:檢查磁碟i/o是否存在瓶頸。 可以通過iostat,vmstat等命令檢查磁碟的讀寫效能。(排除磁碟原因)

第五步: 上面四步都沒有問題的話,linux系統自身的效能問題基本排除了,最後要做的是檢查程式本身是否存在問題。

秒殺系統優化思路

一 秒殺業務為什麼這麼難做 秒殺系統,庫存只有乙份,所有人會在集中的時間讀和寫這些資料。例如 那我們怎麼優化秒殺業務呢?二 優化方向 以上的兩個場景要優化有兩個方向 三 常見秒殺架構 常見的秒殺架構基本是這樣的 四 各層優化細節 回顧一下我們12306剛出來那年搶票的場景,點選 查詢 按鈕之後,系統...

Linux 效能優化思路

效能優化 效能優化的核心是找出系統的瓶頸點,問題找到了,優化的工作也就完成了大半 這裡介紹的效能優化主要從兩個層面來介紹 系統層面和程式層面。top進入互動模式後 top第三行顯示當前系統的,其中有兩個值很關鍵 分析記憶體瓶頸 檢視記憶體是否存在瓶頸,使用top指令看比較麻煩,而free命令更為直觀...

Linux系統效能優化思路和工具

有人覺得現如今硬體的效能越來越強,在系統和軟體上深度優化的必要性是否存在。硬體效能確實是越來卻強,我不知道摩爾定律目前是否失效,但是總會有失效的一天。因此,是否有必要也因人因公司而異,系統優化的目的是更高效地使用cpu和記憶體等硬體資源,最終還是為了省錢。因此,如果你們公司想省錢,可能是有必要對伺服...