Solaris / UNIX:snoop是否有可能减慢networkingstream量?

这是我看到它的方式。

networking活动的一个副本被写入缓冲区, snoop从缓冲区中读取数据。 只要snoop能够快速地获取数据(直接写入文件比写入terminal或bzip er更快),那么缓冲区永远不会被填满。

但是,如果有大量的networking活动,并且snoop无法快速写出(无论出于何种原因),那么snoop必须等待,因此原始缓冲区已满。

如果缓冲区变大,会发生什么?

  • 为了获得最大的吞吐量,缓冲区将无限增长。 :-/
  • 由于内存使用率低,有些数据可能被排除。 :-o
  • 为了获得稳定的结果,networkingI / O是瓶颈的,直到缓冲区中有更多的空间。 B-)

我对Solaris特别感兴趣,但其他UNIX系统上的信息会很有趣。

我认为,数据包会因为窥探而下降,而不会在高活动期间拖延数据包。

Snoop提供-D开关来显示捕获期间丢弃的数据包数量。

-s snaplen交换机可以用于截断snaplen字节后的数据包捕获,意味着在高stream量期间缓冲区溢出的可能性较小。

手册页的警告部分也是这样说的

实时数据包parsing的处理开销要高得多。 因此,数据包丢弃计数可能会更高。 为了更可靠的捕获,使用-o选项将原始数据包输出到文件并离线分析数据包。