Я измеряю задержку или задержку, с которой сталкиваются пакеты внутри шлюза, перехватывая пакеты с помощью tcpdump во входных и выходных сетевых адаптерах шлюза. Я отправляю около 800 000 пакетов с хоста-источника на хост-получатель, которые подключены через два GW (т.е. хост-источник => GW1 => GW2 => хост назначения). Я измерил задержку на каждом шлюзе GW, вычитая метки времени на входном сетевом адаптере из меток на выходном сетевом адаптере. Я обнаружил, что задержка непрерывно увеличивается с 2 до 3000 микросекунд. Когда я поменял местами сетевые карты, задержка некоторое время увеличивается, резко уменьшается и снова увеличивается.
И, что удивительно, несмотря на то, что задержка на GW увеличивается, сквозная пропускная способность остается неизменной и составляет около 900 Мбит/с, когда все узлы имеют сетевую карту 1000 Мбит/с.
Не могли бы вы сообщить мне, как произошло такое изменение задержки? Или как временная метка tcpdump была задержана в выходной сетевой карте? Есть ли способ получить отметку времени с точностью до наносекунд?
Спасибо за ответ.
Производительность инфраструктуры не является проблемой. Здесь мы измеряем производительность по пропускной способности и обнаружили, что пропускная способность не снижается, даже если задержка на GW увеличивается с 2 мкс до 3000 мкс.
Для получения дополнительной информации: я измерял задержку на GW, когда GW выполняет разные роли, такие как IP-маршрутизатор, точка туннелирования GRE или NAT. Когда он работает как IP-маршрутизатор, задержка пакетов внутри GW составляет почти ‹=4 микросекунды. Однако, когда GW функционирует как точка туннелирования GRE, задержки непрерывно увеличиваются в 1000 раз в течение нескольких секунд. Это проблема в моем измерении. А поскольку сквозная пропускная способность не меняется, я предполагаю, что эти задержки не настоящие, они могли быть вызваны функциями захвата пакетов и временными метками tcpdump.