Как правило, вы можете использовать некоторые из расширенных переключателей утилиты iperf , чтобы получить представление о производительности сети между системами, в частности о задержке и джиттере ...
Это поток сообщений на основе UDP или TCP?
Я прокомментировал выше, что мне нужна дополнительная информация о вашей настройке. Если это приложение для обмена сообщениями с малой задержкой, существует целый мир методов настройки и оптимизации , которые охватывают настройку оборудования, драйверов и ОС. Но на самом деле нам нужно больше информации.
Edit:
Хорошо, это обмен сообщениями TCP. Вы изменили какие-либо параметры /etc/sysctl.conf
? Как выглядят ваши буферы отправки / получения? Использование одного только ядра реального времени мало что дает, но если вы перейдете к точке, где вы привязываете прерывания к процессору, изменение приоритета в реальном времени приложения для обмена сообщениями ( chrt
) и, возможно, изменение профиля системы tuned-adm
может помочь ...
Звучит как общая система EL6 , поэтому простой способ установить базовый уровень настройки производительности заключается в изменении профиля производительности системы на другой, доступный в рамках настроенной среды . Затем строите оттуда.
В вашем случае:
yum install tuned tuned-utils
tuned-adm profile latency-performance
Быстрая матрица, показывающая различия:
Не могли бы вы рассказать нам об оборудовании? Типы процессора, сетевой карты, памяти?
Итак, может быть интересно проверить вашу ссылку ... Попробуйте этот тест iperf ...
В одной системе запустите прослушиватель UDP iperf. С другой стороны, откройте соединение с первым ... Быстрый тест качества линии.
# Server2
[root@server2 ~]# iperf -su
# Server1
[root@server1 ~]# iperf -t 60 -u -c server2
В моем случае низкий джиттер и малое время пинга:
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 224 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.15.3 port 5001 connected with 172.16.2.152 port 36312
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0-20.0 sec 2.50 MBytes 1.05 Mbits/sec 0.012 ms 0/ 1785 (0%)
PING server1 (172.16.2.152) 56(84) bytes of data.
64 bytes from server1 (172.16.2.152): icmp_seq=1 ttl=63 time=0.158 ms
64 bytes from server1 (172.16.2.152): icmp_seq=2 ttl=63 time=0.144 ms
Я бы проверил оборудование и интерфейсы на наличие ошибок. Если хотите, исключите переключение между системами и посмотрите, как выглядит прямое соединение. Вам не нужен высокий джиттер (дисперсия), поэтому проверьте это.
Но, честно говоря, даже с учетом времени пинга, которое вы получаете при текущей настройке, этого должно быть недостаточно, чтобы убить ваше приложение. Я бы пошел по пути настройки ваших буферов отправки / получения. См .: net.core.rmem_max
, net.core.wmem_max
и их значения по умолчанию ...
Что-то вроде следующего в /etc/sysctl.conf
(настройте по вкусу):
net.core.rmem_default = 10000000
net.core.wmem_default = 10000000
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216