Проверка скорости ответа сервера

Многие клиенты обращаются в службу технической поддержки с подобными претензиями: Я подключаюсь к серверу, но файлы передаются медленно со скоростью 10 MB/s при тарифе 100 Mbit/s. Или: У нас в офисе тариф 1 Gbit/s, и мы арендуем сервер со скоростью 1 Gbit/s, а файлы передаются долго и т.д.

Итак, почему же такое может происходить? Давайте разбираться по порядку. На первый вопрос ответ совершенно прост, это всего лишь разница в единицах измерений. Исторически так сложилось, что все интернет провайдеры всегда предлагали свои услуги измеряя скорость в "битах", в то время как производители программного обеспечения и операционных систем проводят измерения в "байтах", что и приводит к разнице в 8 раз.

Многие скажут, мол подождите, ведь даже если так, все равно не хватает ещё 20 Mbit, или 2,5 MB/s как теперь мы знаем. И тут мы уже подбираемся к следующему вопросу.

Дело в том, что достижение максимальной скорости, указанной по тарифу, возможно в лабораторных условиях и практически невозможно в реальных условиях эксплуатации, что частично подтверждается сервисами проверки скорости интернета (speedtest.net, например). Но не спешите гневаться, никто не пытается украсть у вас эти ~20%. В основном, за счет этой разницы достигается целостность доставки данных.

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

  1. Самая первая из возможных и частых причин, это использование протокола, не подходящего по назначению. При использовании таких протоколов как RDP(Windows)/SSH(Linux) часто скорость передачи файлов, может быть даже менее 10% процентов от ширины интернет канала. Так как основная задача этих протоколов – это поддержание связи для управления удаленным устройством, и если весь канал займет передача файлов, то сервером уже управлять не получится.

  2. Вторая по распространённости причина – это бутылочное горлышко. Под этим термином подразумевают наличие узкого места на пути следования данных. Например, Вы заказали услугу с шириной канала 1 Gbit/s, скорость интернет провайдера составляет 1Gbit/s, но используется устаревший Wi-Fi маршрутизатор, который не может передавать информацию на ваше устройство с такой скорость. Также возможно, что бутылочное горлышко может возникать временно у провайдеров в связи с проблемами, авариями, всплесками нагрузки, не оптимальной конфигурацией оборудования и т.д.

  3. Внутренние механизмы ТСР, влияющие на скорость загрузки. Большинство современных протоколов передачи информации на уровне приложения опираются на более низко уровневые сетевые протоколы. Наиболее часто используемым является протокол TCP. Благодаря TCP разработчикам не нужно повторно реализовывать большое количество функционала, например, проверку доставки пакетов. Но протокол TCP для своей работы создает сессии. Скорость по одной такой сессии редко может превышать 300 Mbit/s, как правило, меньше в несколько раз.

  4. Задержка (пинг/лаг) в сети. Чем больше расстояние между вашим устройством и сервером, тем больше времени требуется для передачи данных туда и обратно из-за задержек в сети.

  5. Неэффективные сетевые пути. Маршруты, которые преодолевают данные от сервера к вам, могут быть не оптимальными, что также может привести к замедлению передачи данных.

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

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

iPerf3 – кроссплатформенная консольная клиент-серверная программа, генератор TCP, UDP и SCTP трафика для тестирования пропускной способности сети. Функционал клиента и сервера является полностью бесплатным. Их достаточно просто установить на любой популярной операционной системе.

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

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

Пошаговая инструкция запуска iPerf3 для Windows

Для запуска iPerf3 в роли сервера вам обязательно необходимо следовать двум правилам:

  1. Сервер должен быть доступен по сети из точки проверки, там, где iPerf3 будет запущен как клиент.
  2. На сервере должны быть для входящего подключения открыты TCP и UDP порты на котором запущен сервер iPerf3 (по умолчанию - 5201).

После того как Вы скачали программу с официального сайта и убедились в доступности сервера по сети, нам первым делом нужно настроить брандмауэр Windows.

Запустите командную строку от имени администратора и введите по очереди 2 команды:

netsh advfirewall firewall add rule name="Allow TCP Port 5201 for iPerf3" dir=in action=allow protocol=TCP localport=5201

netsh advfirewall firewall add rule name="Allow UDP Port 5201 for iPerf3" dir=in action=allow protocol=UDP localport=5201

Также данное действие можно выполнить в графическом режиме, необходимы права администратора. Для этого запустите "Панель управления" -> "Система и безопасность" -> "Брандмауэр Защитника Windows" слева в столбце с навигацией найдите "Дополнительные параметры".

В открывшемся окне выберите "Правила для входящих подключений"

Итак, на этом этапе нам необходимо создать 2 правила: 1 – для подключения по TCP и 2 – для подключения по UDP. Нажимаем "Создать правило" -> Устанавливаем галочку "Для порта" -> В первый раз оставляем "Протокол TCP, во второй меняем на "Протокол UDP" в поле "Определенные локальные порты" вводим порт 5201 -> Выбираем "Разрешить подключение" -> Устанавливаем галочки напротив всех профилей -> Указываем понятное для Вас имя правила "Allow TCP/UDP Port 5201 for iPerf3"

Когда мы создали разрешающие правила, можем запустить наш iPerf3 в роли сервера. Для этого нам необходимо найти каталог со скаченной и разархивированной программой и открыть в командной строке. Нажимаем по каталогу правой кнопкой мыши с зажатым Shift, выбираем "Открыть окно PowerShell".

Таким образом командная строка откроется в нужной нам директории и нам останется только запустить сервер iPerf3 командой:

.\iperf3.exe -s

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

Теперь на устройстве, с которого будем проводить тестирование, точно так же откроем командную строку, но введем одну из следующих команд для подключения:

.\iperf3.exe -c ip_your_server -P 5 -t 180 -p 5201

.\iperf3.exe -c ip_your_server -P 5 -t 180 -p 5201 -R

Теперь немного подробнее о ключах для запуска:

Ключ Описание
-c ip_your_server Запуск в режиме клиента для подключения к серверу ip_your_server. Внимание! ip_your_server необходимо заменить реальным адресом.
-P 5 Запускает тестирование в 5 потоков. Рекомендуемые значения от 3 до 5.
-t 180 Тестирование будет длиться в течении 180 секунд.
-p 5201 Указываем порт на котором запущен сервер, в данном случае порт по умолчанию.
-R Запускает тестирование в реверсивном режиме, проверяет скорость от сервера до клиента.

Тестирование в один поток не имеет большого смысла по описанным в начале причинам.

Спустя указанное, в ключе -t количестве секунд, вы увидите усредненный результат по общей скорости:

Также для сравнения необходимо протестировать UDP. Его показатели будут отличаться от TCP. Тестирование UDP в многопоточном режиме нецелесообразно. Однако, необходимо с помощью параметра "-b" задать ширину генерируемого потока. В противном случае он составит 1 Mbit/s. За основу можно взять результаты теста TCP, но завысив его приблизительно в два раза.

iperf3.exe -c ip_your_server -t 180 -p 5201 -u -b 900M

iperf3.exe -c ip_your_server -t 180 -p 5201 -u -b 900M –R

Ключ Описание
-c ip_your_server Запуск в режиме клиента для подключения к серверу ip_your_server. Внимание! ip_your_server необходимо заменить реальным адресом
-u Запускает тестирование по протоколу UDP.
-b 900 Задаем ширину генерируемого потока.
-t 180 Тестирование будет длиться в течении 180 секунд.
-p 5201 Указываем порт на котором запущен сервер, в данном случае порт по умолчанию.
-R Runs testing in reverse mode, checking the speed from the server to the client.

Теперь, после проведения всех 4х тестов, мы можем сделать полноценные выводы о скорости соединения между двумя точками на Windows.

Конфигуратор сервера

Конфигуратор сервера

Создайте собственный выделенный сервер

Смотреть конфигуратор

Пошаговая инструкция запуска iPerf3 для Linux

Тестирование скорости сети на Linux отличается только способом установки пакетов iPerf3. То есть нам все так же необходимо скачать программу и запустить её как сервер на одной стороне и как клиент на другой.

Установка iPerf3 Debian и производных (Ubuntu/Linux Mint/Proxmox):

apt install -y iperf3

Установка iPerf3 RedHat и производных (Centos/Fedora/Oracle Linux)

yum install iperf3

Установка iPerf3 Arch и производных (Manjaro)

pacman -S iperf3

Так как iPerf3 является кроссплатформенной утилитой, то все ключи и команды будут полностью совпадать с ключами для Windows. Также по умолчанию в Linux системах брандмауэр является открытым и не требует предварительных настроек.

Эта статья была полезной?

Тэги:

#server

Понравилась статья?

Согласие на использование файлов cookie

Нажимая «Я согласен», вы даете согласие на использование файлов cookie на нашем веб-сайте, чтобы предоставить вам наиболее релевантный опыт, запоминая ваши предпочтения и повторные посещения. Однако вы можете посетить «Управление файлами cookie», чтобы предоставить контролируемое согласие. Подробнее

Настройки файлов cookie

Функциональные

Необходимые файлы cookie имеют решающее значение для основных функций веб-сайта, и без них веб-сайт не будет работать должным образом.

Аналитические

Аналитические файлы cookie используются для понимания того, как посетители взаимодействуют с веб-сайтом.

Рекламные

Рекламные файлы cookie используются для предоставления посетителям релевантной рекламы и маркетинговых кампаний.