Проверка сетевого подключения на сервере с гигабитным Ethernet.

Вопрос или проблема

У меня есть устройство с Gigabit Ethernet, и я не могу превысить 200Mbps или 250Mbps в моих тестах на скорость загрузки.

Я провожу тесты следующим образом:

% wget -6 -O /dev/null --progress=dot:mega http://proof.ovh.ca/files/1Gb.dat
--2013-07-25 12:32:08--  http://proof.ovh.ca/files/1Gb.dat
Resolving proof.ovh.ca (proof.ovh.ca)... 2607:5300:60:273a::1
Connecting to proof.ovh.ca (proof.ovh.ca)|2607:5300:60:273a::1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 125000000 (119M) [application/x-ns-proxy-autoconfig]
Saving to: ‘/dev/null’

     0K ........ ........ ........ ........ ........ ........  2% 5.63M 21s
  3072K ........ ........ ........ ........ ........ ........  5% 13.4M 14s
  6144K ........ ........ ........ ........ ........ ........  7% 15.8M 12s
  9216K ........ ........ ........ ........ ........ ........ 10% 19.7M 10s
 12288K ........ ........ ........ ........ ........ ........ 12% 18.1M 9s
 15360K ........ ........ ........ ........ ........ ........ 15% 19.4M 8s
 18432K ........ ........ ........ ........ ........ ........ 17% 20.1M 7s

С ограничением, что я контролирую только один сервер, который хочу протестировать, а не сайты, против которых хочу провести тесты, как мне провести справедливый тест?

По сути, есть ли инструмент, который позволил бы мне загружать файл размером 100MB в несколько одновременных TCP потоков по HTTP?

Или загрузить несколько файлов одновременно за один раз?

Aria2 — это инструмент командной строки, подобный wget, который поддерживает множественные одновременные загрузки по http, bittorrent, ftp и др.

aria2c -d /dev -o null --allow-overwrite=true -x 15 url --file-allocation=none

Загрузка файла с 15 соединениями в /dev/null.

–allow-overwrite предотвращает попытку aria переименовать /dev/null.

Я предпочитаю не выделять место заранее, так как это задерживает начало загрузки

Ваша скорость будет ограничена самой медленной из доступных связей. У вас может быть 10Gig соединение, но если ваш интернет — это Dialup, вам придется ждать. Даже в локальной сети, которая поддерживает 1GB от конца до конца, возможно, возникнет узкое место на скорости чтения сервера-источника или скорости записи сервера-получателя.

Есть много факторов, влияющих на это:

Во-первых, вы загружаете через Интернет. Допустим, у вас действительно есть гигабитное соединение загрузки:

Перерасход TCP может съесть до 5-10% вашей пропускной способности – для простоты предположим 10%. Таким образом, вы теряете до 900Mbits/s.

Нагрузка на удаленный сервер — важный фактор, и вы не можете его контролировать или видеть. Многие серверы могут легко читать со скоростью 200 MB/s, но под нагрузкой они могут снижать скорость.

Маршрутизация также влияет на скорость. Если ваш маршрут перегружен, скорость снизится.

И, наконец, …у вас действительно гигабитное подключение к Интернету, или это просто скорость вашего порта? Скорость ограничивается самой медленной связью, которую вы пересекаете. Также, если у вас размещенный сервер с гигабитным линком, эти соединения часто делятся между другими клиентами, и вы изначально не получаете выделенную гигабитную линию.

Редактировать: Я не рекомендовал инструмент, потому что их легко найти через Google, и их много.

.

Ответ или решение

Теория

Определение и устранение неполадок сети с гигабитным Ethernet-соединением требует понимания множества факторов, которые могут повлиять на скорость передачи данных. Концептуально, гигабитный Ethernet обеспечивает теоретическую пропускную способность до 1 гигабита в секунду (Gbps), однако, достижение этой скорости на практике может быть осложнено рядом моментов.

Причины ограниченной скорости

  1. TCP-накладные расходы: Технология TCP (Transport Control Protocol) включает накладные расходы, которые могут "съедать" от 5 до 10% вашей пропускной способности. Это означает, что даже в идеальных условиях вы получите только около 900 Мбит/с фактической скорости передачи.

  2. Нагрузка удаленного сервера: Скорость загрузки часто зависит от удаленного сервера, на который вы полагаетесь для передачи контента. Если сервер перегружен, это может значительно замедлить скорость вашей загрузки.

  3. Маршрутизация и интерконнекты: Путь, который данные проходят от источника к вашему устройству, может включать в себя узкие места, где происходит дробление трафика. Если ваша маршрутизация насыщена, это приведет к снижениям скорости.

  4. Общий доступ к соединению: В случае использования выделенного сервера с гигабитным портом, этот ресурс может делиться с другими пользователями. Это означает, что заявленные скорости могут не соответствовать реальным из-за конкуренции за полосу пропускания.

Пример

Предположим, что вы используете команду wget для загрузки тестового файла размером 1GB с использованием IPv6-соединения:

wget -6 -O /dev/null --progress=dot:mega http://proof.ovh.ca/files/1Gb.dat

Несмотря на наличие современного оборудования и уверенность в гигабитном соединении, вы замечаете, что скорость едва достигает 200-250 Мбит/с. Это подчеркнуло бы проблемы, рассмотренные в теории, такие как нагрузка на удаленный сервер или маршрутизацию, или даже локальные ограничения вашего соединения.

Применение

Чтобы провести более справедливый тест, который более точно отражает вашу потенциальную скорость соединения, вы можете использовать инструменты, предназначенные для многопоточности. Одним из таких является Aria2, утилита командной строки, которая поддерживает несколько одновременных загрузок по HTTP и другим протоколам.

Пример команды Aria2 для вашей задачи:

aria2c -d /dev -o null --allow-overwrite=true -x 15 http://proof.ovh.ca/files/1Gb.dat --file-allocation=none

Объяснение параметров:

  • -d /dev -o null указывает, куда сохранить загруженный файл.
  • --allow-overwrite=true предотвратит попытки Aria2 переименовывать файл /dev/null.
  • -x 15 разрешает 15 одновременных соединений, что увеличивает вероятность использования доступной полосы пропускания.

Пока вы не контролируете сервер, от которого скачиваете данные, многопоточный подход способен снизить влияние узких мест, связанных с серверной нагрузкой и отдельными соединениями, в значительной степени улучшая производительность сети.

Заключение

Проблемы с достижением заявленной скорости гигабитного Ethernet часто связаны с факторами, которые вы не можете полностью контролировать: накладные расходы TCP, нагрузка на сервер, маршрутизация и ограничения канала. Применяя инструменты, такие как Aria2, для организации многопоточных загрузок, вы можете максимально эффективно использовать доступные ресурсы, давая более точное представление о потенциальной скорости вашей сети. Однако следует понимать, что физические ограничения сети и инфраструктуры вашего интернет-провайдера часто определяют пределы ваших возможностей.

Оцените материал
Добавить комментарий

Капча загружается...