使用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

相关文章
相关标签/搜索