Linux&&CPU瓶頸處理&&sar


抄抄抄,啦啦啦
參考資料:
https://mp.weixin.qq.com/s/JcEtIfvvLs4ze0ZpLCfVCg

sar

sar的用途

sar 命令用用收集、報告、或者保存 UNIX / Linux 系統的活動信息。它保存選擇的計數器到操作系統的 /var/log/sa/sadd 文件中。從收集的數據中,你可以得到許多關於你的服務器的信息:

  • CPU 使用率
  • 內存頁面和使用率
  • 網絡 I/O 和傳輸統計
  • 進程創建活動
  • 所有的塊設備活動
  • 每秒中斷數等等

sar 的安裝

看看參考資料啦

sar的命令

使用 sar 命令去顯示操作系統中選定的累積活動計數器輸出。

實時獲得 CPU 使用率的報告

sar -u 3 10

Linux 2.6.18-164.2.1.el5 (www-03.nixcraft.in)   12/14/2009
 
09:49:47 PM CPU %user %nice %system %iowait %steal %idle
09:49:50 PM all 5.66 0.00 1.22 0.04 0.00 93.08
09:49:53 PM all 12.29 0.00 1.93 0.04 0.00 85.74
09:49:56 PM all 9.30 0.00 1.61 0.00 0.00 89.10
09:49:59 PM all 10.86 0.00 1.51 0.04 0.00 87.58
09:50:02 PM all 14.21 0.00 3.27 0.04 0.00 82.47
09:50:05 PM all 13.98 0.00 4.04 0.04 0.00 81.93
09:50:08 PM all 6.60 6.89 1.26 0.00 0.00 85.25
09:50:11 PM all 7.25 0.00 1.55 0.04 0.00 91.15
09:50:14 PM all 6.61 0.00 1.09 0.00 0.00 92.31
09:50:17 PM all 5.71 0.00 0.96 0.00 0.00 93.33
Average: all 9.24 0.69 1.84 0.03 0.00 88.20

3 表示間隔時間
10 表示次數

,輸入:

查看進程創建的統計數據

sar -c 3 10

查看 I/O 和傳輸率統計數據

sar -b 3 10

查看內存頁面統計數據

sar -B 3 10

查看塊設備統計數據

sar -d 3 10

查看所有中斷的統計數據

sar -I XALL 3 10

查看網絡設備特定的統計數據

sar -n DEV 3 10
sar -n EDEV 3 10

查看 CPU 特定的統計數據

sar -P ALL
# Only 1st CPU stats
sar -P 1 3 10

查看隊列長度和平均負載的統計數據

sar -q 3 10

查看內存和交換空間的使用統計數據

sar -r 3 10
sar -R 3 10

查看 inode、文件、和其它內核表統計數據狀態

sar -v 3 10

查看系統切換活動統計數據

sar -w 3 10

查看交換統計數據

sar -W 3 10

查看一個 PID 爲 3256 的 Apache 進程

sar -x 3256 3 10

識別 Linux 服務器的 CPU 瓶頸

使用 sar 命令和 kSar 工具,可以得到內存、CPU、以及其它子系統的詳細快照。例如,如果 CPU 使用率在一個很長的時間內持續高於 80%,有可能就是出現了一個 CPU 瓶頸。使用 sar -x ALL 你可以找到大量消耗 CPU 的進程。

mpstat 命令 的輸出(sysstat 包的一部分)也會幫你去了解 CPU 的使用率。但你可以使用 kSar 很容易地去分析這些信息。

找出 CPU 瓶頸後 …

對 CPU 執行如下的調整:

  1. 確保沒有不需要的進程在後臺運行。關閉 Linux 上所有不需要的服務。
  2. 使用 cron 在一個非高峯時刻運行任務(比如,備份)。
  3. 使用top 和 ps 命令 去找出所有非關鍵的後臺作業/服務。
  4. 使用 renice 命令 去調整低優先級作業。
  5. 使用 taskset命令去設置進程使用的 CPU (卸載所使用的 CPU),即,綁定進程到不同的 CPU 上。例如,在 2# CPU 上運行 MySQL數據庫,而在 3# CPU 上運行 Apache。
  6. 確保你的系統使用了最新的驅動程序和固件。 如有可能在系統上增加額外的 CPU。
  7. 爲單線程應用程序使用更快的 CPU(比如,Lighttpd web 服務器應用程序)。
  8. 爲多線程應用程序使用多個CPU(比如,MySQL 數據庫服務器應用程序)。
  9. 爲一個 web 應用程序使用多個計算節點並設置一個 負載均衡器。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章