Solaris/UNIX: может ли snoop замедлить сетевой трафик?
Это то, как я это вижу.
Копия сетевой активности записывается в буфер, и snoop
читает из буфера. Пока snoop способен вывести данные достаточно быстро (запись непосредственно в файл происходит быстрее, чем запись в терминал или bzip
э), тогда буфер никогда не заполнится.
Но если есть большой объем сетевой активности, и snoop
не может написать это быстро, так как оно приходит (по какой-либо причине), то snoop
должен ждать, поэтому оригинальный буфер переполняется.
Если буфер становится большим, что происходит?
- В пользу максимальной пропускной способности, буфер растет бесконечно.
:-/
- В пользу низкого использования памяти некоторые данные могут быть исключены.
:-o
- В пользу стабильных результатов сетевой ввод / вывод остается узким, пока в буфере не остается больше места.
B-)
Я особенно заинтересован в Solaris, но информация о других системах UNIX была бы интересной.
1 ответ
Я думаю, что пакеты отбрасываются с помощью snoop в пользу того, чтобы не задерживать их во время высокой активности.
Snoop предоставляет ключ -D для отображения количества пакетов, отброшенных во время захвата.
-s snaplen
Коммутатор может использоваться для усечения захвата пакета после snaplen
байты и означает меньшую вероятность переполнения буфера в периоды большого трафика.
Раздел предупреждений на странице руководства также говорит об этом
Затраты на обработку намного выше для интерпретации пакетов в реальном времени. Следовательно, количество отбрасываний пакетов может быть выше. Для более надежного захвата выведите необработанные пакеты в файл, используя опцию -o, и проанализируйте пакеты в автономном режиме.