Привет, у меня есть небольшая тестовая сеть, которую я использую для обработки чисел для моей диссертации. Моя сеть состоит из трех машин с гигабитными сетевыми картами Intel (все драйверы em с двумя хостами, настроенными как лагы) с настройками MTU по умолчанию и т. Д., Работающими под Freebsd 9.1 и mpich2.
когда я запускаю mpdringtest, я получаю задержки:
time for 1 loops = 0.00105500221252 seconds
time for 2 loops = 0.101227998734 seconds
time for 3 loops = 0.200784921646 seconds
time for 4 loops = 0.300806045532 seconds
time for 10 loops = 0.942656040192 seconds
time for 100 loops = 11.5054900646 seconds
сетевая задержка:
Max Latency:
from \ to city17 glados blackmesa
city17 0.335 0.739
glados 0.319 0.689
blackmesa 0.992 0.746
Mean Latency:
from \ to city17 glados blackmesa
city17 0.205 0.525
glados 0.195 0.518
blackmesa 0.599 0.503
for hosts
city17:8
glados:4
blackmesa:4
Исходя из моих предположений, каждый цикл должен занимать примерно сумму верхней или нижней треугольной части матрицы средней задержки (полученной с помощью команды ping). Это похоже на результаты одного кольца. Однако для более чем одного звонка время ожидания значительно увеличивается. Я прочитал справочную страницу по этой теме, и на самом деле она мало что объясняла, кроме того, что она передавала сообщение по кольцу. Достаточно ли эти результаты относительно нормальны? задержка и mdpringresults?
Если это важно, используется коммутатор HP procurve 1810g-8 (через коммутатор не проходит другой трафик).
Приблизительные цифры из моего опыта: Gigabit дает вам около 50 мкс (0,50 мс) на физическом уровне и с «правильной» обработкой прерываний, а на текущих машинах / ОС вы должны увидеть пинг между одноранговыми узлами менее 100 мкс.
Максимальная задержка может указывать на то, что у вас возникла проблема из-за объединения прерываний (например, сетевая карта позволяет пакету оставаться в буфере до тех пор, пока не появится тайм-аут), что, как я заметил, является проблемой с картами Broadcom больше, чем с Intel.
Если я правильно понимаю матрицу, то вы видите задержку между 200 и 500 мс в среднем, что для меня звучит слишком много.
Попробуйте начать с проверки связи между двумя хостами, чтобы проверить возможное слияние прерываний, я рекомендую смотреть на зигзагообразные времена (например, 1 2 3 1 2 3 1 2 3) в выводе.
Кроме того, попробуйте выполнить флуд-эхо-запрос между машинами, чтобы увидеть хорошее среднее значение, которое нейтрализует слияние.