图:BPF性能工具及其可见性
bcc及依赖安装(参考:INSTALL.md)。1、execsnoop 短时进程追踪工具,抓出短时间内谁在搞事情。使用场景:有些进程运行时间太短(可能是不断崩溃重启),因而使用其他工具无法捕获到相关信息。
# /usr/share/bcc/tools/execsnoop -t
TIME(s) PCOMM PID PPID RET ARGS
0.996 head 12101 6578 0 /usr/bin/head -v -n 8 /proc/meminfo
0.996 head 12102 6578 0 /usr/bin/head -v -n 2 /proc/stat /proc/version /proc/uptime /proc/loadavg /proc/sys/fs/file-nr /proc/sys/kernel/hostname
0.998 tail 12103 6578 0 /usr/bin/tail -v -n 16 /proc/net/dev
1.000 df 12104 6578 0 /usr/bin/df
1.002 who 12105 6578 0 /usr/bin/who
1.004 sleep 12106 6578 0 /usr/bin/sleep 1
2.006 head 12107 6578 0 /usr/bin/head -v -n 8 /proc/meminfo
2.008 head 12108 6578 0 /usr/bin/head -v -n 2 /proc/stat /proc/version /proc/uptime /proc/loadavg /proc/sys/fs/file-nr /proc/sys/kernel/hostname
2.010 tail 12109 6578 0 /usr/bin/tail -v -n 16 /proc/net/dev
2.011 df 12110 6578 0 /usr/bin/df
2.013 who 12111 6578 0 /usr/bin/who
2.015 sleep 12112 6578 0 /usr/bin/sleep 1
3.017 head 12113 6578 0 /usr/bin/head -v -n 8 /proc/meminfo
3.018 head 12114 6578 0 /usr/bin/head -v -n 2 /proc/stat /proc/version /proc/uptime /proc/loadavg /proc/sys/fs/file-nr /proc/sys/kernel/hostname
3.020 tail 12115 6578 0 /usr/bin/tail -v -n 16 /proc/net/dev
3.021 df 12116 6578 0 /usr/bin/df
3.023 who 12117 6578 0 /usr/bin/who
3.025 sleep 12118 6578 0 /usr/bin/sleep 1
4.027 head 12119 6578 0 /usr/bin/head -v -n 8 /proc/meminfo
4.028 head 12120 6578 0 /usr/bin/head -v -n 2 /proc/stat /proc/version /proc/uptime /proc/loadavg /proc/sys/fs/file-nr /proc/sys/kernel/hostname
4.031 tail 12121 6578 0 /usr/bin/tail -v -n 16 /proc/net/dev
4.033 df 12122 6578 0 /usr/bin/df
4.036 who 12123 6578 0 /usr/bin/who
4.038 sleep 12124 6578 0 /usr/bin/sleep 1
5.040 head 12125 6578 0 /usr/bin/head -v -n 8 /proc/meminfo
5.042 head 12126 6578 0 /usr/bin/head -v -n 2 /proc/stat /proc/version /proc/uptime /proc/loadavg /proc/sys/fs/file-nr /proc/sys/kernel/hostname
2、biolatency 开始运行后一段时间后,手动Ctrl + C 结束统计,输出此段时间内各自耗时区间的IO事件个数。
默认微秒区间,-m 参数则是毫秒区间。
# /usr/share/bcc/tools/biolatency
Tracing block device I/O... Hit Ctrl-C to end.
^C
usecs : count distribution
0 -> 1 : 0 | |
2 -> 3 : 0 | |
4 -> 7 : 0 | |
8 -> 15 : 0 | |
16 -> 31 : 0 | |
32 -> 63 : 0 | |
64 -> 127 : 0 | |
128 -> 255 : 0 | |
256 -> 511 : 6 |******** |
512 -> 1023 : 10 |************* |
1024 -> 2047 : 19 |************************* |
2048 -> 4095 : 30 |****************************************|
4096 -> 8191 : 23 |****************************** |
8192 -> 16383 : 1 |* |
16384 -> 32767 : 0 | |
32768 -> 65535 : 0 | |
65536 -> 131071 : 0 | |
131072 -> 262143 : 2 |** |
--End--