这篇文档主要演示了 tcplife(Linux eBPF/bcc) 工具的使用.
示例 #
tcplife 总结了在跟踪期间打开和关闭的 TCP 会话. 比如:
|
|
这捕获了一个程序 “recordProg”, 它建立了一些到 “redis-serv” 的短暂的 TCP 连接, 每个连接持续大约 0.25 毫秒. 还有几个 “curl” 会话也被跟踪, 连接到端口 80, 持续了 91 和 121 毫秒.
此工具对于工作负载表征和流量统计很有用: 识别正在发生的连接以及传输的字节.
在这个例子中, 我上传了一个 10 Mbyte 的文件到服务器, 然后再次使用 scp 下载:
|
|
可以看到 sshd 接收了 10 MB, 然后再传输出去. 看起来, 接收(3.07 秒)比传输(2.18 秒)慢.
宽显 #
进程名称被截断为 10 个字符. 通过使用宽选项 -w, 列宽变为 16 个字符. IP 地址栏也更宽, 以适合 IPv6 地址:
|
|
添加时间戳 #
可以使用 -t 添加时间戳:
|
|
这表明 recordProg 进程每秒连接一次.
另外 -T 选项可以使用 HH:MM:SS 格式时间戳.
逗号分隔列表 #
-s 选项可以指定逗号分隔的列表模式. 这里同时使用了 -t 和 -T 类型的时间戳:
|
|
端口过滤 #
还有过滤本地/远端端口的选项. 这里就过滤了本地 22 和 80 端口.
|
|
USAGE 说明 #
|
|