Настройки libtorrent для медленного диска

Кажется, что libtorrent работает хорошо, когда у вас есть быстрый диск, но производительность падает на более медленном диске. Здесь я добавил лог загрузки Ubuntu на флешку со скоростью записи 3,2 МБ/с. Как видите, скорость загрузки постепенно снижается до нуля. Я ограничил лимит подключений до 10, но отсутствие установки лимита подключений также не имеет большого значения, кроме как начиная с 10 МБ/с. Я подозреваю, что диск не может идти в ногу с доступной скоростью загрузки, а обратное давление вызывает снижение скорости более поздней загрузки.

ubuntu-18.04.1-desktop-amd64.iso: 0.00% complete (down: 0.0 kB/s up: 0.0 kB/s peers: 0) checking_resume_data
ubuntu-18.04.1-desktop-amd64.iso: 0.19% complete (down: 777.0 kB/s up: 25.0 kB/s peers: 10) downloading
ubuntu-18.04.1-desktop-amd64.iso: 0.60% complete (down: 1365.0 kB/s up: 42.0 kB/s peers: 10) downloading
ubuntu-18.04.1-desktop-amd64.iso: 1.22% complete (down: 2142.0 kB/s up: 63.0 kB/s peers: 10) downloading
ubuntu-18.04.1-desktop-amd64.iso: 1.67% complete (down: 2240.0 kB/s up: 65.0 kB/s peers: 10) downloading
ubuntu-18.04.1-desktop-amd64.iso: 2.29% complete (down: 2116.0 kB/s up: 61.0 kB/s peers: 10) downloading
ubuntu-18.04.1-desktop-amd64.iso: 2.85% complete (down: 1954.0 kB/s up: 56.0 kB/s peers: 10) downloading
ubuntu-18.04.1-desktop-amd64.iso: 3.33% complete (down: 1931.0 kB/s up: 55.0 kB/s peers: 10) downloading
ubuntu-18.04.1-desktop-amd64.iso: 3.44% complete (down: 932.0 kB/s up: 26.0 kB/s peers: 10) downloading
ubuntu-18.04.1-desktop-amd64.iso: 3.44% complete (down: 305.0 kB/s up: 8.0 kB/s peers: 10) downloading
ubuntu-18.04.1-desktop-amd64.iso: 3.44% complete (down: 100.0 kB/s up: 2.0 kB/s peers: 10) downloading
ubuntu-18.04.1-desktop-amd64.iso: 3.44% complete (down: 32.0 kB/s up: 0.0 kB/s peers: 10) downloading
ubuntu-18.04.1-desktop-amd64.iso: 3.44% complete (down: 10.0 kB/s up: 0.0 kB/s peers: 10) downloading
ubuntu-18.04.1-desktop-amd64.iso: 3.44% complete (down: 3.0 kB/s up: 0.0 kB/s peers: 10) downloading
ubuntu-18.04.1-desktop-amd64.iso: 3.44% complete (down: 1.0 kB/s up: 0.0 kB/s peers: 10) downloading
ubuntu-18.04.1-desktop-amd64.iso: 3.44% complete (down: 0.0 kB/s up: 0.0 kB/s peers: 10) downloading
ubuntu-18.04.1-desktop-amd64.iso: 3.44% complete (down: 0.0 kB/s up: 0.0 kB/s peers: 10) downloading
ubuntu-18.04.1-desktop-amd64.iso: 3.44% complete (down: 0.0 kB/s up: 0.0 kB/s peers: 10) downloading
ubuntu-18.04.1-desktop-amd64.iso: 3.44% complete (down: 0.0 kB/s up: 0.0 kB/s peers: 10) downloading

Как я могу оптимизировать настройки моего libtorrent, чтобы иметь приличную скорость на моей флешке? Какие-либо предложения?


person eth-new-user    schedule 01.11.2018    source источник
comment
я подозреваю, что проблема не в медленных носителях, а в файловой системе, которая не поддерживает разреженные файлы. У тебя случайно не FAT32? Вы пробовали более новую файловую систему?   -  person Arvid    schedule 05.11.2018
comment
@ Арвид, да, ты прав. Я использую FAT32. Я тестировал с NTFS, и скорость была намного выше. Есть ли какие-либо настройки libtorrent, которые я могу установить, чтобы у меня все еще была достойная скорость загрузки на FAT32?   -  person eth-new-user    schedule 05.11.2018


Ответы (1)


Ваша проблема с производительностью, по-видимому, вызвана отсутствием поддержки разреженных файлов в вашей файловой системе. По умолчанию libtorrent загружает фрагменты файлов в «случайном» порядке, ожидая, что файловая система справится с этим. Большинство современных файловых систем работают довольно хорошо.

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

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

см. set_sequential_download().

Также см. этот недавний билет по этой теме.

person Arvid    schedule 06.11.2018