У меня есть сырая, но несколько эффективная мера, которую я использую на апачском веб-сервере, показывающем подобные признаки. У меня есть задание крона, которое каждую минуту работает
curl -s http://localhost/server-status > `date!`
Таким образом, если апачская очередь сервера заполняется запросами (который она иногда делает по неизвестным причинам: Apache "забит" с определенными запросами), у меня есть журнал того, что произошло, ведя до запросов. Это также полезно для поиска и устранения неисправностей моментов высокой загрузки.
Это зависит от того, как Ваша сеть размечается и где узкие места, но да, это может быть быстрее для использования БитТоррента. В теории, вместо того, чтобы отослать 7 копий тех же файлов, Ваш исходный сервер должен только должен быть отослать 1 копию, разделить среди получателей. К тому времени, когда происходит, остающиеся коллеги совместно используют части, которые они не получили непосредственно между собой.
Если Ваша сетевая многоадресная передача поддержек, тем не менее, вероятно, легче настроить udpcast, mdp, мультиотправляет, или что-то как этот: Ваш источник отошлет единственную копию данных, и сеть направит его всем получателям.
Если все 8 из Ваших серверов будут включены в тот же раздел сети с помощью Разрядного Потока, то вряд ли ускорит вещи. На самом деле Вы получили бы столько коллизий, что это, вероятно, будет очень медленно. БитТоррент только ускорил бы вещи, если Вы используете полностью коммутируемую сеть, и эти восемь серверов могут говорить друг с другом независимо, не влияя на коммуникацию между другими серверами.
Преимущество БитТоррента по другим инструментам распределения файла, скажем rsync, состоит в том, что клиенты начинают предлагать свои данные другим клиентам, поэтому если сервер будет иметь медленное соединение с клиентами, то пропускная способность будет намного лучше.
BT является протоколом, который разработан для глобального совместного использования, все же. Таким образом, необходимо будет найти средство заблокировать все другие клиенты, но 7, которые Вы хотите подать (или Ваш поток скоро закончится на Pirate Bay).
Что касается остановки в 100%, каждый клиент BT сделает это: Так как никакой клиент больше не запрашивает данные, больше не будет отбора. Приложение будет все еще работать, но они только заставят немного струйки данных между клиентами и средством отслеживания говорить ему, что они все еще доступны.
Судите исходный клиент БитТоррента, который записан в Python. Это позволит Вам делать любые модификации, которых Вы требуете. К сожалению, я не могу найти ссылку ATM. Кто-либо?
[РЕДАКТИРОВАНИЕ] На основе комментария saua: при использовании частного средства отслеживания потоки не должны неожиданно распространяться. Тем не менее необходимо только использовать клиент потока из надежного источника. Иначе Вы могли бы рискнуть тем некоторым взломщиком, поместил немного дополнительной функции в код, который публикует частные потоки где-нибудь, где Вы не хотите, чтобы они появились.
BitTorrent - отличная идея, если вы хотите реплицировать файлы через дерево серверов, например, без необходимости отдавать удаленную команду всем серверам для копирования из одного места; потенциально может вызвать узкое место.
Инженеры Twitter сделали это с большим успехом с помощью Murder, которая сейчас находится на github.
http://engineering.twitter.com/2010/07/murder-fast-datacenter-code-deploys .html