作者回复: wireshark跟tcpdump原理是一致的,都是在网卡软中断里抓包的,自然就无法抓取网卡里的错误,所以通常情况下都需要在两端同时抓包来比较。理解工具的原理要比会用工具更加重要。
作者回复: 1.会有锁,而且可能还会关中断,这可能会引起业务网络抖动,我们后面课程里有这方面的案例。 2. ebpf通常情况下性能损耗要小一些,因为他在内核里会进行处理,省去了很多无谓的流程开销,或者说它更有针对性,针对某个特定点来追踪,那么这个点之外的逻辑就不会受影响;而tcpdump一是处理流程长,更耗时,二是它不具有针对性,分析面广,这就导致它的开销大。 3. 这类案例的分析会更偏内核实现,比如借助tracepoint来观察内存申请细节,从tracepoint可以观察到gfp_nofs为什么会引起compact fail,然而这类案例对应用开发者或者运维人员太难了,因为很少有人知道gfs_nofs是什么,甚至很多内核开发者都不清楚. 所以这个课程里我会有意的忽略这些内核实现细节,降低内核的门槛,让更多的人更容易了解内核。不过在加餐篇里会有这方面的一些案例,因为我们这门课还是有内核开发者来看的。