尋找Linux單機負載瓶頸

服務器性能上不去,是哪里出了問題?IO還是CPU?只有找到瓶頸點,才能對症下葯;
如何尋找Linux單機負載瓶頸,遵循的原則是不要推測,我們要通過測量的數據說話;
負載分兩類:
1.CPU負載;
2.IO負載;
排查流程
1.查看平均負載(top/uptime命令)
2.確認CPU、IO有無瓶頸;(使用 sar vmstat)
3.CPU負載過高時尋找流程:
4.IO負載過高時尋找流程;
查看平均負載
先通過top命令查看服務器是否出現負載過重的狀況,之后,再具體使用工具來分析出是CPU負載過高還是IO負載過高;
比如,使用sar工具查看CPU使用率和IO等待率(sar的具體使用教程參考大CC的這篇文章:
http://blog.me115.com/2013/12/468
top的結果:
load average:0.7, 0.66,0.59
平均負載分別表明從左到右1分鍾、5分鍾、15分鍾內,單位時間內處於等待狀態的任務數;
(等待 的意思 表明在等待cpu、或者等待IO)
CPU負載過高時的尋找流程
使用top、sar確認目標程序;
再通過ps查看進程狀態和CPU使用時間等;
進一步尋找:通過strace 或 oprofile命令;
IO負載過高的尋找流程
IO負載過高,多半是程序發出的IO請求過多導致負載過高,或是發生頁面交互導致頻繁訪問磁盤;
應通過sar或vmstat確認交換區狀態,以找出原因;
如果是發生頁面交互的情況,通過以下步驟調查:
1.使用ps工具確認是否有進程消耗了大量內存;
2.如果由於程序故障造成內存消息過大,應改進程序;
3.內存不足則增加內存;
如果沒有交換發生,而且磁盤IO頻繁,可能是用於緩存的內存不足;
1.考慮擴大緩存,增加內存;
2.考慮分散存儲
Posted by: 大CC | 04APR,2014
博客:blog.me115.com
微博:新浪微博
