Передача - «Растущие» файлы

365
Conor Taylor

При использовании веб-интерфейса Transmission на моем сервере Debian я заметил, что когда начинается загрузка, Transmission загружает около 5 МБ, а затем останавливается на несколько минут, прежде чем продолжить. При ближайшем рассмотрении я понял, что в течение этого времени загрузки «растет» файл загрузки в моем каталоге загрузок. Как только этот файл достигает размера загрузки, загрузка передачи продолжается с того места, где она была прервана.

Мне просто интересно, почему это происходит? Почему при загрузке файл расширяется до полного размера, а не расширяется во время загрузки? Я думал, что это может быть что-то, связанное со свободным пространством, но оно наверняка использует duили что-то, чтобы проверить наличие свободного места в каталоге загрузок перед началом загрузки.

0

2 ответа на вопрос

1
Karan

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

В зависимости от клиента это может быть настраиваемым параметром. Клиент может даже разрешить использование разреженных файлов в файловых системах, которые их поддерживают.

1
Serge

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

Да, но загрузка не по порядку не требует предварительного выделения, не так ли? Существуют торрент-клиенты, которые позволяют отключить предварительное распределение, но это не значит, что они затем начинают загрузку последовательно. Karan 11 лет назад 0
Как я уже говорил, это зависит от реализации. Клиент передачи записывает каждый сегмент в свое точное местоположение в файле (ах). Я полагаю, это сделано для упрощения отслеживания материала и предотвращения последующего изменения порядка сегментов. Кроме того, это упрощает перезапуск передачи, когда вы останавливаете клиент и запускаете его позже (например, вы выключили компьютер, так как он слишком шумит, чтобы вы заснули :) Serge 11 лет назад 0
Ах, хорошо, я не так часто использовал Transmission. Так что у него нет возможности отключить предварительное распределение? Karan 11 лет назад 0
Только что проверил со своей страницей руководства - такой опции нет. Serge 11 лет назад 0
На самом деле, я [нашел] (https://trac.transmissionbt.com/ticket/849) когда была добавлена ​​опция, а также [как] (https://trac.transmissionbt.com/wiki/EditConfigFiles#FilesandLocations) ее может быть отключен, если требуется. Существует даже «полный» вариант, по-видимому (по умолчанию «быстрый»). Karan 11 лет назад 0

Похожие вопросы