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和記憶體等硬體資源,最終還是為了省錢。因此,如果你們公司想省錢,可能是有必要對伺服...