Категория:Выделенные сервера

Материал из Wiki.Hosting.UA
Версия от 15:58, 8 января 2008; Bezha (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Почему скорость скачки такая низкая - 1.5-2 Мбит/с?


Вероятно вы проверяли скорость скачивания в 1 поток. (При этом вы могли заметить, что скорость скачивания каждого пользователя не изменялась при подключении дополнительных сессий скачивания).

Здесь играет роль размер пинга и значение параметра TCP Window операционной системы на вашем компьютере.
TCP/IP как известно - протокол с коррекцией ошибок.
Каждый пакет содержит в себе контрольную сумму (CRC) данных которые он несет.
При создании пакета, хост-источник вычисляет CRC.
Хост-получатель - принимает пакет, сравнивает полученные данные и CRC - если контрольная сумма не верна (пакет пришел с ошибками) - он перезапрашивает посылку этого пакета, если все верно - он подтверждает получение и запрашивает следующий.
Есественно - что в момент отсылки-получения пакеты подтверждения/запроса на ретрансляцию - передача данных не ведется, не ведется она ровно то время которое пакет идет от хоста-назначения к хосту-источнику (а именно время того самого PING'a) - что _напрямую влияет на общую скорость потока которую вы получаете_.
Для ускорения TCP/IP - существует понятие TCP Window - т.е. передается не 1 пакет за раз, а несколько.
Количество пакетов которые передаются за раз, определяется размером TCP Window ("окна" TCP).
Формула для получения оптимального размера окна, для конкретных условий сети следующая:
размер TCP "окна" (байт) = пропускная способность (бит/c) * задержка (секунд) / 10
скорость 100мбит/c - 125000000
100ms пинг - это 0.1 секунды
деление на 10 - чтобы получить размер в байтах (допуская небольшую погрешность)
Итого, размер окна для скорости 100 мегабит и пинге 100мс:
размер окна = 125000000 * 0.1 / 10 = 1250000 байт

Размер окна по умолчанию в линуксе = 131071 байт

Как известно, Windows оптмизирован для работы в скоростных сетях с малым размером пинга - LAN сетях.
Естественно размер окна согласовывается между обоими сторонами.
Значение TCP Window по умолчанию можно изменить в реестре -
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]

Для линукса, мы можем рекомендоваться следующие настройки, для пинга 100ms, чтобы скорость в 1 поток могла достигнуть 400 и более мегабит в секунду (в зависимости от стороны получателя) на передачу.
В /etc/sysctl.conf добавить:
net.core.wmem_max = 6553600
net.ipv4.tcp_rmem = 4096 655360 6553600
net.core.rmem_max = 6553600
net.ipv4.tcp_wmem = 4096 655360 6553600
net.ipv4.tcp_window_scaling = 1

C точки зрения объективного качества каналов на 2007 год мы рекомендуем ставить:
net.core.wmem_max = 1940160
net.ipv4.tcp_rmem = 4096 194016 1940160
net.core.rmem_max = 1940160
net.ipv4.tcp_wmem = 4096 194016 1940160
net.ipv4.tcp_window_scaling = 1

Страницы в категории «Выделенные сервера»

Показано 2 страницы из 2 имеющихся.

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
ССЫЛКИ НА РАЗДЕЛЫ
Инструменты