天天看點

linux性能測試工具的記錄

stress 是一個 Linux 系統壓力測試工具,用作異常程序模拟平均負載升高的場景。

strees: 壓測指令,–cpu cpu壓測選項,-i io壓測選項,-c 程序數壓測選項,–timeout 執行時間

sysbench 來模拟系統多線程排程切換的情況

顯示平均負載:uptime、top,顯示的順序是最近1分鐘、5分鐘、15分鐘,從此可以看出平均負載的趨勢。

sysstat 包含了常用的 Linux 性能工具,用來監控和分析系統是的性能,找出平均負載升高的根源,包括幾個指令 mpstat 和 pidstat,iostat。

mpstat: 多核cpu性能分析工具,-P ALL監視所有cpu,cswch ,表示每秒自願上下文切換的次數,nvcswch ,表示每秒非自願上下文切換的次數。

pidstat: 程序性能分析工具,-u 顯示cpu使用率

iostat:IO性能分析工具

vmstat 是一個常用的系統性能分析工具,主要用來分析系統的記憶體使用情況,也常用來分析 CPU 上下文切換和中斷的次數。

cs(context switch)是每秒上下文切換的次數。

in(interrupt)則是每秒中斷的次數。

r(Running or Runnable)是就緒隊列的長度,也就是正在運作和等待 CPU 的程序數。

b(Blocked)則是處于不可中斷睡眠狀态的程序數。

cat /proc/interrupts檢視系統中斷次數

cat /proc/stat 檢視系統程序整體的統計資訊

perf 是 Linux 2.6.31 以後内置的性能分析工具。它以性能事件采樣為基礎,不僅可以分析系統的各種事件和核心性能,還可以用來分析指定應用程式的性能問題。perf top,類似于 top,它能夠實時顯示占用 CPU 時鐘最多的函數或者指令,是以可以用來查找熱點函數。perf top 雖然實時展示了系統的性能資訊,但它的缺點是并不儲存資料,也就無法用于離線或者後續的分析。而 perf record 則提供了儲存資料的功能,儲存後的資料,需要你用 perf report 解析展示。在實際使用中,我們還經常為 perf top 和 perf record 加上 -g 參數,開啟調用關系的采樣,友善我們根據調用鍊來分析性能問題。

pstree 就可以用樹狀形式顯示所有程序之間的關系:

execsnoop 就是一個專為短時程序設計的工具。它通過 ftrace 實時監控程序的 exec() 行為,并輸出短時程序的基本資訊,包括程序 PID、父程序 PID、指令行參數以及執行的結果。

dstat可以同時檢視 CPU 和 I/O 這兩種資源的使用情況,便于對比分析

一般來說,我們首先通過uptime檢視系統負載,然後使用mpstat結合pidstat來初步判斷到底是cpu計算量大還是程序争搶過大或者是io過多,接着使用vmstat分析切換次數,以及切換類型,來進一步判斷到底是io過多導緻問題還是程序争搶激烈導緻問題。

繼續閱讀