У меня есть два сервера с гигабитными сетевыми картами, которые испытывали серьезные проблемы с задержкой при обмене данными друг с другом. В конце концов, виноватым стало то, что на одном из серверов был установлен порт коммутатора 100 МБ.
пинг серверов всегда возвращал <1 мс
Есть ли инструмент, который мог бы показать фактическую задержку / скорость передачи между серверами по сравнению с максимально возможным?
Осуществляйте мониторинг состояния, собирайте данные, визуализируйте.
Затем поймите с помощью мониторинга, это никогда в реальном времени. Вы всегда смотрите в прошлое.
И посмотрите Джейсона Диксона на DevOpsDays в Риме: Состояние мониторинга открытого исходного кода: хорошее, плохое, ужасное и взгляд в наше будущее.
Вы можете использовать инструмент как iperf чтобы проверить фактическую задержку, джиттер и скорость передачи между двумя серверами. Но это инструмент тестирования.
В вашем конкретном случае ОС было бы совершенно очевидно, что ссылка на сайт скорости различных интерфейсов были.
Проверить задержку не так уж и сложно. Вы можете проверить свою задержку с любыми двумя серверами, подключенными через сеть.
Выполните серию «пинг-понга» между серверами в течение заданного времени (например, 10 секунд). Разделите завершенные «пинг-понги» между серверами по времени. Теперь у вас есть транзакции в секунду.
Давайте пробежимся по цифрам.
Продолжительность теста: 10 секунд Выполнено 5000 транзакций.
Таким образом, вы выполняли 1000 транзакций в секунду. Если ваша транзакция для пинг-понга составляла 128 байт, вы выполняли 128 000 байт в секунду. Это равняется 1 024 000 битам в секунду. Инвертируйте это число (1/1 024 000), и вы можете сказать, что задержка вашей транзакции составила 0,000000978. Это 978 наносекунд за поездку в оба конца.
978 наносекунд - это ваши секунды на бит. Вот сколько времени потребовалось, чтобы отправить бит с одной машины на другую и обратно. Это определение задержки.
Хороший инструмент для выполнения этого теста - netperf (http://www.netperf.org/netperf/). Он будет запускать тест пинг-понга в течение определенного периода времени и давать вам статистику, которую я перечислил выше.
На одном сервере запустите "netserver"
На другом сервере запустите netperf -t UDP_RR -H -l 10 - -r 32
Вы получите всю информацию, которую я перечислил выше. Вы можете запустить математику с этими результатами.
Приветствуем Руководство пользователя Solarflare Onload. Они очень подробно описывают эту методологию тестирования.