5

Есть ли какая-либо разница в загрузке процессора между заполнением одного большого торрента (более 20 ГБ) и 2000 из 20 МБ торрентов?

5 ответов5

8

Если вы можете начать сеять как один торрент, то лучше сделать это, чем создать 2000 торрентов.

С 2000 торрентами у вас будет много накладных расходов:

  • Ваш процессор должен вычислять больше, он должен делать дополнительные вещи 2000 раз, а не один раз.
    Также потребуется намного больше переключаться между потоками, что опять-таки вызывает накладные расходы.

  • В вашей памяти будет много служебных данных, все накладные данные для файловых карт суммируют много.

  • Ваш дисковый ввод-вывод будет иметь много накладных расходов, кэширование вещей в памяти будет менее эффективным.

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

Итак, либо создайте один торрент, либо разбейте его на несколько торрентов, но не создавайте 2000 их ...

Пожалуйста, не забывайте, что пользователь, загружающий ваш торрент, может выбирать, какие файлы он хочет!
Они будут счастливее с небольшим количеством торрентов, так что у них будет достаточно соединений
так что торрент скачивается быстрее!

О, еще один совет: если ваш процессор и диск достаточно быстрые, вы можете сначала сжать файлы ... ;-)

6

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

3

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

2

Для каждого торрента, который заполняется, ваш компьютер должен поддерживать

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

Выполнение всего этого требует немного памяти для горстки торрентов. Для 1000 это будет огромный объем памяти.

Еще одно ключевое отличие заключается в общем количестве отслеживаемых произведений. Торрент на 20 ГБ будет иметь гораздо большие фрагменты, чем торрент на 20 МБ. Допустим, торрент на 20 ГБ имеет 1000 штук, а торрент на 20 МБ - 100 штук. Тогда общее количество фрагментов составит 1000 для торрента 20 ГБ и 100 000 для торрента 20 МБ. Ваш торрент-сервер будет использовать определенное количество памяти для каждой части, поэтому для этой части торренты объемом 20 МБ будут использовать в 100 раз больше памяти.

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

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .