Категория: Computing Grid

Grid Computing Виртуалните среди - част 4

От , петък 4 декември 2009 23:59

Въвеждане

Аз работя в компания, където ще свършим много работни места за пакетна обработка на милиони записи на данни всеки ден и съм мислене наскоро за всички машини, които седят около всеки и всеки ден да прави нищо в продължение на няколко часа. Не би ли било добре, ако можем да използваме тези машини, за да уплътнят процесорна мощ на нашите системи? В тази поредица от статии, аз отивам да разгледаме потенциалните ползи от наемането на офис мрежа с помощта на виртуализирани среди.

В част 3 , ние създадохме нашата виртуална машина за обработка и настроите Windows машини да се превърне в празен работно време.

Работещи последните код

Неизбежно след създаването на бизнес логика работници ще се промени, ще бъдат открити бъгове по-бързо по-ефективно код ще се произвежда по този начин оставят работниците си седеше около обработка на данни с използване на стар вонящ код . Как тогава да се гарантира, че ние сме винаги да използвате най-новите и най-версия на нашия обработка на скриптове?

Има няколко много лесно прости начини, които можем да направим това, трик, обаче, е да се намали процесорна мощ и мрежовия трафик за постигането на тази цел. Нека започнем с най-простите решения и да го подобрява бавно в продължение на няколко повторения.

Първият метод ще бъде просто да се свърже с нашия сървър за контрол на работата (чрез самба, FTP, или други подобни) и дръпнете надолу най-новата версия на кода. Не е много ефективно, но тя ще си свършат работата. Да подобри, че до известна степен, как, за създаването на една Rsync сценария и че всеки път, вместо? Като алтернатива, какво да кажем за пускането на най-новите ни обработка на скрипт в подривна дейност първоначално преглеждане на кода и след това просто актуализиране на нашия код на всеки цикъл (SVN актуализация)?

В крайна сметка бихме могли в крайна сметка с скрипт Bash (наречен от Cron на всеки 10 минути), което изглежда толкова просто, тъй като това:

  #! / Хамбар / SH
 Ако PS брадва | Впиши срещу Впиши | Впиши PHP > / Dev / нула
 след това
     ехо "Заетост в момента преработка, излизане"
 още
     ехо "работа не е стартиран, започнете сега"
     CD / път / до / работа / копие
     SVN актуализация
     PHP yourJobProcessingScript.php
 FI 

Сега можем да бъдем сигурни, че с всяка серия Определено сме инсталирали последните код. Ние гарантираме това, чрез актуализиране на база на нашия код всеки път, когато изпълняват план и намаляване на мрежовия трафик, като само прехвърляне на файла различия в нашата мрежа.

В моята демонстрация настройка, аз го направих точно както по-горе. Subversion е инсталиран на моя сървър за обработка на работа и аз просто издърпа последните кода от клон "работник", с помощта на "SVN актуализация". Аз също добавя маркер за номера на версията за обработка ми скрипт, който бе върнат в базата данни като част от резултатите връщане. По този начин можех да видя, че моят код се обновява на всеки път, когато ми е копирала багажника на работник клон, т.е., че Определено бях използвате последната обработка скрипт.

Използването на най-новите данни

Ако вашата работа използва преработката на източниците на данни и след това в някакъв момент те ще бъдат актуализирани. Освен ако не се обадите на вашия източници на данни за много редки основа, ти започваш да заливат мрежата с трафик, веднага след като работници започват да текат донесе всичко до застой. За моето решение, реших, че бих искал да се движат моите източници на данни наоколо с виртуални машини ми.

Задръжте сте коне там! Какво става, ако моите източници на данни са огромни? Е, това наистина е случай на колко данни са говорим? Той може да бъде по-рентабилно да инсталирате допълнителен по-голям твърд диск във всяка машина, отколкото за закупуване на допълнителен сървър за обработка. Това е въпрос на бюджета и на бизнеса да решава. Това може би, че източниците на данни са толкова големи, че просто неприложим, за да запази тази сума на данни във вашето работник машини. В такъв случай какво бихте направили? Е, бихме могли да разгледаме свикването на локален сървър на данни, но това може да предизвика проблеми с мрежата . В този случай системата на преносната мрежа, като това може да стане нереалистично да се включат във вашия офис среда. Тя може също така да бъде, че можеш да погледнеш в алтернативни стратегии, например, само да се обадите на работници между 20:00 и 6 сутринта всяка нощ и / или дроселиране искания източник на данни.

Нека продължим, нека нашите данни източници размер до 100GB на данни. Ами да, това е доста малко данни, за да се придвижват в мрежата на актуализация. Как ще се гарантира, че имаме най-новите копие на данните в този случай? Rsync е възможност, но лично аз мисля, че като пуснете последните си източник на данни на вашия сървър за обработка на работа и определяне на това като майстор в репликацията (с хубав дълъг Дневник бин) може да бъде начин да отида:

копиране Чрез настройка на всеки от работниците си като роб на работа актуализации на сървъра за управление на вашите източници на данни ще се стича добре на вашите работници без голямо увеличение на дейността на мрежата (това е, освен ако не изпълняват огромен актуализация на данните и всички работници ритник в наведнъж). Това има предимства пред Rsync по това, че няма да получи дълга пауза преди всяка работа, като осъвременявания на базата данни, MySQL демон на вашият работник постоянно ще актуализира своите данни, а обработката продължава .

Това е, как ми демонстрация сървър. За да зададете до репликация последва ръководство на сайта на MySQL ( Създаване репликация) и в рамките на 20 минути имах inital работник имитиране набор от данни за контрол на работата на сървърите. За всеки работник допълнителни настройки и процеса на репликацията работи всеки път, когато е преписан VM.

Обобщение

В този раздел на статията са се занимавали с колко лесно и безболезнено е да поддържате кода обработка до датата, до using Rsync или subverion (SVN), за да вършат работа и да се намали мрежовия трафик, в същото time. Ние също обсъждат как да запазите вашите данни източник на информация за дата, като позволява да се стича надолу към всеки от вашите работници. По този начин ние площ се гарантира, че сме в крак с бизнес логика и информация в нашата система за офис мрежа. Има очевидно ще бъде безброй алтернативи за извършване на тези задачи, но тук са два прости примери, за да се покаже колко лесно решение е да дойда.

Следващия път

В заключителната част на тази серия, уместно наречена част 5 , ние ще обсъдим внедряване на тази система за Ще обобщим какво е научил и това, което успях да създадете.

Grid Computing Виртуалните среди - Част 1

От , петък 4 декември 2009 23:23

Въвеждане

Аз работя в компания, където ще свършим много работни места за пакетна обработка на милиони записи на данни всеки ден и съм мислене наскоро за всички машини, които седят около всеки и всеки ден да прави нищо в продължение на няколко часа. Не би ли било добре, ако можем да използваме тези машини, за да уплътнят процесорна мощ на нашите системи? В тази поредица от статии, аз отивам да разгледаме потенциалните ползи от наемането на офис мрежа с помощта на виртуализирани среди.

Като PHP разработчик Отивам да се използват инструменти, че аз използвам всеки ден, а именно , Linux, MySQL, PHP, VirtualBox и подривна дейност ( SVN). Все пак аз се надявам това ръководство ще се адаптира към други езици и технологии, също толкова добре.

Решението ще бъде много свободно на базата на вида на обработката, за това ще трябват, за да се постигне обаче, това не може да бъде вярно, чрез цялата статия, аз ще променят нещата за простота, или да произвеждат по-интересни сценарии за употреба.

Тези виртуализирани среди ще се движат по Windows машини, тъй като това е това, което по-голямата част на офиси продължава. Обработката, че офис машини не бива да се намесва с персонала, като се използват тези машини, следва да се изисква никаква поддръжка на машината, и лесно да се разгърнат нови машини, тъй като те станат достъпни. Също така, нови виртуални машини не трябва да изисква допълнителна конфигурация, тъй като това значително намалява мащабируемостта и лекотата, с която системата на преносната мрежа може да бъде удължен.

Защо да се мобилизират Grid Computing на Office?

На първо място може да се мисли, защо не просто използвайте ресурс за изчислителни облаци, като платформата на Amazon EC2? Ами причините биха могли да бъдат няколко, например:

  • Вие не можете да възложи определени данни за околната среда за клауд компютинг
  • Вие не може да постави определени данни в околната среда за клауд компютинг за юридически причини (например данните за напускане на страната), потенциално по юридически причини, например NHS записи.
  • Вие искате да запазите вашите процесори отблизо и да имат пълен контрол над хардуера
  • Не е нужно средствата по проекта да тече облак случаи
  • Вашият офис не разполага с връзка към интернет и следователно не е възможно да се използва ресурс облак
  • Вие не обичат дъжд, облаци показват, дъжд, затова ви държи далеч

Аз съм сигурен, че може да продължи списъка, но мисля, че това е достатъчно за сега.

Предимства на Office Computing Grid

Е, нека се направят някои математика (и в истинския физика стил ви позволява да направи някои метене предположения). Представете си, че имате големи обемни сървър за обработка на 100 работни места на ден. В офиса си, имате 50 машини, които не са активни 16 часа в денонощието, всеки един от тези машини е 10%, както е мощен като обемни обработка на север. (Всички резултати тук се закръгляват, за да се подценява увеличаване на ефективността).

Така че, 1 машина * 10% мощност * 2 / 3 = 0.067 т.е. 1 десктоп обработка в режим на време биха могли да обработват 6 пълни работни места на ден.

Ако сега мащаб до около 15 бездейства настолни компютри за обработка на колкото се може повече работни места на ден, като главния сървър за обработка.

Така че в преструвам нашия офис от 50 машини, бихме могли да увеличим нашата процесорна мощ от 1 сървър до 4 пълни сървъри обработка, или бихме могли да се обработва 400 работни места на ден, вместо 100.

Забележете, не се инвестира в нов хардуер вашата компания току-що увеличи капацитета си за пакетна обработка 4 пъти ! Потенциално ти започваш да се увеличи консумацията на енергия, но от най-офис среди, аз съм бил на машините като цяло са оставени на една нощ или иначе, така че бихте могли да видите това като зелена инициатива.

Други предимства също означава, че инвестициите в нови (или актуализират) обработка на сървъри може да бъде отложено, ако вашият офис машини са достатъчни и че като подобряване на мощността на вашия офис машини офис мрежа става все по-мощен автоматично.

Технологии

Какво ви трябва? (Или по-правилно какво съм използвал):

  • Режим на офис техника (в моя случай резервни стар Windows XP лаптоп)
  • VirtualBox (или друг клиентски софтуер за виртуализация)
  • А виртуалната машина с PHP, MySQL running работи изсече OS, Обаждам се тези ми Limp сървъри:)
  • Работни места, да тече
  • Работа сървър (може да бъде друга виртуална машина някъде)

Типичните работни места

Видовете на работни места, че тази система е проектирана да работи е както следва:

  • System получава списък на данните, на които ние трябва да отговарят и да се върнете на резултатите
  • Matching включва проверка / търсене на няколко (доста статични) източници на данни
  • Резултатите от източниците на данни може да изисква по-нататъшно утвърждаване, сливане, проверка на допълнителни източници на данни в отговор на резултатите
  • Данните се връща със съвпадащи записи, се оправдаха напълно и преработени
  • Всеки запис в рамките на работа е независима от останалите

Така че основно ние не търсим изпълняващ работни места, които се нуждаят от смес на база данни заявки и някои броя схрусква доста типичен сценарий в бизнес среда.

Grid решения не са изгодни само за обработка на работни места от този тип. По принцип, всеки процес, който могат да бъдат разделени в самостоятелни единици могат да се стартират паралелно. Вижте тази Уикипедия за примери и повече информация: Grid Computing , но няколко от известните примери са SETI @ Home и BIONC . Има на рамки за управление на компютърни мрежи, и те са добре да се търси в.

Какво ще постигнем?

До края на тези членове се надявам да покажа, че разполагането на офис мрежа не трябва да бъде изключително скъп или отнема време. Отивам да обсъдим:

  • Създаване на система за контрол на работата, работа конфигурация
  • Създаване на подходяща за преработка на виртуална машина
  • Как да настроите системата на машина на Windows
  • Осигуряване използвате последните код и данни
  • Внедряване и бенчмаркинг
  • В перспектива

Аз ще бъда сграда (добре де, тогава аз построих пише това) пример за приложение, за да тестват концепциите на локалната машина с помощта на Windows XP и ми "GridMachine" виртуална машина. Моя сървър за контрол на работата ще бъде моята основна машина, която работи Fedora 11.

Това е по никакъв начин не означава да демонстрира напълно стабилна система, означава повече на демонстрация и обсъждане показва, че тези неща могат да бъдат постигнати в разумно кратък период от време и при минимални разходи. Моля, чувствайте се свободни да ми изпратите всички коментари, корекции или подобрения и аз ще направя всичко по силите си, за да запази тази статия, актуализират, за да съвпадат.

Следващия път

В част 2 ще започне от търсене в системата за контрол на работа, и търсят в това, колко работни места трябва да бъдат конфигурирани, за да се постигне най-голям размер на обработка, като същевременно се гарантира, че всяко едно работно място се обработва, без да се провалят.

Grid Computing Виртуалните среди - Част 2

От , петък 4 декември 2009 23:23

Въвеждане

Аз работя в компания, където ще свършим много работни места за пакетна обработка на милиони записи на данни всеки ден и съм мислене наскоро за всички машини, които седят около всеки и всеки ден да прави нищо в продължение на няколко часа. Не би ли било добре, ако можем да използваме тези машини, за да уплътнят процесорна мощ на нашите системи? В тази поредица от статии, аз отивам да разгледаме потенциалните ползи от наемането на офис мрежа с помощта на виртуализирани среди.

В част 1 , дадох на преглед на системата и технологии, ще се използва, както и обсъдени някои от потенциалните причини, поради които бихте искали да се създаде мрежа в офиса.

Контрол на работата

Ако ти започваш да се работи работни места след това ти започваш да се нуждаят от някакъв начин да ги управляват. Вашата система за контрол на работата на вашия сървър за работа трябва да бъдат наистина добре обмислени, преди дори да се опитват да тече офис мрежа. Така че на първо място, какви са задачите, за система за контрол на работата:

  • Раздайте работни места при поискване от работещите в
  • Кажете на работниците, какъв вид на работните места да тече
  • Track работни места
  • Уверете се, че работните места са се изпълнява само веднъж
  • Осигуряване на работа данни за работниците, или най-малкото да им кажа къде да го получите

Системата също така трябва да бъде разширяем, решение, което работи за сега в един случай може да бъде удължен, за да стартирате няколко вида на работни места, тъй като бизнес вижда стойност в мрежа разтвор. Например, създаването на работни места могат да получат на приоритети, може да съществува повече от един вид работа (т.е. няколко бази код), в крайна сметка дори може да стартирате няколко различни машини работник, които са оптимизирани за всеки вид работа (въпреки, че се движи далеч от "генерично работник "идеята). Винаги се опитваме да мислим за бъдещето, когато разработват системи, кратко визия план може да доведе до дългосрочен план чувство на неудовлетвореност и увеличаване на времето за развитие.

Работа Сървър

Ние ще трябва някъде да контролират нашата работа от това трябва да бъде единствената система във вашата мрежа, който има постоянен Resource Locator, е, че милион IP адрес, името на хоста, URL (с помощта на вътрешен DNS) и т.н. Това е така, защото работниците трябва да знаете къде да търсите за работни места, работниците трябва да се намери работа на системата за контрол (не е система за контрол на работа намеря работниците).

Работата самия сървър не наистина сложна задача (в основната система, така или иначе), тя трябва да съхранява списък на работни места, раздават работни места, получаване на резултати, и впоследствие да ги съхранява за по-късно извличане. Как се определят тези части (като "страна, работни места") може да бъде най-основните. Късно нататък можем да се разшири системата да включва интерфейс за администрация, да добавяте, редактирате, изтривате, да спре работни места, но това е извън това упражнение.

Няма причина, каквато и след това, че работата на вашия сървър не може да бъде виртуална машина в рамките на основната обработка на сървъра, при условие че не се източва твърде много ресурси от него. Сървъра работа обаче се нуждае от висока достъпност, ако тя отива надолу в петък вечер, ти започваш да се загуби цял уикенд на обработка, потенциално ви струва няколко седмици, стойността на времето за обработка (в сравнение с основната си преработка сървър сам) . Може да искате да разгледа пускането си на работа сървър на натоварване балансирана среда за висока достъпност.

Basic Setup

Основните настройки за нашата работа сървър ще се състои от какво Обаждам се на един от моите Limp сървъри (която е Li Nux, M ySql, P HP) . Код, работещ върху работниците на Теа, действително ще работи, какви работни места може да работи, като взаимодейства с бази данни за работа на системата за контрол. Късно бихме могли да създаде уеб услуги и всъщност раздават работни места, отколкото работниците твърдия себе си работа, но за сега ние ще продължим с помощта на KISS принцип (Дръжте го прости, глупави!) .

Така че, нека създаде три MySQL таблици, за да се справят с работни места. Те ще бъдат "работни места", "jobRecords", и "jobResults".

работни места таблица Тук аз съм с помощта на SQL Бъди много малко алтернатива PhpMyAdmin само защото е по-лесно да инсталирате на CentOS (за другите виждат: 10 Great алтернативи да PhpMyAdmin )

Тази таблица се състои от 5 прости области,

  • ID: Уникално идентифициране на работа
  • име: Може да е позоваване на клиента, или произволен брой други идентификатори
  • Статус: Вие трябва да знаете, където работата е, напр .
    • 0: Не е стартирала
    • 1: качват
    • 2: Завършен
  • started_by: Кой започна да вършат работа ? Това не е напълно са необходими, но е хубаво да има. Бих предложил проследяване на работници от IP адрес във вашата мрежа
  • started_at: Когато работникът започне работа? Чрез проследяване на работни места, които не са завършили в размер на X на време, ние знаем, че трябва да вземем на работа отново и да започне да обработва от друг работник. Работниците можеше да спре обработка / офлайн за произволен брой причини прекъсване на електрозахранването, катастрофа, загуба на мрежа и др.

Лесно е, как тази таблица може да бъде удължен с няколко допълнителни полета, за да се даде възможност за събиране на статистически данни за проследяване, колона завърши на време, за да видите колко дълго работа взе брояч, за да видите колко работници взе на работа (очевидно това трябва да са склонни да 1), приоритет на работни места, списъкът може да отиде и още. В по-сложни сценарии за работа би било възможно да се определи, колко памет работник ще се нуждаят от достъп до (и следователно само да се използват подходящи работници), или дори какъв вид на работник ще се изисква.

Да се ​​добавят няколко работни места например:

Например работни места

В следващата таблица отново е доста лесно да се разбере, това са записи на нашата работа. Те са свързани с основната маса работни места от колона "jobs_id". Направи на тази таблица зависи много от данните, които трябва да предоставят на работниците си, нека направи един много прост пример, където имаме четири колони:

  • ID: ID на записа
  • име: Лице на име
  • адрес: адрес на личността
  • jobs_id: работа ID, че този запис е свързан с

Третата и финална маса се състои от таблицата с резултатите, тя е почти същото като таблицата с нашите записи, както и с добавянето на някои колони може да бъде част от таблицата записи:

  • job_record_id: Link резултат на работата маса
  • Резултатът: Резултатът данни

... И това е всичко, което е необходимо за контрол на работата! (Макар и на много базово ниво) В моя случай аз съм насочен към друга таблица, където се намира моите данни за обработка, но това може също толкова лесно се файл, параметри, за да стартирате симулация код, ти име.

Избор на работа

Както бе посочено по-рано, работниците ще направим всичко управление на работа за нас, за сега, така че всички ние наистина трябва да направите, е да намерите работа, която се нуждае за обработка и да получите информация. Как ще правим това? Ами вземете нашите критерии за подбор на работа и търсят работа в SQL направих следното:

  1. Вземете всички работни места, които не са маркирани като завършен, но от нашите работник и да ги възстановите (заместител __ME__ с идентификатор, най-лесният ще бъде IP адрес):
      UPDATE "работни места" SET "статут" = 0, където "статут" = 1 и "started_by" = __ME__; 
  2. Използването на нашите критерии за избор на работа, изберете работа и кажете на системата за контрол, че този работник се занимава с него:
      UPDATE "работни места", "статут" = 1, "started_by" = __ME__: started_at "= NOW () КЪДЕ" статут "= 0 или
     ("Статут" = 1 и "started_at"> DATE_SUB (NOW (), интервал X час)) ORDER BY `ID ASC; 

    Като вземете работни места, които не са се върнали резултати в размер X на време, ние гарантираме, че всички работни места се изпълняват в случай на работник, който след срив или ще несигурен.

  3. След това взимаме детайли работни места, последвани от самите записи:
      SELECT * ОТ "работни места", когато "started_by" = __ME__ LIMIT 1;
     SELECT * ОТ "job_records" КЪДЕ "ID" = __JOBID__; 

След приключване на работа ние вмъквате резултат нашите записи и маркирате работа като пълно. Не забравяйте, като заетостта може да доведе до преустановяване / възобновяване по всяко време да се даде възможност за някои стабилността в скрипта ви. То може да бъде, че задачата спира половина начин, чрез осъвременяване на системата за контрол на работата, така че проверка на броя на записите в работа и броя на резултатите, записани на система за контрол на работата ще бъде мъдър ход.

В допълнение, а това показва, колко работни места могат да бъдат избрани и управлявани от една SQL заявка рамка, ти трябва наистина да бъде абстрахиране контрол на работата, така че ако сте решили да преминат към използване на уеб услуги, базирана система файл, XML , или всяка друга брой на инсталациите няма да повлияе на кода по-горе.

Работа Конфигурация

Следващият аспект е да се помисли работа размери и конфигурация. Играейки с конфигурация на работа, ние можем да постигнат отличен баланс между скорост, процеса на репликация, и надеждност. Вземете OFA няколко сценарии:

  1. Работа 1 ден всеки да тече: Това означава, че вашите работници се нуждаят от 15 дни за обработка на всяко едно работно място (не забравяйте 10% от мощността за 2/3rds на време ). Това очевидно не е мъдър конфигурация, вашата работа размер е твърде голям! Това ще отнеме най-малко двойно време, за да получите преработен работа първоначалната работник трябва да отиде несигурен време да вземете, че не е върнал резултат плюс време за преработка на отработено гориво. В един идеален искате да има поне един пълен работа, лесно се изчиства от края на всеки един продължителен период на престой, по този начин да запази работни места, тиктака и в най-лошия случай работа ще отнеме два дни на процес, трябва първо да отида липсва.
  2. Работа вземат 1 минута, за да се изпълнява: Това означава, че работниците си да отнеме около 15 минути, за да стартирате всяка работа. Въпреки това първоначално може да изглежда идеално, да получат допълнителна обработка работа по време на обяд път, кафе-паузи, срещи и др.., Този сценарий поставя натиск върху други области на вашата система и въвежда собствените си проблеми. Например, на първо място настройка / коефициент на времето за обработка ще отиде чак, поради загуба на ефективността на системата. Вашата мрежа ще бъде постоянно стрийминг работа информация за различните работници разочароващ персонал, които са донг им ден на ден работа. Вие също така ще се сложи повече щам на вашия сървър за обработка на работа, тъй като трябва да ястие много и много малки парчета на работа на регулярна основа. На последно място, в тази ситуация, ако работата ви сървър върви надолу, започваш да се създаде огромен влезете обратно на недовършена работа като има предвид, по-големи работни места може да продължи обработка на блажено неведение, че работата сървър изпитва трудности.

В действителност няма да има никой идеалната конфигурация за настройка на вашата мрежа, много зависи от наличните ресурси, видове работа, изисквания за работа, време за изпълнение, мрежови възможности, и така нататък. Въпреки това някои насоки ще бъдат:

  • Размер на работни места, така че всеки работник може да получи чрез поне 3-4 работни места в период от 15 часа (най-дългата вероятно празен период от време)
  • Играйте с размер на работа, така че време за настройка става сравнително незначителни в сравнение с времето за обработка (като се има предвид горната точка).
  • Ако работата не завърши в двоен размер на време (може би по-малко), които очакват да завършат приемем, че си отиде несигурен и започнете да го обработка с друг работник. Това означава, че може да се наложи да изчакате до три пъти нормалната продължителност на работа за нея, за да завърши (вероятно по-дълъг, ако последващата работа се провали). Може да искате да се намали това време, но бъдете внимателни да не го намали прекалено много, тъй като може да започне дублиране на задачи за обработка на регулярна основа.
  • Работни места трябва да са независими от външни изисквания, колкото е възможно повече. Работата сървър, например, трябва да се свърже в началото и края на всяка работа.
  • Да не се насити вашата мрежа, това ще има две отрицателни реакции през деня, вашият персонал ще откриете, че използването на мрежата разочароващ и проблеми може да бъде опит с връзки, времето проблем, че само ще се влоши, тъй като мащабирате вашата мрежа.
  • Осигуряване на работни места може да работи на вашия работници. Ако работни места стават твърде памет интензивно или дисково пространство интензивни работни места ще започне да се прекъсват, и единственото нещо,, което ще забележите е спад в броя на работните места, които се обработват без реална причина, защо.

Подаване Резултати на работа

При представянето на резултатите от работа, е важно да се провери, че резултатите не са били подадени от друг работник, особено ако работникът е бил в латентно състояние за известно време.

Когато резултатите са представили се гарантира, че броят на резултатите съвпада с броя на записите в рамките на работа.

Както е посочено по-рано, и не може да бъде над подчерта, изграждане на толерантност към грешки в работата извличане и представяне на резултатите. На работниците (и най-вероятно ще) в режим за спиране на най-неудобната пъти и това трябва да се обслужват. Също така отново абстрахиране далеч резултатите си представяне ще се погрижат за бъдещи промени вашата система за контрол на работата много по-лесно да се справят с.

Обобщение

В това section ние сме разглеждали какво трябва да направи сървър за контрол на работа и как да се получи един много основен система, създадена. Ние обсъдихме как да извлечете работа от системата за контрол и най-добрия начин за конфигуриране на работни места, за да получите най-ни за вашата система офис мрежа. За да приключите, параграф или два за подаване на резултатите обратно към сървъра за контрол на работа.

  • А сървър за контрол на работата управлява работни места и гарантира, че всички работни единици са завършени
  • Чрез абстрахиране работата си изберете / резултати подаване можем да променим технологията на сървъра за управление без много проблеми
  • Конфигуриране на вашите работни места, за да се гарантира, че те се стартират бързо и ефективно, без да излагат на твърде голям натиск върху мрежовата си инфраструктура, и без дублиране на задачи за обработка на регулярна основа.
  • Уверете се, че изграждането на отказоустойчивост и checking грешка във вашите рутинни, работниците могат да спира и възобновява и най-неудобната пъти. Не забравяйте да проверите, ако резултатите вече са подадени от друг работник.

Следващия път

В част 3 ние ще създадем виртуална машина за обработка и нашите прозорци машини, за да стане празен работно време.

Grid Computing Виртуалните среди - част 5

От , петък 4 декември 2009 23:03

Въвеждане

Аз работя в компания, където ще свършим много работни места за пакетна обработка на милиони записи на данни всеки ден и съм мислене наскоро за всички машини, които седят около всеки и всеки ден да прави нищо в продължение на няколко часа. Не би ли било добре, ако можем да използваме тези машини, за да уплътнят процесорна мощ на нашите системи? В тази поредица от статии, аз отивам да разгледаме потенциалните ползи от наемането на офис мрежа с помощта на виртуализирани среди.

В Част 4 погледна използване на инструменти, за да се гарантира, че ние сме най-новата версия на кода и източници на данни, така че получените резултати са винаги в крак с времето с най- новите бизнес информация и логика.

Разгръщането на Pre-

Преди внедряването на системата на преносната мрежа, ако има едно нещо, което правиш и само едно нещо това е еталон на текущата си система! Без значение какво ви казват колегите колко допълнителна работа, вашата система ще направи, освен ако имате номера в подкрепа на това си гаранции не са нищо. Така че,

  • колко записи могат да се обработва в момента? На ден? В час?
  • Колко време обикновено се предприемат, за да се обърнеш на работа?
  • Колко по-голям капацитет да имате?

Има и допълнителни въпроси:

  • Ако вашият обработка на сървъра (или един от вашите обработка сървъри), как ще се отрази това на Вашите възможности, ще Ви бъде осакатен?
  • Какви предимства се надявате / очаквате да получите от мрежата?
  • Вашите офис машини може да работи на работни места?
  • Вашите (или може да бъдат превърнати ви работни места), за да работят в този стил на работа?

Последната голяма точка е да ви отнеме малко време, за всяка значителна промяна като тази. Актуализирайте код за обработка, за да работи отново с помощта на нова методика, БенчМарк. Възможно е да настроите вашия сървър за преработка, за да стартирате виртуална машина, след всички ваши обработка на сървъра ще бъде само работник (само един много мощен едно относително). Оставете на нов процес за уреждане.

Разгръщане

Моето предложение би било да се появи в офиса един уикенд, за да извършвате всички инсталации и настройка. Правете това само преди две седмици почивка и се оставя толкова други бедни човек да се справят с последиците, които може би не ... ...

За разгръщане на система като тази трябва да бъде бавно. Макар да е относително лесно да се създаде тази система ще се отрази на цялата си инфраструктура офис (и цифрови). На първо място, търкалят няколко машини в даден момент, следи трафика в мрежата, как работник домакините се изпълнява от ден за ден основа. Може да се наложи да променят конфигурацията на работа в отговор на разкритията си.

Веднъж след като системата е уреден с няколко машини (да кажем 10% от всички офис машини, т.е. 5) мониторинг на мрежовия трафик и машина домакин performance. Следваща бенчмарк отново, сега трябва да бъде обработката на 33% повече работни места, отколкото първата си показатели. Проверете това е така, или че сте най-малко в тази Ballpark. Ако не, да разследва какво се случва, преди да преминат. Повторете този цикъл, докато щастливо имат всички офис машини, без да се убива индивидуална машина или смилане на вашата мрежа в застой.

По всяко време поддържат бенчмаркинг, дори след като всички внедрявания са направени. Проверете как новите актуализации код влияят върху скоростта на вашата система, проверете всички работници са предмет на отчитане и обработка на работни места. Бавно, много бавно нарастване на вашата конфигурация на работа, за да получите най-доброто от вашите работници и мрежа.

Спри!

Какво ще стане, ако искате да спрете вашите работници от тичане по някое време? Те са всички там работи, регенериране, и се опитват всячески да обработва данни, като гладни насекоми. Отговорът може да изглежда очевидно, но своята стойност, добавяйки само в случай, му се пренебрегва. Просто редактирате вашите скрипт с излизане (0) или да умрат () или друг отчет, за да убие обработка на работа. Важна причина защо ние винаги се опитваме да се актуализират до последната обработка скрипт, преди да тече!

Демонстрационна система

За да се напише този набор от кратки статии съм създал много малка мрежата, за да се демонстрира на технологии и методологии. Четох много статии, ръководства, и използват различни инструменти за настройка и да наблюдава какво се случва. По никакъв начин не съм излязъл и наситени целия офис с трафика, нито съм имал достъп до редовни PC членове на персонала, за да видите как е бил засегнат домакин изпълнение.

Моят демонстрационна система е наистина много скромен. Аз използва редовните ми компютър, създаден като сървър за контрол на работата. На това имах инсталирана , MySQL сървър инсталиран определен набор като майстор в репликацията , PHP , а и SVN свързани чрез Apache (за достъп през работник VM) .

След това създадохме работник, CentOS машина на VirtualBox на 6-годишен лаптоп Windows XP. Настроите планирани задачи, както е определен след копиране на VM върху машината и да я пусне.

Виртуалната машина е създаден с PHP, подривна дейност, и MySQL. Аз проверих клон на име "работник" от моя контрол на работата сървъри хранилище, и че могат да бъдат актуализирани, с помощта на "SVN актуализация". След това настройка на MySQL като роб и да се провери, че данните се размножава от MySQL на сървъра за контрол на работата на работника VM. След всичко това аз настройка на Bash скрипт и Cron работа.

Моят обработка скрипт основно отиде по реда на тази (много прости неща):

  • Прочетете в полето за име
  • Отчита броят на подобни имена в таблица от източника на данни, проведено на на VM
  • Отчита броя на имената, тъй като горе, но разделяне на името с интервал (напр. собствено име, средата, фамилия)
  • Повтаря този процес 1000 пъти

Всяка работа отне около 20 минути, за да се изпълнява. В един момент аз отворих няколко копия на работника VM на лаптопа на Windows и гледани работни места да бъдат проверени от всеки работник IP адресите. В този момент аз също потвърдиха, че репликацията автоматично рестартиране.

Оставянето на лаптоп, за да работи на празен ход доведе до работник, започва да се обработва работни места от сървъра за контрол на работата. При възобновяване на ползване на лаптопа има забавяне от около 30-60 секунди, това е справедлива стойност на време и персонал ще трябва да бъдат наясно, че тяхната машина може да направи пауза за кратко време, когато се връщат към машината. Нови машини не може да има пауза от този дълъг. Ползата от размера на преработката, извършени от тези машини по време на работа на тихи обороти повече, че надвишават членове на персонала се налага да чакате за кратък период (например 1 минута) при пристигането си в техните машини на сутринта (I често чакат по-дълго, че това за Windows Defender , за да се вземат на място), при условие че те са наясно с това (полезно време, за да вземете сутрешно кафе!).

Като цяло се чувствам уверен, че са демонстрирали технологии, които биха могли да бъдат използвани за създаването на такава система. Са показали, че такава система не работи на много малък мащаб и с някои по-експериментират, могат да се мащабират използват ресурсите на машините офис. Ако не стигнем до точката на този начин ще бъдат много заинтересовани да знаете / да видите, когато някой друг.

Заключения / Оценка

Следващият очевиден стъпка ще бъде да се получи истински пример за света и започне да разположи система като тази в офис среда, и да видим какво ще се случи. Задаване на бизнеса да се ангажира с това, без пътека пламнал компания, за да докаже, технологията и ефективността може да бъде малко по-трудно. Grid / разпределени изчислителни е много популярен, някои кръгове и има някои големи приложения (BIONC, SETI @ Home, Folding @ Home, и т.н.). Аз не, обаче, да намерите по-малък мащаб и проста система като тази в моите търсения, които биха могли да се разточва в офис среда.

Аз създаде принципно безплатна система, която използва най-вече софтуер с отворен код и инструменти, които са на разположение в почти всеки офис. Технологиите са основно демонстрирани и да се покаже, да изпълнява и да работят както се очаква. Надявам се, че показват, че с не много работа и с една много проста настройка можете да разположите офис система за грид-технологията, която е мощен, евтини, а и мащабируема всички в същото време.

След като системата е създаден и работи там е почти няма край в размер на персонализация и подобрения, които можете да направите. Например статистика / бенчмаркинг може лесно да се добавят показва ценността на такава система всеки ден. Нови машини могат да се добавят бързо и лесно, както и когато те пристигат с актуализиране на съществуващия хардуер, стимулиране на процесорна мощ.

Надявам се, че сте обичах да чета тази поредица от статии и му дава храна за размисъл върху система за офис мрежа. Решението, представени тук, не е задължително да работи във всички ситуации, но трябва да се приспособява, за да се даде възможност да се свърши за обработка на данни, използвайки собствените си решение.

Моля, чувствайте се свободни да ми изпратите всички коментари, корекции или подобрения и аз ще направя всичко по силите си, за да запази тази статия, актуализират, за да съвпадат.













"Панорама" Тема чрез Themocracy

6 посетители онлайн
5 гости, 1 ботове, 0 потребители
Макс посетители днес: 15 в 12:29 ч. UTC
Този месец: 19 19-08-2011 06:09 ч. UTC
Тази година: 130 в 28-03-2011 22:40 UTC
През цялото време: 130 в 28-03-2011 22:40 UTC