Назад | Перейти на главную страницу

Низкая производительность по сети (Ubuntu)

я сделал настройку этот 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 вместе? В зависимости от режима связывания вы можете балансировать нагрузку трафика между двумя интерфейсами. Это должно улучшить производительность.

http://www.linuxhorizon.ro/bonding.html