я сделал настройку этот NodeJs TCP Server и протестировал его с помощью флудера сообщений. Просто чтобы посмотреть, как работает сервер.
Хотя пропускная способность сообщений велика, если я запускаю сервер и загрузчик сообщений на одном компьютере (ubuntu), пропускная способность резко уменьшается, если я запускаю сервер на компьютере1 (ubuntu1) и загрузчик сообщений на компьютере2 (также ubuntu). Оба ПК находятся в одной сети. На самом деле они напрямую связаны друг с другом.
Я начал искать в Интернете причины, и я полагаю, мне нужно настроить TCP на обоих компьютерах с Ubuntu, но до сих пор я не добился успеха.
У кого-нибудь были такие проблемы, или кто-нибудь может мне помочь?
Спасибо
Вот код флуда:
var net=require('net')
var client = net.createConnection(5000, "10.0.0.2")
client.addListener("connect", function(){
for(var i = 0; i < 1000; i++) {
client.write("message ");
}
})
Причина, по которой лавинная рассылка отлично работала, когда обе программы работали на одном компьютере, заключается в том, что вам не нужно отправлять какие-либо данные через Ethernet. Все это делается через localhost в интерфейсе обратной связи.
Я считаю, что больше всего в этом случае замедляет работу интерфейсов Ethernet на обоих компьютерах. Для отправки данных через Ethernet требуются ресурсы. Я легко могу максимально использовать свой процессор на небольшом 64-битном компьютере с частотой 1,3 ГГц, где скорость сети составляет всего 100 Мбит / с, а не 1 Гбит / с (хотя Ethernet может быть на 1 Гбит / с, он никогда не сможет достичь его даже близко ).
Конечно, многое зависит также от качества оборудования Ethernet и драйвера Linux.
Рассматривали ли вы использование соединения для соединения 2 интерфейсов Ethernet вместе? В зависимости от режима связывания вы можете балансировать нагрузку трафика между двумя интерфейсами. Это должно улучшить производительность.