Чтобы получить максимальную производительность со встроенным BitTorrent-клиентом Transmission, необходимо наличие качественных пиров у раздачи, быстро работающий контроллер у накопителя, а также как можно меньше фрагментированный накопитель и минимум одновременно загруженных и работающих пользовательских (юзерспейсных) приложений.
По умолчанию в релизах операционной системы KeeneticOS установлено максимальное ограничение скорости закачки и раздачи в зависимости от модели интернет-центра. Эти значения вы найдете в инструкции Интерфейс Torrent-клиента Transmission.
Данное ограничение выставлено с учетом лабораторных исследований BitTorrent-клиента Transmission в KeeneticOS, опираясь на качественную линию, большого количества пиров, серверов (узлов), отключенный протокол uTP, отключенное расширение Peer exchange (PEX) и Local Peer Discovery (LPD).
При данных значениях не происходит влияние на работу процессора роутера, так как это не NAS-сервер хранения данных на файловом уровне, а в первую очередь маршрутизатор, на котором работают различные сервисы и он предназначен прежде всего для подключения сетевых устройств к Интернету и пересылки пакетов между различными сегментами сети на основе правил и таблиц маршрутизации. Поэтому не нужно допускать монопольный "захват" всей памяти роутера и ресурсов процессора (CPU) таким ресурсоёмким приложением как Transmission. Для этих целей выставлены ограничения на загрузку/отдачу, которые не рекомендуется изменять.
Чтобы получить максимальную скорость загрузки/отдачи, необходимо учитывать следующие факторы:
- На какой носитель осуществляется запись файла — твердотельный накопитель SSD или жёсткий диск HDD (5400 rpm, 7200 rpm — распространенные стандарты скорости вращения шпинделя);
- Наличие "хороших" пиров, кто участвует в раздаче файла, при этом обменивается его (файла) "кусками", сегментами равной длины;
- Как ваш интернет-канал (провайдер) взаимодействует, при помощи однорангового протокола BitTorrent через торрент-клиент, с инфраструктурой узла (трекер, сервер);
- Какое количество TCP-сессий (поток) генерируется при загрузке торрент-файла;
- Скорость зависит от выставленного номера порта для Входящих соединений (по умолчанию 51413, который не блокирует большинство трекеров);
- От размера кластера NTFS. Рекомендуем изменить значение по умолчанию 4K на 8K при форматировании диска.
- От фрагментации разделов и срабатывания преаллокации файловой системы NTFS (преаллокация, англ. persistent preallocation, preallocation — предварительное выделение места, блоков для записи, в файловой системе для скачиваемого файла).
Так как сейчас большинство сетевых узлов фильтруется системами DPI провайдера, то загрузку/раздачу торрент-файла можно осуществлять в базе данных распределенной хеш-таблицы DHT (Distributed HashTable). Но и тут не стоит забывать про "хороших" пиров, которые находятся внутри этой базы данных, общей DHT-сети. Данный протокол включен по умолчанию в торрент-клиенте Transmission, тем самым помогает снижать нагрузку на CPU системы и увеличит пропускную способность загрузки файла, так как быстрее находится ближайший пир с "ключом" информации (данных файла).
Для теста подключим SSD-накопитель с настройками по умолчанию и получаем такие скорости, например на Keenetic Viva (KN-1910):
В нашем примере Uplink 100 Мбит/с, тариф до 100 Мбит/с, у торрент-клиента скорость загрузки на диск до 100 Мбит/с = до 11 Мбайт/с:
Если вам провайдер предоставляет канал 1 Гбит/с, вы хотите получить максимальную производительность и задействовать все аппаратные возможности роутера, можно использовать сторонние BitTorrent-клиенты из OPKG Entware:
NOTE: Важно! Рекомендуется ограничить скорость раздачи/отдачи в торрент-клиенте, чтобы исключить проблему в работе устройства при максимальных нагрузках!
Задействуйте область подкачки swap: Как подготовить USB-накопитель для использования в качестве хранилища и одновременно расширения объема оперативной памяти интернет-центра?
Если вы планируете записывать объемные данные, рекомендуется перейти на файловую систему EXT4, для которой не требуется преаллокация (preallocation): Использование файловой системы EXT4 на USB-накопителях
В системном журнале Keenetic вы можете наблюдать сообщения вида:
[I] transmissiond: Earth (2015) Retrying scrape in 7211 seconds. [I] transmissiond: Earth (2015) Scrape error: Could not connect to tracker [I] transmissiond: Earth (2015) Retrying scrape in 7240 seconds. [I] transmissiond: Earth (2015) Scrape error: Could not connect to tracker [I] transmissiond: Earth (2015) Retrying scrape in 7220 seconds. [I] transmissiond: Earth (2015) Scrape error: Could not connect to tracker
или после добавления торрент-файла вы видите желтый треугольник с "восклицательным знаком" возле названия добавленного торрент-файла или ошибки в разделе Trackers у доменного имени трекер-сервера (ресурса), с которого был скачан файл, это значит, что в сети провайдера осуществляется фильтрация (блокировка) на уровне систем DPI (Deep Packet Inspection), которые анализируют передаваемые пакеты на транспортном уровне протоколов TCP/UDP:
При этом вы можете наблюдать, что запись торрент-файла на диск продолжается, так как по умолчанию в торрент-клиенте включена поддержка протокола DHT, при помощи которого образуется общая распределенная DHT-сеть между участниками раздачи файла для быстрого поиска пиров, что позволяет скачать файл.
Наличие "восклицательного знака" также может означать, что на стороне трекер-сервера возникли технические проблемы и он временно или постоянно не доступен.
Если основной торрент-трекер заблокирован вашим провайдером, но при этом осуществляется закачка и раздача торрент-файла, это значит, что работа идет в рамках протокола DHT, т.е. клиенты образуют между собой общую DHT-сеть, которая помогает найти сидеров.
Если наблюдаются проблемы со скачиванием торрент-файла, то для дальнейшей диагностики потребуется сделать следующее:
1. Накопитель подключите к роутеру
2. В веб-конфигураторе перейдите в меню "Приложения" в раздел "Torrent-клиент" и удалите файл конфигурации приложения Transmission, нажав на кнопку "Восстановить settings.json":
3. Перейдите в интерфейс торрент-клиента (GUI), отметьте "Включить DHT" и в поле "Включить очередь загрузки, одновременно" установите значение "1":
4. Добавьте настройку отправки DNS-запросов доменных имен по протоколу DNS over TLS (DoT):
Подробную информацию о встроенном в Keenetic торрент-клиенте можно найти в инструкциях Torrent-клиент и Интерфейс Torrent-клиента Transmission.
Пример работы торрент-файла можно найти по ссылке.
Для встроенного торрент-клиента Transmission открывать или пробрасывать порт не нужно, так как он автоматически открывается в NAT системой:
== Chain _NDM_IP_PUBLIC ==
src: 0.0.0.0/0, dst: 0.0.0.0/0, in: "*", out: "*", proto: "TCP"; "tcp" match, mask: , cmp: , dport: 51413; ACCEPT
При тестировании открытых портов на роутере вы будете видеть, что порт закрыт. Из-за приватной адресации на ISP-интерфейсе проверка порта проходить не будет.
Ещё раз обращаем ваше внимание, что для встроенного Transmission открывать и пробрасывать порт не нужно, так как операционная система KeeneticOS при включении клиента или смены порта сразу же добавляет соответствующую запись в NAT.
Вот если бы TCP/51413 в NAT не было и мы не видели записей ASSURED в таблице fastnat:
Line 9141: UDP 17 src=10.201.58.157 dst=95.37.216.25 sport=51413 dport=56212 packets=2 bytes=211 src=95.37.216.25 dst=10.201.58.157 sport=56212 dport=51413 packets=2 bytes=1258 [ASSURED] [FASTNAT] mark=0x00000000 ndmmark=0x00 Line 9141: UDP 17 src=10.201.58.157 dst=95.37.216.25 sport=51413 dport=56212 packets=2 bytes=211 src=95.37.216.25 dst=10.201.58.157 sport=56212 dport=51413 packets=2 bytes=1258 [ASSURED] [FASTNAT] mark=0x00000000 ndmmark=0x00 Line 9146: UDP 17 src=10.201.58.157 dst=14.117.184.147 sport=51413 dport=9601 packets=2 bytes=250 src=14.117.184.147 dst=10.201.58.157 sport=9601 dport=51413 packets=1 bytes=97 [ASSURED] [FASTNAT] mark=0x00000000 ndmmark=0x00 Line 9146: UDP 17 src=10.201.58.157 dst=14.117.184.147 sport=51413 dport=9601 packets=2 bytes=250 src=14.117.184.147 dst=10.201.58.157 sport=9601 dport=51413 packets=1 bytes=97 [ASSURED] [FASTNAT] mark=0x00000000 ndmmark=0x00
это бы означало, что нет соединения на данный порт из-за блокировки провайдером. Тогда нужно менять данный порт (TCP/51413) на другой, который не блокируется провайдером.