Solaris/UNIX: может ли snoop замедлить сетевой трафик?

Это то, как я это вижу.

Копия сетевой активности записывается в буфер, и snoop читает из буфера. Пока snoop способен вывести данные достаточно быстро (запись непосредственно в файл происходит быстрее, чем запись в терминал или bzipэ), тогда буфер никогда не заполнится.

Но если есть большой объем сетевой активности, и snoop не может написать это быстро, так как оно приходит (по какой-либо причине), то snoop должен ждать, поэтому оригинальный буфер переполняется.

Если буфер становится большим, что происходит?

  • В пользу максимальной пропускной способности, буфер растет бесконечно. :-/
  • В пользу низкого использования памяти некоторые данные могут быть исключены. :-o
  • В пользу стабильных результатов сетевой ввод / вывод остается узким, пока в буфере не остается больше места. B-)

Я особенно заинтересован в Solaris, но информация о других системах UNIX была бы интересной.

1 ответ

Решение

Я думаю, что пакеты отбрасываются с помощью snoop в пользу того, чтобы не задерживать их во время высокой активности.

Snoop предоставляет ключ -D для отображения количества пакетов, отброшенных во время захвата.

-s snaplen Коммутатор может использоваться для усечения захвата пакета после snaplen байты и означает меньшую вероятность переполнения буфера в периоды большого трафика.

Раздел предупреждений на странице руководства также говорит об этом

Затраты на обработку намного выше для интерпретации пакетов в реальном времени. Следовательно, количество отбрасываний пакетов может быть выше. Для более надежного захвата выведите необработанные пакеты в файл, используя опцию -o, и проанализируйте пакеты в автономном режиме.

Другие вопросы по тегам