LINUX.ORG.RU

как ускорить/разгрузить дисковый ввод/вывод через настройку системы или qbittorrent

 , , , ,


0

2

есть старый комп 2012 года с i3 sandy bridge, 16 гб ддр3 оперативки, жёстким диском на 22 тб, который я превратил в nas.

там крутятся alma, тор (который очень помогал осенью когда zapret не мог стабильно пробивать блокировку ютуба), i2p, и торент-клиент qbittorrent 4.6.3 с Libtorrent 2.0.9.0 и 37000+ раздачами с рутрекера и тапок.

скорость раздачи низкая даже с раздач которые точно известны как востребованные (на более новом компе та же раздача занимает всю выданную провайдером скорость), как показывает cockpit система регулярно бьётся в ввод/вывод с жёсткого диска. что я делал:

  1. включил zram
  2. установил размер пула файлов в ноль.
  3. параметр Предел виртуальной памяти (только для libtorrent >= 2.0) установил в -1
  4. отключил в кубите использование системного кеша для ввода/вывода
  5. перешёл на хранение БД кубита в sqlite вместо отдельных файлов (это ускорило запуск и завершение раза в 3-4)

всё это слегка улучшило ситуацию но самодельному nas’у всё равно тяжело переносить такие нагрузки на диск. чем ещё можно улучшить ситуацию?

сменить торент-клиент не вариант - все остальные на количестве раздач в 10000+ начинают либо адски лагать как transmission либо съедают всю память как deluge. кубит при 37000+ раздач потребляет 2,3-2,5 гб оперативки.

кроме того я заметил что раздачи с большим количеством маленьких файлов (портабельные стимрипы/гогрипы) раздаются в разы хуже чем не меньшие раздачи с маленьким количеством больших файлов (например репаки или iso от релиз-групп со сцены).


Как одна из версий. Всё-таки железо у Вас не самое древнее.

Убедитесь - не режет ли Вам скорость провайдер. Стал всё чаще замечать странную вещь - раздача живая, сидер в Москве, а скорость низкая, в пределах 100 Кбит/с. Пробрасываю qBittorrent через ByeDPI, скорость возвращается.

на более новом компе та же раздача занимает всю выданную провайдером скорость

Возможно, на более новой машине Вы уже настроили проксирование на уровне системы в целом. Вот и работает.

Proxy
()

жёстким диском на 22 тб

Странный объём для одиночного диска, но я в них не разбираюсь, ладно. Сколько там IOPS на мелкоблочном чтении даже у лучших механических дисков? Сотни с просадками до десятков? А у тебя 37000 раздач. Не очень представляю, как это может хорошо работать. Возможно, помогут 1-2 Тб кэша на SSD, но не уверен, что сильно.

anonymous
()

У qbt есть настройка количества global upload slots. Как я понимаю, она означает, какое количество одновременных потоков отдается на все торренты. Вот может ее уменьшить до вменяемых значений?

anonymous
()
  1. включил zram

С какой целью? Как дисковый кеш?

  1. установил размер пула файлов в ноль.

В инструкции не написано, что значит 0. Думаю, лучше поставить значение близкое к среднему количеству одновременно качаемых (и раздаваемых) файлов (в одном торренте может быть много (мелких) файлов)

  1. отключил в кубите использование системного кеша для ввода/вывода

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

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

anonymous
()

Deluge даже не думай — он и на одном десятке раздач начинает течь, тормозить, виснуть и глючить.

Под количества раздач больше пары десятков тысяч лучше юзать rtorrent (многократно проверен на сотнях тысяч и до полумиллиона раздач — работает прекрасно) или Transmission (тоже вроде неплохо держит до сотни тысяч — дальше особо не проверяли).

В любом случае тебе надо ограничить количество подключений одновременно, чтоб раздавать меньшему количеству людей одновременно — зато быстро — они скачают и другим раздадут, и слоты на тебе тоже освободят. Этим ты минимизируешь рандомное чтение и увеличиваешь количество линейного. Для HDD и скорости коннектс меньше гигабита, лучше не выходить за 1000 подключений. А возможно и где-то за 250 — можно поэкспериментировать. Твоя задача не подключить к себе как можно больше народу и раздавать каждому по килобайту, а использовать всю ширину канала наиболее эффективно. А это можно делать и при десятках качающих с тебя, сотни для этого не нужны. Так ты эффективнее и быстрее раздашь больше данных и большему количеству людей в долгосрочной перспективе.

В дополнение к предыдущему можно ограничить даже и количество одновременно раздаваемых торрентов. Где-то от 20 до 80 — вменяемые значения. Именно активно раздавать больше одновременно — неэффективно. Пусть они в очередь встают, и когда эти докачают, пойдут качаться те. На практике так все вместе и всем вместе прилетит быстрее, хотя это и не интуитивно. И с одинарным HDD (не SSD и не несколько HDD) я бы скорее держался ближе в районе может 25–30, нежели ближе к 80.

Также для тебя имеет значение, сколько есть «свободной» оперативы. Той, что не занята твоим клиентом и всем таким. Она будет использована под кэши ФС, и именно это лучше всего помогает при раздаче большого количества торрентов. Для многих это контринтуитивно — говорят «зачем мне 64 гига, если у меня тут только торрент-клиент и веб-интерфейс к ними, и они 2 гига кушают, мне хватит 8 с запасом!». А вот нет, не хватит — нужны именно «свободные», используемые под файловый кэш, и чем больше, тем лучше. Почему-то многие прям совсем упускают это из вида, считая только «используемую» раму. Хотя важнее для такого юзкейса как раз именно это.

P.S. Какова ширина канала? Просто если там 100 мбит/с, то это одно, а если 10 гбит/с — это другое — разные оптимизации имеет смысл применять, и на разное количество одновременных подключений делить. И ещё, какая ФС используется?

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 5)
Ответ на: комментарий от CrX

rtorrent (многократно проверен на сотнях тысяч и до полумиллиона раздач — работает прекрасно)

до 0.9.8 версии, 0.10.0 будет полчаса синхронизировать сессию с полумиллионом раздач, 0.15+ поломали работу с трекерами, похоже, rtorrent пошёл по пути transmission 4 - всё переделать, всё сломать ))

yandrey ★★
()
Ответ на: комментарий от yandrey

до 0.9.8 версии, 0.10.0 будет полчаса синхронизировать сессию с полумиллионом раздач, 0.15+ поломали работу с трекерами, похоже

О как. Не знал. Не пробовал ещё 0.10.0, и видимо к лучшему. Спасибо, что предупредил. Сам (помимо deluge для некоторых отдельных задач) юзаю rTorrent-PS-CH 1.8.3 0.9.8/0.13.8. Это в котором более полноценный и настраиваемый TUI завезли.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)