Настройка производительности TCP с одним сервером, получающим данные от нескольких клиентов - PullRequest
0 голосов
/ 22 января 2019

У меня есть несколько клиентов, отправляющих данные на один сервер через сокет tcp, все клиенты и сервер работают на серверах linux (CentOS 7.2) с сетевым интерфейсом 10 ГБ.

Но я обнаружил, что производительностьнамного медленнее, чем один клиент и один сервер.

Итак, я провел еще один тест с iperf, инструментом измерения пропускной способности сети.

Сначала запустите сервер на server217, затем используйте один клиент(server218) для проверки пропускной способности, вот результат:

enter image description here

и вывод на стороне клиента:

enter image description here

затем я использую два клиента (server218 и server219), чтобы запустить тест одновременно, и результат:

enter image description here

и вывод на стороне клиента:

enter image description here

Как вы можете видеть, когда я использую два клиента, результат.08 3.08 + 4.04 = 7.12 Гб】】, что намного медленнее, чем предыдущий previous 9.41 Гб】, кроме того, полоса пропускания также bполучается очень нестабильно.

Я пытался установить больший буфер tcp, но не получил никакой разницы.

Исходный tcp-буфер

net.ipv4.tcp_rmem: 4096    87380   6291456
net.ipv4.tcp_wmem: 4096    16384   4194304

Я изменил на

net.ipv4.tcp_rmem: 4096    87380   8388608
net.ipv4.tcp_rmem: 4096    65536   8388608

Могу ли я попробовать еще что-нибудь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...