Выполнение пакетной передачи ядра Linux

Я использовал поле Linux в качестве маршрутизатора в течение некоторого времени теперь. Ничто также не полагает, просто включив передающий в ядре, включая подмену и установку iptables для ввода по абсолютному адресу нескольких дыр в брандмауэре.

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

Например, у меня есть интернет-соединение на 10 Мбит. Когда я загружаю файл с быстро известного источника с помощью чего-то как DownThemAll! расширение для Firefox (который открывает несколько параллельных соединений TCP) я могу заставить это истратить мою нисходящую пропускную способность на уровне приблизительно 1 МБ/с. Однако то, когда я загружаю тот же файл с помощью встроенного менеджера загрузок в Firefox (использует только единственное соединение TCP), это запускается быстро и корпуса скорости, пока это не завершает строительство каркаса приблизительно 100 кБайт/с к 350 кБайт/с.

Я проверил внутреннюю сеть, и это, кажется, не имеет проблем. Все проходит переключатель на 100 Мбит. Я также выполнил iperf оба внутренне (от маршрутизатора до моего рабочего стола) и внешне (от моего рабочего стола до поля Linux, которым я владею в сети), и не видели проблем. Это достигает высшего уровня, приблизительно 1 МБ/с как он должен. Speedtest.net также сообщает о скоростях на 10 мегабит.

Нагрузка на машину Linux - приблизительно 0,00, 0.00, 0.00 все время, и она имеет много свободной RAM. Это - более старый ноутбук с процессором Pentium M 1.6 GHz и 1 ГБ RAM. Внутренняя сеть подключена к созданному в Intel NIC, и кабельный модем подключен к Netgear FA511 32-разрядная сетевая плата PCMCIA.

Я думаю, что проблема с пакетной передачей в маршрутизаторе, но я честно не уверен, где проблема могла быть. Есть ли что-нибудь, что существенно замедлило бы единственный поток TCP?

2
задан 15.04.2010, 03:19

2 ответа

Проблема была решена. Была своего рода аппаратная проблема (все еще никакая идея что) на машине. После установки того же дистрибутива Linux и реконфигурирования брандмауэра и пакетной передачи тот же путь на другой машине, у меня больше нет проблемы.

Странно.

1
ответ дан 12.12.2019, 00:37

Это наиболее вероятно проблема производительности на поток или в удаленном конце или в Вашем ISP - каждый отдельный поток регулирует, любой сознательно (Ваш ISP) или просто из-за перегрузки (на удаленном сайте, на Вашем ISP, или где угодно промежуточный).

Это вряд ли будет отказ в Вашем конце.

Как пример того, как это работает, когда проблемой является перегрузка, вообразите веб-сервер с 10000Kbyte/sec соединением и никакими другими пределами/узкими местами. Если будет 100 активных соединений, загружающих большие объекты, то они будут, каждый (игнорирование различий, вызванных задержкой и различиями в перегрузке между каждым клиентом и сервером), обходит 100Kbyte/sec в среднем. При открытии пяти соединений вместо одного Вы получили бы что-то больше как 480Kbyte/sec (10000/104*5), в то время как каждый единый поток получает что-то вроде 95Kbyte/sec (10000/104*1). Конечно, в этом примере Вы - единственный с помощью многочисленных связей, который вряд ли будет иметь место в реальной жизни. И также эта математика только работает, если управление трафиком под результатами перегрузки в справедливой средней скорости, данной каждому потоку, снова в реальной жизни, существует много факторов, которые заставят это варьироваться, и управление трафиком может наложить некоторых на пределы хоста сверху любого явного или подразумеваемого на потоковые.

0
ответ дан 12.12.2019, 00:37

Теги

Похожие вопросы