Есть у кого опыт реализации торрент-клиента?
2-3к файлов у меня легко помещается в азуреусе
2-3к файлов у меня легко помещается в азуреусену мне надо на порядок больше. нагрузка может существенно возрасти.
Мой опыт неудачен или они реально все тормознутые и для реализации моей задачи ничего не найти?Ты уже смотрел где у них затыки?
Плюс, я уверен, что в твоей вакуумно-сферической ситуации можно наверняка подумать, как сократить кол-во торрентов. Группировать файлы в связанные кусочки. После того, как новый торрент распространен по большинству машинок, удалять его с клиентов, и оставлять только на мастер сиде. Удалять совсем уж старые торренты.
В принципе, в том же азуреусе настройками очереди этого можно изкоробки добиться. Написать к нему плагин в крайнем случае.
я бы попробовал взять за основу btpd. только C, только хардкор!
c# + monotorrent
наебался на 100 лет вперед (особенно с DHT)
так что не советую
Я в общем-то и не настаиваю, знаю, что вы все ее очень не любите, а я довольно однобок в выборе инструментов, потому и примеры мои однобоки =)
Но правда в том, что headless azureus сейчас жрет не больше цпу, чем какой-нить мюторрент. Памяти - может быть и побольше. И то, не факт, что я не добьюсь того же или лучшего результата, подогнав размер кучи и буферов под то, что у мюторрента. Или какой у вас там православный клиент эталоном считается.
И да, азуреусовским плагином я вам наваяю менеджинг очереди, например, за денек
Имел дело с btpd. Когда речь идет о нескольких тысячах файлов в нем надо всякие таймауты чуть потюнить, иначе он ведет себя не очень адекватно. А так да, 3000 файлов он держит легко и не напрягаясь.
ещё можно aria2 обернуть скриптами и логикой, это типа wget но может в торренты
Затык того что я пробовал я не особо изучал. Это было года 3 назад и чисто однарзовой задачей. Я её решил сократив кол-во торрентов, качаемых клиентом за раз.
бери тот, который выдерживает такие нагрузки и имеет способ управления отличный от мышевозюканья, хоть btpd, хоть любой другой.
rtorrent тоже позволяет в конфиге указать всякие опции по мониторингу каталогов на предмет добавления-удаления торрентов. Но десятки тысяч торрентов не пробовал запихнуть в него.
не понятно, зачем для того писать новый торрент клиент?до тоже самое получится, только без лишнего интерфейса и с более тонкой подгонкой
бери тот, который выдерживает такие нагрузки и имеет способ управления отличный от мышевозюканья, хоть btpd, хоть любой другой.
если не писать с нуля, конечно, а юзать либу
Надо создать систему разлития контента по сотне серверов. Точнее заменить старое говно на новое надеюсь неговно.Зачем для этого торренты?
rtorrent тоже позволяет в конфиге указать всякие опции по мониторингу каталогов на предмет добавления-удаления торрентов. Но десятки тысяч торрентов не пробовал запихнуть в него.на 400 торрентах и Atom N270 способен выжимать около 40 Мбит/с в полудуплексе.
Зачем для этого торренты? :facepalm:Нагрузку на центральный сервак уменьшит.
Нагрузку на центральный сервак уменьшит.Простых способов это сделать не знаешь?
Простых способов это сделать не знаешь?придется велосипед в том или ином виде строить.
придется велосипед в том или ином виде строить.Правильно, не наш метод! Надо построить микроскоп и забить им гвоздь.
Простых способов это сделать не знаешь?Ну расскажи как, раз такой умный. Хуле?
300 серверов, раскиданы от Калининграда до Камчатки включительно . Контент регулярно обновляется.
Как счас сделано: Есть центральный сервер. Он заливает на 7 серверов, раскиданных по крупным центральным узлам, которые в свою очередь занимаются только тем, что по другим серверам разливают и удаляют старое. по ftp
Чисто для справки канал из Владивостока на Камчатку 10 мегабит через спутник с соответствующими пингами, а на камчатке 2 сервера. А канал от Якутска до Нерюнгри вообще радиорейлека, которая за сутки несколько раз рвёт коннект.
это не считая проблем, что на серверах может закончиться место(они не одинакового объема отвалиться сеть на неделю, сдохнуть рэйд и потребуется полное обновление.
Ну расскажи как, раз такой умный. Хуле?man rsync
300 серверов, раскиданы от Калининграда до Камчатки включительно . Контент регулярно обновляется.
В итоге сервера у тебя неоднородные. Надо поднять таки задницу и настроить их не совсем однородно, имхо.
Как счас сделано: Есть центральный сервер. Он заливает на 7 серверов, раскиданных по крупным центральным узлам, которые в свою очередь занимаются только тем, что по другим серверам разливают и удаляют старое. по ftp
И в чем проблема? 7 - мало?
Чисто для справки канал из Владивостока на Камчатку 10 мегабит через спутник с соответствующими пингами, а на камчатке 2 сервера. А канал от Якутска до Нерюнгри вообще радиорейлека, которая за сутки несколько раз рвёт коннект.
это не считая проблем, что на серверах может закончиться место(они не одинакового объема отвалиться сеть на неделю, сдохнуть рэйд и потребуется полное обновление.
Ага, ага. Торрентам тут самое место.
на 400 торрентах и Atom N270 способен выжимать около 40 Мбит/с в полудуплексе.Да с этим проблем вроде нет, да. Но у меня хеши долго считает и при этом не отзывается и если много сразу скачивать, то память хочет. Но этом возможно у всех так.
man rsyncохуенно. а то что мне надо не просто сзеркалировать все сервера и где-то какого-то контента не должно быть? генерить списки ввиде файла и передавать рсинку?
В итоге сервера у тебя неоднородные. Надо поднять таки задницу и настроить их не совсем однородно, имхо.что ты имеешь ввиду? у них естественно не едентичные конфигурации.
И в чем проблема? 7 - мало?много. в схеме с торрентам от них вообще можно отказаться.
а проблема в том что эта иерархическая структура просто не уместна на самом деле. распределёная имеет преимущества. во-первых по сути исчезает передаточное звено ввиде промежуточных коллекторов. это минус всякие проблемы с ним.
во-вторых повышается скорость заливки нового контента.
в-третьих упрощается масштабирование.
Ага, ага. Торрентам тут самое место.ну торренты как раз лучше подходят для работы через малокачественные плохоконтролируемые каналы связи, чем классические протоколы, которые работают с целыми файлами, а не кусками.
до тоже самое получится, только без лишнего интерфейса и с более тонкой подгонкойи с кучей граблей, на которые авторы других клиентов уже наступали, а ты ещё нет.
если что для тонкой подгонки можно и патчик наложить в пару строк, а интерфейс я вообще не понял к чему упомянут, тебе мешает что-то в том же btpd?
Надо создать систему разлития контента по сотне серверов. Точнее заменить старое говно на новое надеюсь неговно.Явно попахивает тем, что такое решение уже есть. Только искать надо в стороне.
Посмотри на FreeNET с кастомной настройкой. По идее там есть режим белого листа (когда общение идёт только с явно указанными абонентами плюс там можно настраивать уровень избыточности/безопасности и убрать промежуточные лишние в твоей ситуации пересылки данных. FreeNET результаты отдаёт через http и будет несложно автоматизировать обновление данных при обновлении привязанных к ключу страничек.
Явно попахивает тем, что такое решение уже есть. Только искать надо в стороне.В facebook выкладки обновлений посредством торрентов делаются, так что топик-стартер не одинок в своем выборе
Инфа отсюда:
http://arstechnica.com/business/2012/04/exclusive-a-behind-t...
Rossi explained that Facebook created its own custom BitTorrent tracker, which is designed so that individual servers in Facebook's infrastructure will try to obtain slices from other servers that are on the same node or rack, thus reducing total latency.
Rolling out a Facebook update takes an average of 30 minutes—15 minutes to generate the binary executable and another 15 minutes to push the executable to most of Facebook's servers via BitTorrent.
охуенно. а то что мне надо не просто сзеркалировать все сервера и где-то какого-то контента не должно быть? генерить списки ввиде файла и передавать рсинку?Если ты все-таки подумаешь головой,то списки "на каком сервере что должно быть" тебе в любом случае генерировать придется. В чем проблема хранить их в виде файла — непонятно.
что ты имеешь ввиду? у них естественно не едентичные конфигурации.
Я имею в виду что в торрентах есть всякий лишний функционал потому что кол-во клиентов не фиксировано и, как ты сам заявил в епрвом посте, клиенты качают не столько контента. У тебя задачка на порядок проще и решается стандартными тулзами, это быстрее и проще чем городить торренты.
много. в схеме с торрентам от них вообще можно отказаться.
а проблема в том что эта иерархическая структура просто не уместна на самом деле. распределёная имеет преимущества. во-первых по сути исчезает передаточное звено ввиде промежуточных коллекторов. это минус всякие проблемы с ним.
во-вторых повышается скорость заливки нового контента.
в-третьих упрощается масштабирование.
Ты задачку решаешь от нечего делать что ли? Какие проблемы на данный момент-то есть?
В примерах решений задач "разлить одинаковый контент по однородным серверам в пределах ДЦ", которые я знаю, делали так: с мастера копируем на следующий, на следующем начинаем копировать дальше как только получили первые байты файлов. В итоге копируется кольцом за время чуть больше чем одно копирование на сервер.
ну торренты как раз лучше подходят для работы через малокачественные плохоконтролируемые каналы связи, чем классические протоколы, которые работают с целыми файлами, а не кусками.
rsync --partial
а интерфейс я вообще не понял к чему упомянутинтерфейс не в смысле морды, а в более общем смысле
программа запускается и выполняет одну задачу
не очень удобно (по своему опыту поддерживать более обширный функционал, чем необходимо
Оставить комментарий
YUAL
Надо создать систему разлития контента по сотне серверов. Точнее заменить старое говно на новое надеюсь неговно.Собственно надо обрабатывать порядка 50 террабайт файлов. Файлы размером от 500 мегабайт до 10 гигов. средний размер порядка 2 гигабайт. и того ~ 25к файлов. каждый файл - отдельный торрент.
Раз в какое-то время (грубо говоря раз в пол часа) сервер получает список торрент файлов, проверяет чего у него нет и закачивает недостующее, удаляет то чего нет в списке.
Соответственно нужна библиотека (желательно опенсорсная которая позволит обрабатывать такое кол-во файлов не превращая сервер в лагодром. Мой опыт общения с торрент-клиентами подсказывает, что многие из них не способны обработать 2-3к торрент-файлов. Мой опыт неудачен или они реально все тормознутые и для реализации моей задачи ничего не найти?