使用BCC工具分析系統性能

系統管理員能夠經過利用BCC(BPF Compiler Collection)庫的工具來分析操做系統性能和獲取操做系統信息。

BCC介紹

BCC工具全稱BPF Compiler Collection (BCC),是一個很強大的庫,強大的內核分析工具eBPF就是基於BCC開發的,利用這個庫能夠從底層獲取操做系統性能信息,網絡性能信息等許多與內核交互的信息。html

在RHEL中開箱即用的bcc-tools工具封裝了BCC,使得用戶很容易使用它來分析系統性能linux

安裝BCC工具

$ yum install bcc-tools

安裝後的bcc工具包在/usr/share/bcc/tools目錄下,能夠經過doc文檔瞭解所有的工具。shell

使用execsnoop工具分析系統進程

1.首先在終端1運行execsnop程序vim

$ /usr/share/bcc/tools/execsnoop

2.而後在新終端2中執行操做,如bash

$ ls /usr/share/bcc/tools/doc/

3.此時能夠在終端1中能夠看到終端2操做的信息網絡

PCOMM    PID    PPID   RET ARGS
ls       8382   8287     0 /usr/bin/ls --color=auto /usr/share/bcc/tools/doc/
sed     8385   8383     0 /usr/bin/sed s/^ \*\[0-9\]\\+ \*//
...

execsnoop程序會獲取每一個使用系統資源的新進程,包含進程名稱,PID,PPID,返回值,參數等ide

使用opensnoop跟蹤打開的文件句柄

1.在終端1中運行opensnoop程序工具

$ /usr/share/bcc/tools/opensnoop -n name

好比這個命令會跟蹤uname命令打開的文件
2.在終端2中執行uname
3.在終端1中會顯示uname執行過程當中打開的文件列表oop

PID    COMM     FD ERR PATH
8596   uname     3  0   /etc/ld.so.cache
8596   uname     3  0   /lib64/libc.so.6
8596   uname     3  0   /usr/lib/locale/locale-archive
...

使用biotop分析磁盤I/O操做

1.在終端1中運行biotop程序性能

$ /usr/share/bcc/tools/biotop 30

上面的命令會監控30秒內磁盤IO最頻繁的進程
2.在終端2中執行dd讀寫一下磁盤

$ dd if=/dev/vda of=/dev/zero

3.在終端1中能夠看到IO最頻繁的進程時dd

PID    COMM             D MAJ MIN DISK       I/O  Kbytes     AVGms
9568   dd               R 252 0   vda      16294 14440636.0  3.69
48     kswapd0          W 252 0   vda       1763 120696.0    1.65
7571   gnome-shell      R 252 0   vda        834 83612.0     0.33
1891   gnome-shell      R 252 0   vda       1379 19792.0     0.15
7515   Xorg             R 252 0   vda        280  9940.0     0.28

使用xfsslower分析致使系統變慢的操做

1.在終端1中運行xfsslower程序

$ /usr/share/bcc/tools/xfsslower 1

上面的命令會分析系統讀寫性能,會記錄讀寫用時超過1ms的操做
2.在終端2中進行寫文件操做

$ vim test

3.在終端1中顯示vim操做

TIME     COMM           PID    T BYTES   OFF\_KB   LAT(ms) FILENAME
13:07:14 b'bash'        4754   R 256     0           7.11 b'vim'
13:07:14 b'vim'         4754   R 832     0           4.03 b'libgpm.so.2.1.0'
13:07:14 b'vim'         4754   R 32      20          1.04 b'libgpm.so.2.1.0'

在/usr/share/bcc/tools/doc/目錄中有對每一個工具的介紹和使用文檔

在咱們分析系統遇到困難時,利用bcc工具更深刻的瞭解系統的運行過程有時頗有幫助。

analyzing-system-performance-with-bpf-compiler_collection

相關文章
相關標籤/搜索