9,netstat
netstat 用于顯示與 IP、TCP、UDP和 ICMP 協議相關的統計數據,一般用于檢驗本機各端口的網絡連接情況。
常見用法:
netstat –npl # 可以查看你要打開的端口是否已經打開。
netstat –rn # 打印路由表信息。
netstat –in # 提供系統上的接口信息,打印每個接口的MTU,輸入分組數,輸入錯誤,輸出分組數,輸出錯誤,沖突以及當前的輸出隊列的長度。
10, ps--顯示當前進程的狀態
ps 參數太多,具體使用方法可以參考 man ps
常用的方法:
ps aux #hsserver
ps –ef |grep #hundsun
殺掉某一程序的方法:
ps aux | grep mysqld | grep –v grep | awk ‘{print $2 }’ xargs kill -9
殺掉僵尸進程:
ps –eal | awk ‘{if ($2 == “Z”){print $4}}’ | xargs kill -9
11,strace
跟蹤程序執行過程中產生的系統調用及接收到的信號,幫助分析程序或命令執行中遇到的異常情況。
舉例:查看 mysqld 在 linux 上加載哪種配置文件,可以通過運行下面的命令:
strace –e stat64 mysqld –print –defaults > /dev/null
11,uptime
能夠打印系統總共運行了多長時間和系統的平均負載,uptime 命令最后輸出的三個數字的含義分別是 1分鐘,5分鐘,15分鐘內系統的平均負荷。
12,lsof
lsof(list open files)是一個列出當前系統打開文件的工具。通過 lsof 工具能夠查看這個列表對系統檢測及排錯,常見的用法:
查看文件系統阻塞
lsof /boot
查看端口號被哪個進程占用
lsof -i : 3306
查看用戶打開哪些文件
lsof –u username
查看進程打開哪些文件
lsof –p 4838
查看遠程已打開的網絡鏈接
lsof –i @192.168.34.128
13,perf
perf 是 Linux kernel 自帶的系統性能優化工具。優勢在于與 Linux Kernel 的緊密結合,它可以最先應用到加入 Kernel 的new feature,用于查看熱點函數,查看 cashe miss 的比率,從而幫助開發者來優化程序性能。
性能調優工具如 perf,Oprofile 等的基本原理都是對被監測對象進行采樣,最簡單的情形是根據 tick 中斷進行采樣,即在 tick 中斷內觸發采樣點,在采樣點里判斷程序當時的上下文。
假如一個程序 90% 的時間都花費在函數 foo() 上,那么 90% 的采樣點都應該落在函數 foo() 的上下文中。運氣不可捉摸,但我想只要采樣頻率足夠高,采樣時間足夠長,那么以上推論就比較可靠。因此,通過 tick 觸發采樣,我們便可以了解程序中哪些地方最耗時間,從而重點分析。
14, 匯總
結合以上常用的性能測試命令并聯系文初的性能分析工具的圖,就可以初步了解到性能分析過程中哪個方面的性能使用哪方面的工具(命令)。
常用的性能測試工具
熟練并精通了第二部分的性能分析命令工具,引入幾個性能測試的工具,介紹之前先簡單了解幾個性能測試工具:
- perf_events:一款隨 Linux 內核代碼一同發布和維護的性能診斷工具,由內核社區維護和發展。Perf 不僅可以用于應用程序的性能統計分析,也可以應用于內核代碼的性能統計和分析。
- eBPF tools:一款使用 bcc 進行的性能追蹤的工具,eBPF map可以使用定制的 eBPF 程序被廣泛應用于內核調優方面,也可以讀取用戶級的異步代碼。重要的是這個外部的數據可以在用戶空間管理。這個 k-v 格式的 map 數據體是通過在用戶空間調用 bpf 系統調用創建、添加、刪除等操作管理的。
- perf-tools:一款基于 perf_events (perf) 和 ftrace 的Linux性能分析調優工具集。Perf-Tools 依賴庫少,使用簡單。支持Linux 3.2 及以上內核版本。
- bcc(BPF Compiler Collection)::一款使用 eBP F的 perf 性能分析工具。一個用于創建高效的內核跟蹤和操作程序的工具包,包括幾個有用的工具和示例。利用擴展的BPF(伯克利數據包過濾器),正式稱為eBPF,一個新的功能,首先被添加到Linux 3.15。多用途需要Linux 4.1以上BCC。
- ktap:一種新型的linux腳本動態性能跟蹤工具。允許用戶跟蹤Linux內核動態。ktap是設計給具有互操作性,允許用戶調整操作的見解,排除故障和延長內核和應用程序。它類似于Linux和Solaris DTrace SystemTap。
- Flame Graphs:是一款使用 perf,system tap,ktap 可視化的圖形軟件,允許最頻繁的代碼路徑快速準確地識別,可以是使用
github.com/brendangregg/flamegraph
中的開發源代碼的程序生成。
1,Linux observability tools | Linux 性能觀測工具
- 首先學習的Basic Tool有如下:uptime、top(htop)、mpstat、isstat、vmstat、free、ping、nicstat、dstat。
- 高級的命令如下:sar、netstat、pidstat、strace、tcpdump、blktrace、iotop、slabtop、sysctl、/proc。
2, Linux benchmarking tools | Linux 性能測評工具
是一款性能測評工具,對于不同模塊的性能測試可以使用相應的工具,想要深入了解,可以參考最下文的附件文檔。
3,Linux tuning tools | Linux 性能調優工具
是一款性能調優工具,主要是從linux內核源碼層進行的調優,想要深入了解,可以參考下文附件文檔。
4, Linux observability sar | linux性能觀測工具
sar(System Activity Reporter系統活動情況報告)是目前LINUX上最為全面的系統性能分析工具之一,可以從多方面對系統的活動進行報告,包括:文件的讀寫情況、系統調用的使用情況、磁盤I/O、CPU效率、內存使用狀況、進程活動及IPC 有關的活動等方面。sar 的常規使用方式:
sar [options] [-A] [-o file] t [n]
其中:t 為采樣間隔,n 為采樣次數,默認值是1;-o file 表示將命令結果以二進制格式存放在文件中,file 是文件名,options 為命令行選項。
-
Linux
+關注
關注
87文章
11319瀏覽量
209830 -
計算機
+關注
關注
19文章
7518瀏覽量
88192 -
操作系統
+關注
關注
37文章
6847瀏覽量
123427
發布評論請先 登錄
相關推薦
評論