Увод
Ја радим у фирми где смо покренули многе серије послове обраде милионе записа података сваки дан и био сам недавно размишљање о свим машинама које седе око сваки дан не раде ништа за неколико сати. Зар не би било добро ако бисмо могли да користе те машине да ојача процесорску снагу нашег система? У овом скуп чланака ћу да погледате потенцијалне користи од запошљавања канцеларије мрежу користите виртуалисед окружења.
У Део 1 сам дао преглед система и технологија ћу користити као и разговарали неке од могућих разлога због којих бисте желели да креирате мрежу канцеларије.
Контрола посао
Ако идете да радите посао онда ћете морати на неки начин да њима управљају. Ваш посао контроле система (на свом послу серверу) треба да буде заиста добро промишљена пре него да покуша да покрене мрежу канцеларија. Па прво, шта су задаци за посао система контроле:
- Послови руку на захтев радника
- Реците радници који тип радних места за покретање
- Пратите послове
- Уверите се да послови су само једном покренути
- Обезбедили податке посао радницима, или бар им кажете где да га добијете
Систем такође треба да буде проширив, решење које ради за сада у једном случају може се продужити за покретање неколико врста радних места, као пословне види вредност у мрежу решење. На пример, радна места могу стећи приоритете, више од једног посла типа могу да постоје (тј. неколико база код), на крају можете чак могу да раде више различитих машина радника који су оптимизовани за сваку врсту посла (иако то не да се удаљава од "генеричких радник 'идеја). Увек настојте да размишљају о будућности, кад развоја система, краткорочни визија може да доведе до дугорочне фрустрације и повећане време потребно за развој.
Посао сервер
Идемо негде да треба да контролише наш посао из, ово би требало да буде једини систем у мрежу која има фиксни Ресоурце Лоцатор, бити да ИП адресу, име хоста, УРЛ-а (коришћењем интерне ДНС-а), итд То је зато што радници треба да знају где да траже посао, радници морају да пронађу посао система контроле (не за посао систем контроле пронашли радници).
Посао Сервер себи не заиста има сложен задатак (у основни систем Уосталом), потребно је да складиште листу радних места, руку посао, добију резултати, а потом их складиште за касније прегледавање. Како овим просторима (као што је "руку посла) су дефинисани може бити врло основни. Касније можемо да прошири систем укључује интерфејс администрације да додате, едитујете, бришете, обустави радних места али ово је ван ове вежбе.
Нема разлога онда је то сервер посао не може бити виртуелна машина ради у оквиру свог главног сервера за обраду под условом да не превише одлив средстава из њега. Посао Сервер, међутим не треба високу доступност, ако се крене у петак увече ћете изгубити цео викенд обраде, потенцијално вас то кошта неколико недеља вредности време обраде (у односу на Ваш главни обраде серверу само) . Можда ћете желети да размотрите стављајући свој посао сервера на терет уравнотежен окружење за високу доступност.
Основна подешавања
Основни подешавање за наш посао сервера ће се састојати од онога што сам позив једног од мојих Лимп сервера (то је Ли Нук, М иСкл П КС). Код ради на Тхеа радници ће заиста схватити шта послове може да води у интеракцији са посла са базама података система контроле. Касније смо могли да креирате веб сервис и заправо руку посао него што радници раде тежак посао сами, али за сада ћемо наставити са коришћењем КИСС принцип (Држите га једноставно, глупо!).
Дакле, омогућава направити три миСКЛ табеле да се баве пословима. То ће бити `посао`, `јобРецордс`, и `јобРесултс`.
Ево ја сам помоћу СКЛ Бади велики мало алтернатива пхпМиАдмин само зато што њено лакше да инсталирате на ЦентОС (за други виде: 10 Велики алтернатива пхпМиАдмин )
Ова табела се састоји од 5 једноставних поља,
- ИД: идентификује посао
- Име: Може бити клијент референца, или било који број других идентификатора
- Статус: Ви треба да знате где је на посао, нпр
- 0: Није почела
- 1: покупили
- 2: Завршено
- стартед_би: Ко је започео ради посао? То није у потпуности потребне, али је лепо имати. Хтео бих предложити праћење радника од стране њихових ИП адреса на мрежи
- стартед_ат: Када је радник почети посао? Праћењем послове који нису завршени у року од к времена знамо да је потребно да покупи посао и поново почети прераде од стране другог радника. Радници могао зауставити обраду / иду ту за било који број разлога, нестанка струје, пада система, мрежа губитак, итд
Лако је како би ова табела бити продужен уз неколико додатних поља како би се омогућило праћење статистике, заврши време колону да бисте видели колико дуго је посао, контра да видите колико је радника покупио посла (очигледно то треба да теже да 1), посао приоритета, списак може ићи даље и даље. У више сложен посао сценарија би било могуће да одредите колико меморије радник је потребан приступ (и стога користите одговарајуце раднике), или чак Који тип радника бити потребно.
Омогућава додавање неколико пример послови:
Наредна табела је опет прилично једноставан за схватити, то су наш посао евиденцију. Они су повезани са главне табеле послове по колони `јобс_ид`. Чине ове табеле много зависи од података које треба да понуде на раднике, омогућава да врло једноставан пример где имамо четири колоне:
- ИД: ИД записа
- Наме: име особе
- Адреса: Особа адресу
- јобс_ид: посао ИД који овај запис је повезан са
Трећи и финални сто се састоји од табеле резултата, то је исти као и чине нашу евиденцију табеле, а са додатком неких колона може да буде део табеле записа:
- јоб_рецорд_ид: Веза резултат посао табеле
- Резултат: Резултат подаци
... И то је све што вам је потребно за посао контролу! (Мада врло основни ниво) У мом случају сам указао на другу табелу у којој се налазио своје податке за обраду, али ово би могло исто тако лако да се датотеке, параметре за покретање кода симулација, ви то име.
Избор посао
Као што је раније наведено, радници ће учинити наш менаџмент посао за нас, за сада, тако да сви морамо да заиста урадите је да пронађете посао који захтева прераду и добити информације. Како би ми ово? Па изаберете наше критеријуме за избор и посао траже посао, у СКЛ сам урадио следеће:
- Узми све послове који нису означени као комплетна, али од наших радника и ресетовање њих (замени __МЕ__ са идентификатором, најлакше би било ИП адреса):
УПДАТЕ `пословима` сет `статусу` = 0 где `статуса` = 1 и `стартед_би` = __МЕ__;
- Користећи наш посао критеријума за избор, изаберите посао и кажем да је овај систем контроле радник се бави са тим:
УПДАТЕ `пословима` сет `статуса` = 1, `стартед_би` = __МЕ__, `стартед_ат` = НОВ () ВХЕРЕ `статусу` = 0 или
(`Статус` = 1 и `стартед_ат`> ДАТЕ_СУБ (САДА (), интервал Кс САТ)) ОРДЕР БИ `ид` АСЦ;
До Граббинг послове који нису се вратили резултате у Кс време смо осигурали да се сви послови раде у случају пада или радника иде АВОЛ.
- Следеће зграбите послове детаље праћен сами евиденције:
СЕЛЕЦТ * ФРОМ `пословима` ВХЕРЕ `стартед_би` = __МЕ__ ЛИМИТ 1;
СЕЛЕЦТ * ФРОМ `јоб_рецордс` ВХЕРЕ `ид` = __ЈОБИД__;
По завршетку посла смо уметнули наш резултат записа и Марк посао заврши. Запамтите Као што се радна места суспендује наставак у било које време дозволи за неке робусност у свом писму. Може бити да је задатак суспендује на пола пута до посла ажурирање система контроле, тако да провере броја записа у посао и број резултата сачуване у систему контроле посао би био мудар потез.
Поред тога, док ово показује како се посао ће бити изабрани и управљати из СКЛ-упита оквир заиста би требало да буде апстраховања свој посао контроле, тако да ако одлучите да пређете на коришћење веб сервиса, датотека систем заснован, КСМЛ , или било који други број система неће утицати код изнад.
Конфигурација за посао
Следећи аспект који треба размотрити је посао величине и конфигурације. Играјући са посла конфигурације можемо штрајк одличан баланс између брзине, процес репликације, и поузданост. Узмите неколико сценарија ОФА:
- Послови узети 1 дан сваког да ради: То значи да је ваш радници треба 15 дана да обрадимо сваки посао (сетите се 10% енергије за 2/3рдс времена). Ово очигледно није мудро конфигурацију, величину посао је сувише велика! Било би потребно бар двоструко време да се посао би требало да обради почетне радник Го АВОЛ (време да се покупи који није вратио, плус резултат прераде време). У идеалном бисте имати барем један пун посла лако брише на крају сваког дугог периода мировања, тако да задржите посао откуцава више и у најгорем случају посао би два дана да процес треба да прво иду недостаје.
- Послови узети 1 минут да се покрене: То значи да је ваш радници траје око 15 минута да ради сваки посао. Иако ово може изгледати идеално почетку, добијате додатни рад током прераде време ручка, кафе паузе, састанци, итд овакав сценарио ставља притисак на друге области ваш систем и уводи своје проблеме. На пример, прво подешавање / време за обраду однос ће ићи доле, па губи ефикасност система. Ваша мрежа ће бити стално стримовање посао информација различитих радника фрустрирајуће особље које Донг свом свакодневном раду. Такође, идеш да се више притисак на вашем серверу посао обраде као што је јело да се много и много малих делова рада на редовној основи. На крају, у овој ситуацији, ако ваш сервер посао иде доле ћете да креирате велики Назад дневник недовршеног посла, док би веће послове наставка обраде блажено несвесни да је посао сервер је потешкоће.
У стварности неће бити једна идеална конфигурација за мрежу за подешавање, много тога зависи од расположивих средстава, врсте посла, посла рокове захтеве, мрежни способности, и тако даље. Међутим, неке смернице ће бити:
- Величина послове, тако да сваки радник може да прође кроз барем 3-4 радних места у року од 15 сати (вероватно најдужи временски период мировања)
- Играј се са посла, тако да подешавање величине време постаје прилично безначајно у односу на време обраде (имајући у виду горе тачке).
- Ако се посао не заврши у двокреветној количину времена (можда и мање), можете очекивати да га заврше претпоставити да је отишао АВОЛ и почетак прераде га са другим радник. То значи да ћете можда морати да сачека до три пута нормалне дужине посао за то да се заврши (вероватно дуже ако касније посао не успе). Можда ћете желети да смањи овај пут, али будите опрезни да не смањује превише јер може да почнете да дуплирање обраде задатака на редовној основи.
- Посао треба да буде независно од услова у највећој могућој мери. Посао сервера, на пример, треба само бити контактиран на почетку и на крају сваког посла.
- Не заситити своју мрежу, то ће имати две негативне ефекте, ваш дневни особље ће наћи преко мреже фрустрирајуће и проблеми се могу јавити са везама из времена проблем који ће се само погоршати као што скали своје мреже.
- Обезбедити посао може да ради на вашим радницима. Ако Послови постати сувише интензивне меморије или простора на диску интензивна радна места ће почети Прекидам и једина ствар коју ћете приметити је пад у броју радних места обрађен без правог разлога.
Подношење Резултати посао
Приликом подношења резултате посао, важно је да проверите да резултати нису поднети други радник, поготово ако је тренутни радник је био скривен неко време.
Када су резултати подносе обезбеди да број резултата утакмица број записа у посао.
Као што је наведено раније, и не може се више истакао, изградња толеранције грешке у посао преузимање и достављање резултата. Радници могу (и највероватније ће) ићи у суспенд мода у већини незгодно пута и то треба да се цатеред за. Такође, једном у гостима апстрахујући своје резултате поднесак ће помоћи да одговарају за будуће промене у систему контроле посао много лакше да се баве.
Резиме
У овом сецтионА смо посматрали оно што је посао контроле сервера треба да уради и како да се врло основни систем подешен. Разговарали смо о томе како да бисте преузели посао из система контроле и како најбоље да подесите да добијете посао највише наш вашег система Оффице мрежу. До краја, пасус или два о достављању резултата на серверу посао контроле је представљена.
- Посао за контролу сервера управља пословима и осигурава да су завршили све радне јединице
- По апстраховања ваш посао изаберете / резултати подношење можемо променити технологију контроле сервера без много проблема
- Конфигуришите своје послове како би се осигурало да су покренути брзо и ефикасно без стављања превише притисак на инфраструктуру мреже, и без дуплирање обраде задатака на редовној основи.
- Проверите да ли изгради толеранцију грешке и грешке цхецкингА у своје рутине, радници могу обуставити и наставити и већина незгодно пута. Не заборавите да проверите да ли резултати већ поднео други радник.
Следећи пут
У делу 3 ми ћемо креирати наш виртуелни машине за прераду и поставили наше Виндовс машине да постане мировања радног времена радника.