- Linux.yaroslavl.ru
- 2. Как,что и где.
- 4. Настройка
- 5. Управление кластером
- 6. Эксперементируем.
- 7. Использование
- 8. Заключение
- Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компов
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Хорошая, годная статья.
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
- Re: Высокопроизводительный кластер из старых компьютеров
Linux.yaroslavl.ru
2. Как,что и где.
4. Настройка
Теперь после перезапуска mosix ваша машина уже будет работать в кластере, что можно увидеть запустив монитор командой mon. В случае, если вы увидите в мониторе только свою машину или вообще не увидите никого, то, как говорится — надо рыть. Скорее всего у вас ошибка именно в /etc/mosix.map.
Ну вот, увидили, но не победили. Что дальше? А дальше очень просто 🙂 — нужно собрать утилиты для работы с измененным /proc из пакета mproc. В частности в этом пакете идет неплохая модификация top — mtop, в который добавили возможность отображения узла(node), сортировки по узлам, переноса процесса с текущего узла на другой и установления минимальной загрузки процессора узла, после которой процессы начинают мигрировать на другие MOSIX — узлы.
Запускаем mtop, выбираем понравившийся не спящий процесс (рекомендую запустить bzip) и смело давим клавишу «g» на вашей клавиатуре, после чего вводим на запрос PID выбранного в качестве жертвы процесса и затем — номер узла, куда мы хотим его отправить. А уже после этого внимательно посмотрите на результаты, отображаемые командой mon — та машина должна начать брать на себя нагрузку выбранного процесса.
А собственно mtop — в поле #N отображать номер узла, где он выполняется.
Но это еще не все — ведь вам правда не хочется отправлять на другие узлы процессы вручную? Мне не захотелось. У MOSIX есть неплохая встроенная балансировка внутри кластера, которая позволяет более-менее равномерно распределять нагрузку на все узлы. Ну а вот здесь нам придется потрудится. Для начала я расскажу, как сделать тонкую настройку (tune) для двух узлов кластера? в процессе которой MOSIX получает информацию о скоростях процессоров и сети:
Запомните раз и навсегда — tune можно выполнять только в single-mode. Иначе вы либо получите не совсем корректный результат, либо ваша машина может просто зависнуть.
Итак, выполняем tune. После перевода операционной системы в single — mode например командой init 1 или init S запускаем скрипт prep_tune, который поднимет cетевые
интерфейсы и запустит MOSIX. После этого на одной из машин запускаем tune, вводим ему номер другого узла для настройки и ждем результата — утилита должна выдать запрос на ввод шести чисел, полученных от выполнения команды tune -a на другом узле. Собственно операцию придется повторить на другом узле командой tune -a , а результат из шести чисел ввести на первый узел. После подобного тюнинга в вашей системе должен появится файл /etc/overheads, содержащий информацию для MOSIX в виде неких числовых данных. В случае, если по каким-то причинам tune не смог сделать его, просто скопируйте из текущего каталога файл mosix.cost в /etc/overheads. Это поможет ;-).
При тюнинге кластера из более чем двух машин нужно использовать утилиту, которая также поставляется с MOSIX — tune_kernel. Данная утилита позволяет
вам в более простом и привычном виде настроить кластер, ответив на несколько вопросов и проведя тюнинг с двумя машинами кластера.
Кстати, по собственному опыту могу сказать, что при настройке кластера я рекомендую вам не загружать сеть, а наоборот — приостановить все активные операции в локальной сети.
5. Управление кластером
mosctl — контроль над узлом. Позволяет изменять параметры узла — такие, как block, stay, lstay, delay и т.д
Давайте рассмотрим несколько параметров этой утилиты:
stay — позволяет останавливать миграцию процессов на другие узлы с текущей машины. Отменяется параметром nostay или -stay
lstay — запрещает только локальным процессам миграцию, а процессы с других машин могут продолжать это делать. Отменяется параметром nolstay или -lstay.
block — запрещает удаленным/гостевым процессам выполнятся на этом узле. Отменяется параметром noblock или -block.
bring — возвращает обратно все процессы с текущего узла выполняемые на других машинах кластера. Этот параметр может не срабатывать, пока мигрировавший процесс не получит прерывание от системы.
setdelay устанавливает время, после которого процесс начинает мигрировать.
Ведь согласитесь — в случае, если время выполнения процесса меньше секунды смысл переносить его на другие машины сети исчезает. Именно это время и выставляется утилитой mosctl с параметром setdecay. Пример:
mosctl setdecay 1 500 200
устанавливает время перехода на другие узлы 500 миллисекунд в случае, если процесс запущен как slow и 200 милисекунд для fast процессов. Обратите внимание, что параметр slow всегда должен быть больше или равен параметру fast.
mosrun — запускает приложение в кластере. например mosrun -e -j5 make запустит make на 5-ом узле кластера, при этом все его дочерние процессы будут также выполнятся на 5-ом узле. Правда здесь есть один нюанс, при чем довольно существенный:
в случае, если дочерние процессы выполняются быстрее чем установленная утилитой mosctl задержка (delay) то процесс не будет мигрировать на другие узлы кластера. у mosrun еще довольно много различных интересных параметров, но подробно узнать
о них вы сможете из руководства по этой утилите. (man mosrun)
mon — как мы уже знаем, это монитор кластера, который в псевдографическом виде отображает загрузку каждого рабочего узла вашего кластера, количество свободной и занятой памяти узлов и выдает много другой, не менее интересной информации.
mtop — модифицированная для использования на узлах кластера версия команды top. Отображает на экране динамическую информацию о процессах, запущенных на данном узле, и узлах, куда мигрировали ваши процессы.
mps — тоже модифицированная версия команды ps. Добавлено еще одно поле — номер узла, на который мигрировал процесс.
Вот на мой взгляд и все основные утилиты. На самом деле конешно можно обойтись даже без них. Например используя для контроля над кластером /proc/mosix.
Там кроме того, что можно найти основную информацию о настройках узла, процессах запущенных с других узлов и т.д.,а также поменять часть параметров.
6. Эксперементируем.
7. Использование
8. Заключение
В заключение хочу сказать, что в этой статье не рассмотрены все возможности MOSIX, т.к. я просто до них еще не добрался. Если доберусь — ждите продолжения. 🙂
Источник
Высокопроизводительный кластер из старых компьютеров
Если у вас есть 32 старых однопроцессорных компьютера, нужно лишь найти способ, как заставить их работать сообща. Другими словами — собрать из них кластер. Да, у них всего по одному процессорному ядру, но все вместе они смогут сделать больше, чем одна двухъядерная машина. Как это сделать, рассказано в статье Т. Лемана (Tom Lehmann) «Как создать высокопроизводительный вычислительный кластер на Linux». В статье приведен обзор пакета Rocks — Linux-дистрибутива для развертывания, управления и поддержки высокопроизводительного вычислительного кластера.
Re: Высокопроизводительный кластер из старых компов
> но все вместе они смогут сделать больше, чем одна двухъядерная машина
проще сдать весь этот хлам на металлолом и купить четырехъядерную машину
Re: Высокопроизводительный кластер из старых компов
>Если у вас есть 32 старых однопроцессорных компьютера
Re: Высокопроизводительный кластер из старых компов
А я-то думал куда мне деть мои 32 старых компа.
Re: Высокопроизводительный кластер из старых компов
А также не только на старых однопроцессорных компьютерах, но и на КПК, смартфонах, и прочих ЕС ЭВМ http://ru.inferno-os.wikia.com/wiki/%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80_Grid
Re: Высокопроизводительный кластер из старых компов
Т.е. 32 компа немногим лучше, чем одна двухядерная машина?
Re: Высокопроизводительный кластер из старых компов
> Т.е. 32 компа немногим лучше, чем одна двухядерная машина?
Скорее хуже, если нет своей АЭС.
Re: Высокопроизводительный кластер из старых компов
/me пошел делать кластер из 133 и 166 машинок
Re: Высокопроизводительный кластер из старых компов
у нас в европе элекричество дорогое. так что лесом эту хрень
лучше купить один мощный комп.
Re: Высокопроизводительный кластер из старых компов
А счет за киловатт-часы кто будет оплачивать?
Re: Высокопроизводительный кластер из старых компов
Это развёртывать можно разве что в университетах, где тачки одинаковые.
Re: Высокопроизводительный кластер из старых компов
> Если у вас есть 32 старых однопроцессорных компьютера
Возможно Вы серьезно больны.
Re: Высокопроизводительный кластер из старых компов
Re: Высокопроизводительный кластер из старых компов
Боюсь серверные двухканальные сетевухи будут стоить дороже этого хлама, а на обычных делать смысла нет — пересылки всё сожрут.
Re: Высокопроизводительный кластер из старых компов
> лучше купить один мощный комп.
А лучше 32 мощных компа 🙂
Re: Высокопроизводительный кластер из старых компов
> Боюсь серверные двухканальные сетевухи будут стоить дороже этого хлама, а на обычных делать смысла нет — пересылки всё сожрут.
Именно поэтому по ссылке упоминается InfiniBand.
Re: Высокопроизводительный кластер из старых компов
Вот тут тоже про кластеры.
Re: Высокопроизводительный кластер из старых компов
Это главная? Или толксы?
>Если у вас есть 32 старых однопроцессорных компьютера
Поменяйте их на один новый
>Да, у них всего по одному ядру, но все вместе они смогут сделать больше, чем одна двухъядерная машина.
Потребить электричества уж точно. А без должного распараллеливания нужных процессов такой кластер будет совершенно бесполезен.
Re: Высокопроизводительный кластер из старых компов
чОрт, у меня есть только всего один старый комп. Я смогу сделать из него кластер, который обделает все 10-ядерные ксеноны.
Re: Высокопроизводительный кластер из старых компов
Хм, интересная статья, не знал что есть готовые дистрибутивы заточенные под это.
Re: Высокопроизводительный кластер из старых компьютеров
А о том, как приготовить офигический ужин на двоих из 7 протухших сарделек там не пишут?
Re: Высокопроизводительный кластер из старых компьютеров
а почему вы интересуетесь?
Re: Высокопроизводительный кластер из старых компьютеров
Пишут как сделать ужин, а протухшие или свежие сардельки туда резать — Вам решать 😀
А по делу мне кажется что статья вполне ничего. Как ознакомительная по кластерным дистрам. Кстати, Beowulf-подобные решения вполне могут быть востребованы в тех же универах для обучения. У нас было такое дело что пришел новый класс, старый так тоже вполне себе ничего был. Там оптероны 4-процовые стояли. И их «утилизировали» подобным способом.
Re: Высокопроизводительный кластер из старых компьютеров
> чОрт, у меня есть только всего один старый комп. Я смогу сделать из него кластер, который обделает все 10-ядерные ксеноны.
и питцот галагенок
Re: Высокопроизводительный кластер из старых компьютеров
всё, бегу докупать ещё 31 однопроцессорный комп, и я буду круче чем сосед со своим 2 ядерным ноутбуком. вот я его натяну! ( а электричество.. это уже мелочи.. главное куда деть эти 32 компа?)
Re: Высокопроизводительный кластер из старых компьютеров
только сегодня думал что надо почитать про кластеры линуксовые ^_^
>Если у вас есть 32 старых однопроцессорных компьютер
Re: Высокопроизводительный кластер из старых компьютеров
Слово «старых» явно лишнее в названии статьи.
Re: Высокопроизводительный кластер из старых компьютеров
Действительно хорошая статья. Призадумался о том, чтобы реализовать описанную схему в университете.
Re: Высокопроизводительный кластер из старых компьютеров
О! У меня! У меня есть!!1111111 Вся кладовка в офисе ими завалена (на полном серьёзе, раньше юзались как ТК, потом перешли на ТК от HP) — выбросить жалко, применить некуда.
Интересно, если их все в кластер собрать — на них tomboy пойдёт?
Re: Высокопроизводительный кластер из старых компьютеров
>Если у вас есть 32 старых однопроцессорных компьютера
Еще ж не пятница. Вот как надо писать новости, эх!
Re: Высокопроизводительный кластер из старых компьютеров
Самая идея совершенно бредовая, но очень типичная для нищебродского отечественного IT. Дело-то ведь не в том, чтобы сэкономить за счёт использования кластера — да Боже упаси, эксплуатация скоренько сожрёт денег больше, чем любой Гаргантюа с Пантагрюэлем вместе взятые, — НЕТ, дело в том, чтобы уложиться в текущий бюджет, чтобы, например, обучение начальника каким-нибудь основам CRM/BPM не пошло прахом из-за покупки нового дорогого мощного сервера. Народ в организациях просто боиться тратиться единовременно на крупные суммы. Лучше вот 10 раз по 30 рублей, чем один раз аж 100 капиталовыложить! И все прекрасно понимают, что кластер из хлама — это бесполезно и бесцельно, впустую потраченное время специалистов (которое тоже чего-то ПО ИДЕЕ должно бы стоить), это неоправданно высокие затраты электроэнергии, это на порядки более геморройные и менее диагностируемые проблемы с железом, это место в серверной в конце-концов (и оно тоже денег стоит), но ё-моё, вы ж посмотрите, господин гавнюк, то мы бы купили IBM P-серии (кошмарно дорогой, аж два ваших отпуска в Европе!), а так — мы такие умные, погладщьте нас по головке и увеличьте фонд на обучение, уйму денег вам сэкономим, старую серверную рухлядь соберём в ультрамодное словечко — HA-кластер (НА — это, правда, не высокодоступный значит, это просто наше русское классическое НА <ТУДА_ТО>) и будем круче яиц, сваренных в крутую на процессорах этих 32-х машинок. УРА! Все счастливы, углекислый газ выделяется, парниковый эффект усиливается, скоро все будем жить на Канарах или хотя бы просто на острове посреди Мирового Океана — все вместе, начальнека, все вместе, в тесноте, да не в обиде.
Re: Высокопроизводительный кластер из старых компьютеров
p.s. Ъ юзают http://xcpu.org/ !111 или вообще чистую plan9!111
как пел Евгений Гудзь, «серебряные зайцы водят хоровод». теперь я знаю, он про гленду 😉
Re: Высокопроизводительный кластер из старых компьютеров
Нифигасе высер. А если я четыре сервака на кореквадах в кластер хочу, чтоб аппсервер мог не 3000 а 10000 соединений одновременных обслуживать? А тестироваться/практиковаться на чём?
Хорошая, годная статья.
Спасибо, Виктор Алексеевич. Хорошая, годная статья.
Re: Высокопроизводительный кластер из старых компьютеров
Я бы переименовал в «Как собрать обогреватель».
В принципе лето заканчивается, скоро будет актуально.
Re: Высокопроизводительный кластер из старых компьютеров
Виндовый ботнет и то выглядит перспективнее для всяких расчетов, чем старая рухлядь (еще и 32 шутки). И тише будет.
Re: Высокопроизводительный кластер из старых компьютеров
Чтобы аппсервер мог больше соединений обслуживать, прежде всего замените аппсервер на бэкенды, написанные на C и веб-фронтенды на Perl! Java-сервера приложений 80% времени своей работы тупо жрут процессорное время и память. Дай какой-нибудь веб-сфере сказать «Hello, world!», она и на это потратит столько же тактов, сколько в каком-нибудь 1970-ом году тртилось на расчёт полёта космической ракеты. У меня как у ASM-програмиста подобные вещи ничего, кроме отвращения, не вызывают. Ну и собственно очень редко узким местом является именно процессор, гораздо чаще это всё-таки ввод-вывод, ну а коли у вас все ноды кластера наверняка будут подключены к одной полке и делить одно на всех внешнее ethernet-подключение, то о каком трёхкратном росте производительности может идти речь?
Re: Высокопроизводительный кластер из старых компьютеров
>Чтобы аппсервер мог больше соединений обслуживать, прежде всего замените аппсервер на бэкенды, написанные на C и веб-фронтенды на Perl!
А потом выйдите на улицу на перекур и узнайте, что Землю сто лет назад захватили серо-зеленые жабокрылы.
Re: Высокопроизводительный кластер из старых компьютеров
32 * 300 Watt одной машины
9kWat хорошенький обогреватель, всё равно аля
Re: Высокопроизводительный кластер из старых компьютеров
Аппсервер не на жабе.
Re: Высокопроизводительный кластер из старых компьютеров
Используется принцип — нечто среднее между ВЕБ-приложением и десктоп-приложением.
Re: Высокопроизводительный кластер из старых компьютеров
Ясно, респект на самом деле, а что за продукт, если не секрет, на чём писан? Собственная разработка?
Re: Высокопроизводительный кластер из старых компьютеров
>что Землю сто лет назад захватили серо-зеленые жабокрылы
И Kill Em All? Неплохой шутер получится, а главное, что в итоге всё равно восторжествует справедливость, зелёные стандарты, энергосберегающие и те же шустрые программы на C во вставками на Асме. Ведь победить Жабокрыла очень легко — достаточно загнать его в ближайшую яму и забросать камнями, а потом сделать ему DDoS. А всё потому, что жабокрылы только плавают хорошо, но вообще ни разу не летают.
Re: Высокопроизводительный кластер из старых компьютеров
Продукт — изначально внутрикорпоративное ПО для риэлторской фирмы. Сейчас думаем его продвигать на внешний рынок. В виде законченного процесса управления риэлторским предприятием, плюс функции МЛС.
Писано на С++/Qt+WebKit (некоторые модули, в частности используемые для геренации отчётов и реализации мониторингов используют плюсы и удобство ВЕБ-представления), и PHP (серверная часть. Да-да, гнобите сколько хотите но ТАМ оно РЕАЛЬНО ОЧЕНЬ УДОБНО, и быстро).
Re: Высокопроизводительный кластер из старых компьютеров
> Пишут как сделать ужин, а протухшие или свежие сардельки туда резать — Вам решать 😀
Re: Высокопроизводительный кластер из старых компьютеров
А если есть три двухпроцессорных и два однопроцессорных, пролетаю?
Re: Высокопроизводительный кластер из старых компьютеров
А вообще, подскажите мне пожалуйста бытовое применение вычислительных мощностей, в частности кластера?
Re: Высокопроизводительный кластер из старых компьютеров
>У меня как у ASM-програмиста подобные вещи ничего, кроме отвращения, не вызывают.
мне одному вспомнился vsl? 😉
Re: Высокопроизводительный кластер из старых компьютеров
А под каким соусом он мог вспомниться? «Эх, вот бы пришел Профессор и вправил тебе мозги»?
Re: Высокопроизводительный кластер из старых компьютеров
Статистика показывает, что «узкими местами» по производительности в современных бизнес-приложениях — является достаточно малое количество мест всей программной конструкции. — Потому что программа часто ждет ввода пользователя, или тот же Java-код (опирающийся на нативные модули на С++) — показывает идентичную, как и на С++, производительность.
Программный код, состоящий из сотен модулей-подсистем — может быть неэффективен из-за недостаточной квалификации программиста, или от того, например, что в процессе разработки изменялись бизнес-требования (обычное дело) и поэтому все недостаточно оптимизировано.
С выявлением узких мест — достаточно переписать 2-3 таких узких места, чтобы приложение заработало очень эффективно.
В отдельных случаях, если хочется, можно применить и ассемблерные вставки, и другие пути оптимизации производительности.
Часто прирост может дать — сравнительно небольшое увеличение ОЗУ (для того же Оракла), например. И цена этого ОЗУ — будет несопоставимо ниже, в 100 раз ниже, чем написать все на Ассемблере.
Типичный пример ассемблерного коня в вакууме. 😉
Re: Высокопроизводительный кластер из старых компьютеров
Кластера всегда будут кластерами, если нужна отказоустойчивость, доступность и не геморройность при восстановлении, то кластера правильный выбор. Так, что товарищи не в ту сторону смотрите. PS все нужные приложения, которые могут повлиять на работу конторы, раскидываю по кластерам, и уже неоднократно спасало ситуацию. Будем дальше изучать.
Источник