У меня есть несколько клиентов, отправляющих данные на один сервер через сокет tcp, все клиенты и сервер работают на серверах linux (CentOS 7.2) с сетевым интерфейсом 10 ГБ.
Но я обнаружил, что производительностьнамного медленнее, чем один клиент и один сервер.
Итак, я провел еще один тест с iperf, инструментом измерения пропускной способности сети.
Сначала запустите сервер на server217, затем используйте один клиент(server218) для проверки пропускной способности, вот результат:
![enter image description here](https://i.stack.imgur.com/xiHUv.png)
и вывод на стороне клиента:
![enter image description here](https://i.stack.imgur.com/iJSTt.png)
затем я использую два клиента (server218 и server219), чтобы запустить тест одновременно, и результат:
![enter image description here](https://i.stack.imgur.com/fM5hi.png)
и вывод на стороне клиента:
![enter image description here](https://i.stack.imgur.com/iuBZQ.png)
Как вы можете видеть, когда я использую два клиента, результат.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
Могу ли я попробовать еще что-нибудь?