【发布时间】:2017-10-04 00:57:49
【问题描述】:
我正在尝试在我的 Linux 服务器上调试一些问题:
每 2 分钟我就会有一些 igmp 查询,我想查找其来源。
从 Wireshark 捕获中,我看到了查询的执行时间:
**1488124556.773784** IP 0.0.0.0 > all-systems.mcast.net: igmp query v2
这次我可以毫无问题地转换为实时:
**[root@server ~]# date -d @1488124556.773784: ->
Sun Feb 26 10:55:56 EST 2017**
但是当我尝试使用 perf 命令跟踪 linux 进程时:
perf trace -a -T -o trace.out
在trace.out:
**15471296674.961** ( 0.023 ms): qemu-kvm/6621 ioctl(fd: 12<anon_inode:kvm-vcpu>, cmd: 0xae80 ) = 0
**15471296674.979** ( 0.011 ms): qemu-kvm/6621 ioctl(fd: 12<anon_inode:kvm-vcpu>, cmd: 0xae80
) = 0
**15471296674.986** ( 0.004 ms): qemu-kvm/6621 ioctl(fd: 6<anon_inode:kvm-vm>, cmd: 0xc008ae67, arg: 0x7fbba66bf9d0
15471296674.990 ( 0.002 ms): qemu-kvm/6621 ioctl(fd: 6<anon_inode:kvm-vm>, cmd: 0xc008ae67, arg: 0x7fbba66bf9f0 ) = 0
**15471296675.002** ( 0.010 ms): qemu-kvm/6621 ioctl(fd: 12<anon_inode:kvm-vcpu>, cmd: 0xae80
**15471296675.009** ( 0.003 ms): qemu-kvm/6621 ioctl(fd: 6<anon_inode:kvm-vm>, cmd: 0xc008ae67, arg: 0x7fbba66bf9f0
**15471296675.021** ( 0.010 ms): qemu-kvm/6621 ioctl(fd: 12<anon_inode:kvm-vcpu>, cmd: 0xae80 ) = 0
我发现时间不是纪元格式:
从我找到的性能页面手册
-T --time 打印完整的时间戳而不是相对于第一个样本的时间。
我的问题:
是否可以在 Wireshark 和 perf 跟踪工具中找到相同的时间戳格式或类型?
谢谢。
【问题讨论】:
-
wireshark 和 perf 是否都在同一台机器(虚拟机)上运行?您的 VM 主机和来宾 VM 上的系统时间是否相同?这两个工具都应该使用 unixtime(从 1970 年开始的秒数):wireshark.org/docs/wsug_html_chunked/ChAdvTimestamps.html 和 perf(至少在
perf record/perf script或perf script -D对 man7.org/linux/man-pages/man1/perf-record.1.html 中)
标签: linux debugging networking wireshark perf