Category: Computing Grid

Computing Grid Zyra e ambiente përdorur Virtual - Pjesa 4

Nga , e premte 4 dhjetor 2009 11:59

Hyrje

Unë punoj në një kompani ku kemi drejtuar shumë vende pune grumbull përpunimin e miliona e të dhënave të të dhënave të çdo ditë dhe unë kam qenë kohët e fundit duke menduar për të gjitha makinat që ulen rreth çdo ditë duke bërë asgjë për disa orë. Nuk do të jetë mirë nëse ne mund të përdorim këto makina për të forcuar pushtetin përpunimin e sistemeve tona? Në këtë grup të neneve Unë do të shikojmë në përfitimet e mundshme e punësimit të një zyre të rrjetit duke përdorur mjedise virtualised.

pjesën e 3 ne kemi krijuar virtuale makinë tona të përpunimit dhe të ngritur dritaret makina të bëhen boshe-punëtorët me orar.

Drejtimin kodin fundit

Në mënyrë të pashmangshme, pas krijimit të punëtorëve logjika e biznesit tuaj do të ndryshojë, mete do të gjenden, kodi më të shpejtë më efikas do të prodhohen duke lënë punëtorët tuaj ulur rreth përpunimit të të dhënave duke përdorur kodin e vjetër erë të keq . Si atëherë nuk kemi të siguruar që ne jemi gjithmonë duke përdorur versionin e fundit dhe më të madh të Scripts tona të përpunimit?

Ka disa mënyra shumë e lehtë të thjeshta ne mund të bëjmë këtë, mashtrim, megjithatë, është për të zvogëluar pushtetin e përpunimit dhe të trafikut të rrjetit në arritjen e kësaj. Le të fillojmë me më të thjeshtat e zgjidhjeve dhe për të përmirësuar atë ngadalë mbi disa iterations.

Metoda e parë do të ishte thjesht të lidheni me serverin tonë të kontrollit të punës (me anë të samba, FTP, ose të ngjashme) dhe tërheq poshtë versionin më të fundit të kodit. Jo shumë efikase, por ajo do të bëjë punë. Lejon të përmirësuar në këtë disi, si për krijimin e një script rsync dhe duke përdorur atë kohë çdo vend? Përndryshe ajo që për vënien e fundit script tona të përpunimit në përmbysjes kontrolluar nga kodi fillimisht dhe pastaj vetëm përditësimin kodin tonë në çdo të drejtuar ( svn rinovuar )?

Në fund, ne mund të përfundojë me një skenar bash (i quajtur nga cron çdo 10 minuta), që duket aq e thjeshtë si ky:

  #! / Bin / sh
 nëse ps sëpatë | grep-v grep | grep php > / dev / null
 pastaj
     echo "Job është aktualisht e përpunimit, dalja"
 tjetër
     echo "Job nuk është i rrjedhshëm, të fillojnë tani"
     cd / path / to / pune / kopje
     svn rinovuar
     php yourJobProcessingScript.php
 fi 

Tani ne mund të jetë i sigurt se me çdo drejtuar ne jemi patjetër duke kodin fundit. Ne jemi të siguruar këtë me përditësimin e bazës tonë kodin çdo herë ne kryejmë një afat dhe reduktimin e trafikut të rrjetit vetëm nga dallimet transferuar dosjen në rrjetin tonë.

Në demonstratën setup tim, kam bërë pikërisht si më sipër. Subversion ishte instaluar në server të përpunimit të punës sime dhe unë thjesht tërhoqi kodin e fundit nga një degë 'punëtorit' përdorur 'svn freskimi'. Unë gjithashtu shtoi një tag numrin e versionit të shkrimit tim të përpunimit i cili u kthye në bazën e të dhënave, si pjesë e kthimit të rezultateve. Në këtë mënyrë unë mund të shoh se kodi im ishte duke u përditësuar çdo herë kam kopjuar bagazhin tim në degën përkatësisht punëtori që unë isha patjetër drejtimin e shkrimit të fundit të përpunimit.

Duke përdorur të dhënat e fundit

Nëse përpunimi tuaj të punës e bën përdorimin e burimeve të të dhënave pastaj në disa pika këto do të jenë updated too. Nëse ju telefononi burimeve të të dhënave tuaja mbi një bazë shumë të rrallë ju do të jeni përmbytjeve rrjetit tuaj me trafik sa më shpejt që punëtorët tuaj të fillojnë duke e çuar çdo gjë në vend numëro. Për zgjidhjen e mia unë kam vendosur që do të doja të lëvizur burimet e mia të dhënat e rreth me VMs tim.

Hold jeni kuaj atje! Çfarë ndodh nëse burimet e mia të dhënat janë të mëdha? E pra kjo është me të vërtetë një rast të se sa të dhëna janë të flasim? Ajo mund të jetë me kosto më efektive për të instaluar një disk shtesë të madhe të vështirë në çdo makinë se sa për të blerë një server të tjera të përpunimit. Kjo është një pyetje e buxhetit dhe është deri në të biznesit për të vendosur. Është ndoshta sepse burimet tuaja të dhënat janë kaq të madh që. Parealizueshme vetëm për të mbajtur se shuma e të dhënave në makina tuaja punonjësit e saj Në këtë rast çfarë do të bëni? Edhe ne mund të shikoni në një lokal quajtur server të dhënave, por kjo mund të shkaktojë probleme me rrjetin. Në këtë rast një sistem të rrjetit të tilla si ky mund të bëhen jorealiste që të përfshijë në mjedisin tuaj zyre. Ajo mund të jetë që ju mund të shikoni në strategjitë alternative në punë, për shembull, vetëm duke bërë thirrje punëtorëve tuaj 8:00-06:00 çdo natë dhe / ose të dhënave throttling kërkesa burim.

Lëvizja më lejon të thonë shumë burime të dhënat tona për 100Gb të të dhënave. E pra po kjo është shumë pak e të dhënave për të lëvizur rreth rrjetit në një update. Si do të sigurohemi që ne kemi kopje të fundit të të dhënave në këtë rast? Rsync është një mundësi, por personalisht unë mendoj se me drejtimin e burimit të fundit të dhënat tuaja në serverin tuaj të punës dhe përpunimin e vënë këtë si një master në replikimin (me një regjistër të bukur të gjatë bin) mund të jetë rruga për të shkuar:

përsëritje Me vendosjen e secilit prej punëtorëve tuaj si një skllav të reja të kontrollit të punës server burimeve të dhënat tuaja do të rrjedh poshtë bukur për punëtorët tuaj pa një rritje të madhe në aktivitetin e rrjetit (që është nëse nuk keni kryer një i madh përditësimin e të dhënave dhe të gjithë punëtorët tuaj goditje në në të njëjtën kohë). Kjo ka avantazhe mbi rsync në atë që ju nuk do të merrni një pauzë të gjatë para çdo punë, si më të reja të të dhënave, mysql daemon për punonjësit tuaj do të vazhdimisht update të dhënat e tij, ndërsa të përpunimit të vazhdon.

Kjo është se si unë ngritur serverin tim demonstrim. Për të ngritur replikimin e kam ndjekur udhëzues në faqen e mySQL ( Ngritja replikimin e ) dhe brenda 20 minutash kam bashkëpunëtori im inital përsëritur të kontrollit të punës dataset servers. Për çdo punëtor shtesë settings replikimit dhe procesit të punuar çdo herë kur VM është kopjuar.

Përmbledhje

Në këtë seksion të artikullit ne kemi shikuar se sa e lehtë dhe pa dhimbje ajo është për të mbajtur kodin tuaj të përpunimit deri tani nga using rsync ose subverion (SVN) për të bërë punën dhe për të reduktuar trafikun e rrjetit në të njëjtën time. Ne gjithashtu diskutuam se si për të mbajtur të dhënat të dhënat tuaja burim up-to-date duke e lejuar atë që rrjedh poshtë për secilin prej punëtorëve tuaj. Kështu që ne zonën e siguruar se do të vazhdojmë deri me logjikën e biznesit dhe informacionin në sistemin e rrjetit tonë zyra. Ka padyshim do të jetë alternativa të panumërta për kryerjen e këtyre detyrave, por këtu janë dy shembuj të thjeshtë për të treguar se sa e lehtë një zgjidhje për të ardhur nga.

Herën tjetër

Në pjesën e fundit të kësaj serie, quajtur me vend Pjesa 5 , ne do të diskutuar vendosjen e këtij sistemi për të. Unë do të përmbledh atë që është mësuar dhe atë që kam arritur për të krijuar.

Computing Grid Zyra e ambiente përdorur Virtual - Pjesa 1

Nga , e premte 4 dhjetor 2009 23:23

Hyrje

Unë punoj në një kompani ku kemi drejtuar shumë vende pune grumbull përpunimin e miliona e të dhënave të të dhënave të çdo ditë dhe unë kam qenë kohët e fundit duke menduar për të gjitha makinat që ulen rreth çdo ditë duke bërë asgjë për disa orë. Nuk do të jetë mirë nëse ne mund të përdorim këto makina për të forcuar pushtetin përpunimin e sistemeve tona? Në këtë grup të neneve Unë do të shikojmë në përfitimet e mundshme e punësimit të një zyre të rrjetit duke përdorur mjedise virtualised.

Si PHP zhvilluesi i Unë do të përdorin mjetet që unë e përdor çdo ditë pra, Linux, mySQL , PHP, VirtualBox dhe përmbysje pushteti (SVN). Megjithatë unë shpresoj se ky udhëzues do të përshtaten me gjuhët e tjera dhe teknologjive po aq mirë.

Zgjidhja unë të sigurojë do të jetë shumë i lirshëm i bazuar në llojin e përpunimit ne do të duhet për të arritur megjithatë kjo nuk mund të jetë e vërtetë përmes artikullin gjithë si unë do të ndryshojnë gjërat për thjeshtësi, ose për të prodhuar skenarë më interesante përdorimit.

Këto mjedise virtualised do të kandidojë për makinat e dritareve që kjo është ajo që shumica e zyrave të kandidojë. Përpunimit që makina zyra nuk duhet të ndërhyjë me stafin duke përdorur këto makina, nuk duhet të kërkojnë të mirëmbajtjes në makinë, dhe të jenë lehtësisht të vendosen për makinat e reja si ato të bëhen të disponueshme. Gjithashtu, makina të reja virtuale nuk duhet të kërkojnë ndonjë konfigurim të tjera si kjo në masë të madhe zvogëlon scalability dhe lehtësuar në të cilën sistemi i rrjetit mund të zgjatet.

Pse vendosë një Grid Computing Office?

Së pari ju mund të menduarit, pse nuk e përdorni vetëm një burim cloud computing të tilla si platformë EC2 Amazon ? Edhe arsyet mund të jenë disa, për shembull:

  • Ju nuk do të besojë të dhënave të caktuara në një mjedis të cloud computing
  • Ju nuk mund të vihet të dhënave të caktuara në një mjedis të cloud computing për arsye ligjore (p.sh. të dhënat largohen nga vendi), potencialisht për arsye ligjore, p.sh. të dhënat nga NHS.
  • Ju dëshironi të mbani njësitë tuaj të përpunimit të ngushtë dhe të ketë kontroll të plotë mbi hardware shumë
  • Ju nuk keni fondeve për projekte për të kandiduar raste cloud
  • Zyra juaj nuk ka një lidhje me internet dhe për këtë arsye e saj nuk është e mundur që të përdorin një burim cloud
  • Ju nuk si shiu, retë sugjerojnë shi, prandaj ju mbani edhe larg

Unë jam i sigurt në listë mund të vazhdojë, por unë mendoj se është e mjaftueshme për tani.

Avantazhet e rrjetit Computing Zyra

Well, lejon të bëni disa matematika (dhe në stilin e vërtetë fizikë lejon të bëjë disa supozime gjithëpërfshirës). Paramendoni ju duhet të mëdha të përpunimit të beefy server running 100 vende pune ne dite. Në zyrën tuaj se ju keni 50 makina të cilat janë të papunë 16 orë në ditë, secili nga këto makina është 10% aq i fuqishëm sa pres beefy tuaj përpunimit. (Të gjitha rezultatet këtu janë rrumbullakuar të nënvlerësojnë të rritur performancën).

Pra, 1 fuqia makinë * 10% * 2 / 3 = 0,067 herë dmth 1 përpunimit të desktop në kohë boshe mund të procesit 6 vende pune të plotë në ditë.

Nëse ju tani në shkallë këtë ide ai merr 15 Desktop papunë për një proces sa më shumë vende pune ne dite si server tuaj kryesore të përpunimit të bën.

Pra, në zyrën tonë të pretendojë të 50 makinave ne mund të rritur fuqinë tonë të përpunimit nga 1 deri në 4 server servers të plotë të përpunimit, ose ne do të mund të përpunimit 400 vende pune në ditë në vend të 100.

Njoftim, për të nuk ka investime në pajisje të reja kompaninë tuaj është rritur vetëm kapacitet përpunimi i saj grumbull 4 herë! Potencialisht ju do të jeni për të rritur përdorimin tuaj të energjisë, por nga mjediset e zyrës më të unë kam qenë në makina janë lënë në përgjithësi në brenda natës gjithsesi, kështu që ju mund të shihni këtë si një nismë e gjelbër.

Avantazhe të tjera gjithashtu do të thotë se investimi në të reja (ose përditësuar) serverat e përpunimit të mund të shtyhet në qoftë se makina zyrën tuaj janë të mjaftueshme dhe se si ju të përmirësuar fuqinë e makinave zyra juaj rrjetit zyrën tuaj bëhet më e fuqishme automatikisht.

Technologies

Çfarë ju duhet? (Ose më saktësisht atë që kam përdorur):

  • Makina Idle zyra (në rastin tim një rezervë të vjetër Windows XP laptop)
  • VirtualBox (ose në një tjetër klient virtualisation software)
  • Një makinë virtuale me PHP, MySQL running drejtimin e një shkurtuar OS, unë jam i quajtur këto servers tim butë:)
  • Punë për të drejtuar
  • Server punës (mund të jetë një tjetër makinë virtuale diku)

Jobs tipike

Llojet e punëve që ky sistem është projektuar për të kandiduar është si më poshtë:

  • Sistemit të merr një listë të të dhënave mbi të cilën ne kemi nevojë që të shkojë dhe të kthehet rezultatet
  • Matching përfshin kontrolluar / në kërkim të ndryshme (në mënyrë të drejtë statike) të dhënat e burimeve
  • Rezultatet nga burimet e të dhënave mund të kërkojnë validation më tej, bashkimi, kontrollimi i burimeve të të dhënave të tjera në përgjigje të rezultateve
  • Të dhënave është kthyer me të dhënat që përputhen, vërtetuar plotësisht dhe të përpunuara
  • Çdo rekord brenda një punë është e pavarur nga pjesa tjetër

Pra, në thelb ne jemi duke kërkuar në drejtimin e punëve të cilat kërkojnë një përzierje të lookups bazës së të dhënave dhe disa crunching numër, një skenar në mënyrë të drejtë tipike në një mjedis të biznesit.

Zgjidhje të rrjetit nuk janë vetëm të dobishme për përpunimin e punë të këtij lloji. Në thelb, çdo proces i cili mund të ndahen në njësi të pavarura mund të kandidojë në paralele. Shiko këtë wikipedia për shembuj dhe më shumë informacion: Computing Grid , por disa shembuj të famshëm janë të SETI @ home dhe BIONC . Ka kornizat për drejtimin rrjetet kompjuterike, dhe këto janë edhe me vlerë në kërkim.

Çfarë do të arrijmë?

Deri në fund të këtyre neneve unë shpresoj për të treguar se vendosjen e një rrjeti zyre nuk duhet të jenë tepër të shtrenjta apo të konsumojnë kohën. Unë jam duke shkuar për të diskutuar:

  • Ngritjen e sistemit të kontrollit të punës, konfigurimit të punës
  • Krijimi i një makine të përshtatshme të përpunimit virtuale
  • Si të setup sistem në një makinë dritare
  • Siguruar që ju jeni duke përdorur kodin e fundit dhe të dhënat
  • Vendosjen dhe krahasimit
  • Duke parë përpara

Do të jetë ndërtesë (ok I ndërtuar, atëherë shkroi këtë) një kërkesë shembull për të testuar konceptet në një makinë lokal duke përdorur Windows XP dhe mi "GridMachine" virtual machine. Kontrollin e punës sime server do të jetë makinë e mia kryesore e cila shkon Fedora 11 .

Kjo është në asnjë mënyrë për qëllim të demonstrojnë një sistem plotësisht të punës të fuqishme të tij, do të thotë më shumë një demonstrim dhe diskutimin duke treguar se këto gjëra mund të arrihet në një hapësirë ​​të arsyeshme të shkurtër kohe dhe me kosto të ulët. Ju lutemi të mos ngurroni të më dërgoni çdo koment, korrigjime, apo përmirësime dhe unë do të bëj çmos për ta mbajtur këtë artikull përditësuar për ndeshje.

Herën tjetër

pjesën 2 Unë do të fillojë duke shikuar në sistemin e kontrollit të punës, dhe të shohim se si punë duhet të konfigurohet në mënyrë që të arrihet shuma më të mëdha të përpunimit, ndërsa të siguruar se çdo punë është përpunuar pa të dështojnë.

Computing Grid Zyra e ambiente përdorur Virtual - Pjesa 2

Nga , e premte 4 dhjetor 2009 23:23

Hyrje

Unë punoj në një kompani ku kemi drejtuar shumë vende pune grumbull përpunimin e miliona e të dhënave të të dhënave të çdo ditë dhe unë kam qenë kohët e fundit duke menduar për të gjitha makinat që ulen rreth çdo ditë duke bërë asgjë për disa orë. Nuk do të jetë mirë nëse ne mund të përdorim këto makina për të forcuar pushtetin përpunimin e sistemeve tona? Në këtë grup të neneve Unë do të shikojmë në përfitimet e mundshme e punësimit të një zyre të rrjetit duke përdorur mjedise virtualised.

Pjesa 1 I dha një pasqyrë të sistemit dhe teknologjitë do të jem duke përdorur, si dhe diskutoi disa nga arsyet e mundshme pse ju do të duan të krijojnë një rrjet zyrë.

Kontrolli i punës

Nëse ju do të jeni të konkurrojnë punë, atëherë ju do të jeni nevojë për disa mënyra për menaxhimin e tyre. Kontrollit të sistemit tuaj të punës (në serverin tuaj të punës), duhet të jetë me të vërtetë të menduar mirë para se të përpiqet për të drejtuar një rrjet zyrë. Pra së pari, cilat janë detyrat për një sistem të kontrollit të punës:

  • Punë dorën, me kërkesë të punonjësve
  • Tregoj punëtorëve çfarë lloji të vendeve të punës për të drejtuar
  • Punë Track
  • Të siguruar se punët janë drejtuar vetëm një herë
  • Japin të dhëna të punës për punëtorët, ose së paku tregoni atyre se ku mund të merrni atë

Sistemi gjithashtu duhet të jetë e zgjeruar, një zgjidhje që punon për tani në një rast të vetëm mund të zgjatet për të drejtuar disa lloje të vendeve të punës si biznesi e sheh me vlerë në një zgjidhje të rrjetit. Për shembull, punë mund të fitojë prioritetet, më shumë se një lloj pune mund të ekzistojnë (bazat e disa dmth kodi), në fund ju mund edhe të drejtuar makina të ndryshme punëtor që janë optimizuar për çdo lloj të punës (edhe pse që nuk largohen nga punonjësi "gjenerike 'ide). Gjithmonë të përpiqemi të mendojmë për të ardhmen, kur zhvillimin e sistemeve, një vizion afat të shkurtër mund të çojnë në zhgënjim afat më të gjatë dhe kohë në rritje të zhvillimit.

Server Job

Ne do të jeni nevojë diku për të kontrolluar punën tonë nga, kjo duhet të jetë i vetmi sistem në rrjet tuaj që ka një burim të caktuar locator, të jetë që një adresë IP, emrin e host, URL (duke përdorur DNS të brendshëm), etj Kjo është për shkak punëtorëve duhet të dini ku të kërkoni punë, punëtorët duhet të gjejmë sistemin e kontrollit të punës (nuk e kontrollit të punës të sistemit të gjetur punëtorë).

Server punës në vetvete nuk ka të vërtetë kanë një detyrë e komplikuar (në një sistem bazë Gjithsesi), ajo ka nevojë për të ruajtur një listë të vendeve të punës, të dorëzuar nga vendet e punës, të marrë rezultatet, dhe më pas dyqan ato për rikthim më vonë. Si këto pjesë ('dorë nga punë' të tilla si) janë përcaktuar mund të jetë shumë bazë. Më vonë ne mund të zgjasë e sistemit për të përfshirë një ndërfaqe administratës për të shtuar, edit, delete, të pezullojë punët por kjo është përtej këtij ushtrimi.

Nuk ka asnjë lloj arsye, atëherë që serveri juaj punë nuk mund të jetë një makinë virtuale drejtimin brenda serverin tuaj kryesore të përpunimit me kusht që ajo nuk ka shterim burimet shumë nga ajo. Server punë megjithatë ka nevojë për disponueshmërinë e lartë, në qoftë se ajo shkon poshtë në një mbrëmje e premte do të jeni të humbur një fundjavë e tërë e përpunimit, potencialisht ju kushton disa javë me vlerë të kohës së përpunimit (kur krahasohet me serverin tuaj kryesore të përpunimit të vetëm) . Ju mund të dëshironi të marrin në konsideratë vendosjen e serverit tuaj të punës në një mjedis të ngarkesës të balancuar për disponibilitetin e lartë.

Setup bazë

Setup bazë për serverin tonë të punës do të përbëhet nga ajo që unë jam duke e quajtur një nga serverat e mi i butë (që është nux Li, m ySql, P HP). Kodi kandidon për punëtorët thea do të punojnë në të vërtetë se çfarë punë mund të drejtuar nga bashkëveprojmë me bazat e të dhënave me kontrollin e sistemit të punës. Më vonë ne mund të krijojë një shërbim web dhe në të vërtetë dora e vendeve të punës në vend se të punëtorëve të bëjë punën e vështirë vetë, por tani për tani ne do të vazhdojmë duke përdorur parimin KISS (Keep it Simple, Stupid!).

Pra, lejon krijimin e tre mySQL tavolina për t'u marrë me punë. Këto do të jenë 'punë', `jobRecords`, dhe `jobResults`.

punë tavolinë Ja unë jam duke përdorur SQL Buddy një alternativë e madhe pak për të phpMyAdmin vetëm për shkak se më të lehtë e saj për të instaluar në CentOS (për të tjerët e shohin: 10 alternativa e madhe për të phpMyAdmin )

Kjo tabelë përmban 5 fusha të thjeshta,

  • id: Unike identifikimin e vendeve të punës
  • Emri: Mund të jetë një referencë e klientit, ose ndonjë numër të identifikuesve të tjera
  • Statusi: Ju duhet të dini ku puna është në, p.sh.
    • 0: Nuk ka filluar
    • 1: kap
    • 2: Kompletuar
  • started_by: Kush e ka filluar duke bërë punë? Kjo nuk është e nevojshme tërësisht, por është një mirë të ketë. Unë do të sugjeroj punëtorë përcjelljes nga adresat e tyre IP në rrjetin tuaj
  • started_at: Kur u punonjësi filluar punë? Nga ndjekja punë që nuk e kanë përfunduar në sasi të X të kohës ne e dimë ne duhet të marr në punë një herë dhe të fillojë përpunimi nga një tjetër punëtor. Punëtorëve të mund të ndalojë përpunimin / shkoni e shkëputur për çdo numër arsyesh, dështimi i pushtetit, aksident, humbje të rrjetit, etj

Është e lehtë se si kjo tabelë mund të zgjatet me disa fusha të tjera për të lejuar për statistikat ndjekjen, një kohë të përfundojë kolonë për të parë se sa kohë në punë mori, një kundër për të parë se sa punëtorë të kap punë (pa dyshim ky duhet të priren të 1), prioritet të punës, lista mund të vazhdojë dhe më. Në skenarët e punës më komplekse do të ishte e mundur për të përcaktuar se sa memorie të punonjësit do të duhet qasje në (dhe për këtë arsye të përdorin vetëm punëtorë të përshtatshme), apo edhe se çfarë lloji i punëtorëve do të jetë e nevojshme.

Le të shtoni një punë disa shembull:

punë shembull

Tabela e ardhshëm përsëri është mjaft e thjeshtë për të kuptuar, këto janë të dhënat tona të punës. Ata janë të lidhur me kryesore tryezë punë nga një kolonë `jobs_id`. Përbëjnë të kësaj tabele shumë varet nga të dhënat që ju duhet të furnizimit të punëtorëve tuaj, lejon të bëjë një shembull shumë të thjeshtë ku ne kemi katër shtylla:

  • id: ID i regjistruar
  • Emri: Emri i personit
  • Adresa: Adresa personit
  • jobs_id: ID punë që ky rekord është i lidhur me

Tabela e tretë dhe e fundit përbëhet nga një tabelë rezulton, ai ka të njëjtën shumë të bëjë si të dhënat tabelën tonë, dhe me shtimin e disa kolonave mund të jetë pjesë e tabelës dhënat:

  • job_record_id: Link rezultati në tavolinën e punës
  • Rezultati: Të dhënat Rezultati

... Dhe kjo është e gjitha që ju nevojitet për kontroll të punës! (Megjithëse në një nivel shumë bazë) Në rastin tim unë jam vënë në një tjetër tavolinë, ku të dhënat e mia për të procesit ishte e vendosur, por kjo mund po aq e lehtë është një fotografi, parametrat për të kandiduar kodin simulimi, ju atë emër.

Zgjedhjen e një pune

Siç u tha më parë, punëtorët do të bëjë menaxhimin e tona të punës për ne tani për tani, kështu që të gjithë ne duhet të vërtetë nuk është të gjejnë një punë që ka nevojë për përpunimin dhe për të marrë informacion. Si do ta bëjmë këtë? Well marr zgjedhjen tonë të punës kriteret dhe të kërkoni për punë, në SQL kam bërë në vijim:

  1. Të marrë ndonjë punë që nuk janë shënuar si të plotë, por nga punonjësit tanë dhe rivendosur ato (zëvendësues __ME__ me një identifikues, lehtë do të jetë adresa IP):
      UPDATE `SET` punë `status` = 0 KU `status` = 1 DHE `started_by` = __ME__; 
  2. Duke përdorur zgjedhjen tonë të punës kriteret, zgjidhni një punë dhe të them të sistemit të kontrollit se ky punonjësi që kanë të bëjnë me:
      UPDATE `SET` punë `status` = 1, `started_by` = __ME__, `started_at` = TANI () KU status `` = 0 APO
     (`Status` = 1 DHE `started_at`> DATE_SUB (TANI (), intervali X ORE)) ORDER BY id `` ASC; 

    Duke grabbing punës që nuk janë kthyer rezulton në sasinë e kohës X ne të siguruar që të gjitha punët janë drejtuar në rast të një punonjësi ose duke shkuar AWOL crashing.

  3. Next kap detajet punët e ndjekur nga të dhënat e tyre:
      SELECT * `punë NGA KU` `` started_by = __ME__ LIMIT 1;
     SELECT * NGA `job_records` `id` KU = __JOBID__; 

Pas përfundimit të punës që ne të futur të dhënat tona të rezultojë dhe të shënojë punë si plotë. Mos harroni si punë mund të pezullojë / rifillojë në çdo kohë të lejuar për disa Fuqia në skenarin tuaj. Kjo mund të jetë se detyra pezullon gjysmë rrugë nëpërmjet përditësimit sistemit të kontrollit të punës, në mënyrë të kontrolluar numrin e shënimeve në një punë dhe numri i rezultateve ruajtur përsëri në sistemin e kontrollit të punës do të jetë një veprim i mençur.

Përveç kësaj, ndërsa kjo demonstron se si punë mund të përzgjidhen dhe menaxhohen nga një kornizë të SQL-query ju duhet të vërtetë të jetë nxjerrja e kontrollit tuaj të punës në mënyrë që nëse ju vendosni të kaloni në përdorimin e një shërbimi të internetit, një sistem të bazuar fotografi, XML , apo ndonjë tjetër Numri i sistemeve ajo nuk do të ndikojë në kodin atë.

Konfigurimi Job

Aspekti tjetër për t'u marrë parasysh është madhësia e punës dhe konfigurimin. Duke luajtur me konfigurimin e punës, ne mund grevë një bilanc të shkëlqyer mes të shpejtësisë, replikimin e procesit, dhe besueshmërinë. Merrni një skenarë MKO çift:

  1. Jobs marrë 1 ditë secilit për të kandiduar: Kjo do të thotë se punëtorët tuaj duhet 15 ditë për të procesit të çdo punë (kujtoni 10% të fuqisë për 2/3rds e kohës). Kjo nuk është e qartë një konfiguracion i mençur, madhësia e tuaj të punës është mënyrë shumë e madhe! Ajo do të marrë të paktën dy herë për të marrë një punë të përpunuara duhet të punëtorit fillestare të shkojnë AWOL (koha për të marr se nuk i ka kthyer një rezultat plus kohë ripërpunimin). Në një ideal që ju do të keni të paktën një punë të plotë të pastruar lehtë deri në fund të çdo periudhe të gjatë i papunë, në këtë mënyrë ju mbani punë tik-tak mbi dhe në rastin më të keq një punë do të marrë dy ditë për të procesit duhet së pari të humbur.
  2. Jobs marrë 1 minutë për të kandiduar: Kjo do të thotë se punëtorët tuaj të zgjasë rreth 15 minuta për të drejtuar çdo punë. Përderisa kjo mund të duket fillimisht ideale, ju fitoni përpunimin e të tjera punë gjatë kohës së drekës, prishet kafe, takimet, etj ky skenar e vë barrën e zona të tjera të sistemit tuaj dhe paraqet problemet e veta. Për shembull, së pari raporti Setup / përpunimit kohën tuaj do të shkojnë drejtë poshtë, pra humbjen e efikasitetit të sistemit. Rrjeti juaj do të jetë vazhdimisht streaming informacion punë të ndryshme të stafit të punëtorëve frustruese të cilët janë monotone ditën e tyre në punën e përditshme. Ju jeni gjithashtu do të vënë më shumë tendosje në serverin e përpunimit tuaj të punës si ajo ka për të të shpërndaj shumë dhe shumë e copa të vogla të punës në baza të rregullta. Së fundi, në këtë situatë nëse serveri juaj puna shkon poshtë ju do të jeni për të krijuar një regjistër të madh e pasme të punës papërfunduar ndërsa punët më të mëdha mund të vazhduar përpunimin e blissfully dijeni se serveri punë u përjetuar vështirësi.

Në realitet nuk do të ketë një konfigurim ideal për setup tuaj rrjetit, shumë varet nga burimet në dispozicion, llojet e kërkesave të punës të punës kthesën e kohës, aftësinë e rrjetit, dhe kështu me radhë. Megjithatë, disa udhëzime do të jenë:

  • Size punë në mënyrë që çdo punëtor mund të marrë me të paktën 3-4 vende pune në një periudhë prej 15 orëve (gjatë periudhës boshe të ngjarë kohe)
  • Luaj me madhësinë e punës kështu që kohë të instalimit të bëhet mjaft e parëndësishme në krahasim me kohën e përpunimit (duke patur parasysh pikën më lart).
  • Nëse një punë nuk të plotë në dyfishin e kohës (ndoshta më pak), ju presin atë për të përfunduar atë supozojmë se AWOL e saj të përpunimit të shkuar dhe të fillojnë me një tjetër punëtor. Kjo do të thotë që ju mund të duhet të presin deri në tri herë gjatësinë normale të një punë që ajo të plotë (ndoshta më gjatë nëse puna e mëvonshme nuk). Ju mund të dëshironi të reduktuar këtë kohë, por të kujdesshëm të mos e ulur atë shumë më shumë që ju mund të filloni dublikuar detyra të përpunimit në baza të rregullta.
  • Punët duhet të jenë të pavarur nga kërkesat e jashtme sa më shumë të jetë e mundur. Server punës, për shembull, duhet vetëm të kontaktohet në fillim dhe në fund të çdo punë.
  • A nuk e ngop rrjeti juaj, kjo do të ketë dy efekte negative, stafi juaj ditës do të gjeni duke përdorur rrjetin frustruese dhe problemet mund të jetë me përvojë me lidhjet kohën një problem që do të merrni vetëm keq si ju shkallë të rrjetit tuaj.
  • Të siguruar punë mund të kandidojë për punëtorët tuaj. Nëse punë bëhen shumë punë intensive e kujtesës ose disk space intensive do të fillojë aborting dhe e vetmja gjë që ju do të vëreni është një rënie në numrin e vendeve të punës të përpunuara me të vërtetë nuk ka arsye pse.

Rezultatet Dorëzimi i një pune

Kur dorëzimin e rezultateve të një punë është e rëndësishme të kontrolloni se rezultatet nuk janë paraqitur nga një tjetër punëtor, veçanërisht në qoftë se punonjësi aktual ka qenë në gjumë për disa kohë.

Kur rezultatet janë paraqitur të siguruar që numri i rezultateve përputhet me numrin e të dhënave në punë.

Siç u tha më parë, dhe nuk mund të jetë mbi theksuar, të ndërtuar tolerancë gabimi në gjetjen e punës dhe rezultatet e dorëzimit. Punëtorët mund (dhe më shumë gjasa do të) shkojnë në mënyrë të pezullojë në më të papërshtatshëm për herë dhe kjo duhet të catered për të. Gjithashtu edhe një herë abstracting larg rezultatet paraqitjen tuaj do t'ju ndihmojë të kujdesem për ndryshimet e ardhshme në sistemin e kontrollit tuaj të punës shumë më e lehtë për t'u marrë me të.

Përmbledhje

Në këtë section kemi shikuar në atë që një kontroll i punës server duhet të bëjë dhe si të merrni një sistem shumë bazë ngritur. Ne diskutuam se si të marrim një punë të sistemit të kontrollit dhe mënyrën më të mirë për të konfiguruar punë për të marrë më tonë të sistemit të rrjetit zyrën tuaj. Për të përfunduar, një paragraf ose dy në dorëzimin e rezultateve përsëri në server kontrollin e punës u prezantua.

  • Një kontroll të punës server menaxhon punë dhe siguron që të gjitha njësitë e punës janë përfunduar
  • Duke abstraguar punën tuaj të zgjedhur / rezultatet e paraqitjen ne mund të ndryshojmë teknologjinë e serverit kontrollin pa probleme shumë më të
  • Configure punë tuaj për të siguruar se ata janë të drejtuar shpejt dhe me efikasitet, pa vënë shumë presion mbi infrastrukturën e rrjetit tuaj, dhe pa dublikuar përpunimit të detyrave në mënyrë të rregullt.
  • Të siguruar që ju të ndërtuar tolerancë gabimi dhe checking gabim në rutinat tuaj, punëtorët mund të pezullojë dhe rinisë dhe më të papërshtatshëm të kohës. Mos harroni të kontrolloni nëse rezultatet tashmë janë parashtruar nga një tjetër punëtor.

Herën tjetër

pjesën e 3 ne do të krijojë virtual machine tona të përpunimit dhe të ngritur makina dritaret tona të bëhen boshe-punëtorët me orar.

Computing Grid Zyra e ambiente përdorur Virtual - Pjesa 5

Nga , e premte 4 dhjetor 2009 11:03

Hyrje

Unë punoj në një kompani ku kemi drejtuar shumë vende pune grumbull përpunimin e miliona e të dhënave të të dhënave të çdo ditë dhe unë kam qenë kohët e fundit duke menduar për të gjitha makinat që ulen rreth çdo ditë duke bërë asgjë për disa orë. Nuk do të jetë mirë nëse ne mund të përdorim këto makina për të forcuar pushtetin përpunimin e sistemeve tona? Në këtë grup të neneve Unë do të shikojmë në përfitimet e mundshme e punësimit të një zyre të rrjetit duke përdorur mjedise virtualised.

Pjesa 4 pamë duke përdorur mjete për të siguruar që ne të xhironi versionin e fundit të burimeve të kodit dhe të dhënat në mënyrë që rezultatet e arritura janë gjithmonë up-to-date me informacionin e biznesit të fundit dhe logjikës.

Para-vendosjes

Para vendosjen e rrjetit të sistemit tuaj, nëse ka një gjë që ju bëni dhe një gjë vetëm se është pikë referimi sistemin tuaj aktual! Pa marrë parasysh atë që ju them kolegëve për mënyrën se si shumë punë ekstra sistemin tuaj do të bëjë nëse nuk keni numra për të mbështetur këtë ide garanton tuaja janë asgjë. Pra,

  • sa të dhënat mund të procesit për momentin? Per Day? Në orë?
  • Sa kohë tipike të marrë për ta kthyer rreth një punë?
  • Sa më shumë kapacitet keni?

Ka edhe pyetje shtesë:

  • Nqs serveri juaj e përpunimit (ose një nga serverat tuaj të përpunimit) shkon poshtë se si do të ndikojë kjo aftësitë tuaja, do të jetë i gjymtë?
  • Përparësitë çfarë shpresoni / presin për të marrë nga një sistem rrjetit?
  • Janë makina zyrën tuaj në gjendje të punojë punë?
  • Janë (ose mund të punëve të konvertohet) për të punuar në këtë stil të rrjedhshëm?

Pika e fundit e madhe është që të marrë kohën tuaj në ndonjë ndryshim i madh si kjo. Update kodin tuaj të përpunimit të punojë duke përdorur të reja, pikë referimi metodologjinë përsëri. Ndoshta ngritur serveri juaj e përpunimit për të drejtuar një makinë virtuale, pasi të gjithë e përpunimit serveri juaj do të jetë vetëm një punëtor (vetëm një shumë të fuqishme relativisht). Lejo proces i ri për të zgjidhur.

Vendosjen

Sugjerimi im do të jetë për pop në zyrën e një fundjavë të kryejë të gjitha instalimet dhe setup. Bëni këtë vetëm para dy javë pushime dhe të lënë kështu të varfër të tjera djalë që të merren me pasojat ... ndoshta jo ...

Vendosjen e një sistemi si ky duhet të jetë i ngadalshëm. Pavarësisht se është relativisht e thjeshtë për të ngritur këtë sistem do të ndikojë në të gjithë infrastrukturën zyrën tuaj (edhe një dixhitale). Së pari, hap për një çift të makinave në një kohë, trafiku monitorimin e rrjetit, si pret punonjësit të kryer në një ditë-për-ditë. Ju mund të kenë nevojë për të ndryshuar konfigurimin tuaj të punës në përgjigje të gjetjeve tuaj.

Pasi sistemi ka vendosur me disa makina (lejon të themi 10% e të gjithë makina zyra, dmth 5) të mbajë monitorimin e trafikut të rrjetit dhe makinë të presë performance. reperit tjetër përsëri, ju tani duhet të përpunimit punë 33% më shumë se standardet e tuaj të parë. Kontrolloni kjo është kështu, apo që ju të jeni të paktën në këtë ballpark. Nëse jo, të hetuar se çfarë po ndodh para se të lëvizin. Përsëriteni këtë cikël deri sa të lumtur janë të gjitha makinat zyra duke pa vrarë performancën individuale makinës apo të rëndë rrjetin tuaj në vend numëro.

Në çdo kohë të mbajtur krahasimit, edhe pas të gjitha vendosjet janë bërë. Kontrolloni se sa updates kodin e ri të ndikojë në shpejtësinë e sistemit tuaj, kontrolloni të gjithë punëtorët janë të raportimit në dhe përpunimin e punë. Ngadalë (shumë ngadalë) rritje konfigurimin tuaj të punës për të marrë maksimumin nga punëtorët tuaj dhe të rrjetit.

Stop!

Çfarë nëse ju doni të ndaluar punëtorët tuaj të kandidonte në një kohë? Ata janë të gjithë atje running, rigjeneruese, dhe duke u përpjekur të mirë të tyre për një proces të dhënave si insekte të uritur. Përgjigja mund të duket e qartë, por e tij me vlerë duke shtuar vetëm në rast se neglizhohet e saj. Thjesht redaktoni shkrimin tuaj të përpunimit me një dalje (0) ose të vdesin () apo ndonjë deklaratë tjetër për të vrarë punën tuaj të përpunimit. Një arsye e rëndësishme pse ne gjithmonë përpiqemi për të rinovuar të shkrimit e përpunimit të fundit para se të kandidojë!

Sistemi Demonstration

Në mënyrë që të shkruaj këtë grup artikujsh të shkurtër dhe kam krijuar një rrjet shumë të vogël për të treguar teknologjive dhe metodologjive. Kam lexuar shumë artikuj, tutorials, dhe përdoren mjete të ndryshme për të setup dhe monitoruar se çfarë po ndodhte. Në asnjë mënyrë nuk kam shkuar jashtë dhe i ngopur e një zyre të tërë me trafikun dhe as nuk kam patur qasje në një kompjuter të rregullt anëtarët e stafit për të parë se si performanca host ishte prekur.

Sistemin tim demonstratë ishte shumë e përulur të vërtetë. I përdorur desktop tim të rregullt të ngritur si një server të kontrollit të punës. Në këtë unë kam instaluar mySQL instaluar server ngritur si një master në përsëritje, PHP , Â dhe SVN e lidhur me anë të apache (për qasje nëpërmjet punëtorit VM).

Unë pastaj krijuar një makinë punëtor CentOS në VirtualBox në një 6 vjeçar laptop të vjetër Windows XP. Unë përbërje detyrave të planifikuara të specifikuara si pas kopjimit VM mbi makinë dhe le të shkojë.

Makinë virtuale u ngrit me PHP, përmbysje, dhe mySQL. I kontrolluar nga një degë e quajtur 'punëtorit' nga kontrolli depo punës sime serverat dhe e bëri të sigurt se mund të përditësuar duke përdorur 'svn freskimi'. Next Unë përbërje mySQL si skllav dhe të kontrollohen që të dhënat është përsëritur nga mySQL në server kontrollin e punës deri në VM punëtorit. Pas gjithë kësaj unë setup script bash dhe punë cron.

Script përpunimin e mia në thelb u përgjatë vijave të kësaj (gjëra shumë e thjeshtë):

  • Lexoni në fushën e emrit
  • Llogaritet numri i emrave të ngjashme në një tavolinë nga burimi i të dhënave që mbahen në VM
  • Llogaritet numri i emrave si emri më lart, por ndarjen nga hapësira (p.sh. emri, mesme, mbiemri)
  • Përsëriti këtë proces 1000 herë

Çdo punë mori rreth 20 minuta për të kandiduar. Në një moment kam hapur disa kopje të VM punonjësit në laptopë dritaret dhe shikuar punët të kontrollohet jashtë nga çdo e IP adresave në punëtori. Në këtë pikë unë gjithashtu konfirmoi se replikimin rifilluar automatikisht.

Duke lënë laptopë për të papunë ka rezultuar në një punëtor filluar të procesit të punëve nga serveri e kontrollit të punës. Kur rifillimin e përdorimit laptop ka pasur një vonesë prej rreth 30-60 sekonda, kjo është një sasi mjaftë e kohës dhe stafi do të duhet të bëhen të vetëdijshëm se makina e tyre mund të pauzë për një kohë të shkurtër kur të kthehen në makinë. Newer makina nuk mund të ketë një pauzë të kësaj të gjatë. Përfitimin e shumës së përpunimit të kryera nga këto makina gjatë periudhave të papunë do të jenë më të mëdha më shumë se anëtarët e stafit që të presë një periudhë të shkurtër (të themi 1 minutë) të arritur në makinat e tyre në mëngjes (unë shpesh presin më gjatë se kjo për një Defender Windows- rinovuar të ndodhë), me kusht që të janë bërë të vetëdijshëm për këtë (koha e dobishme për të rrëmbyer një kafe në mëngjes!).

Në përgjithësi unë ndjehen të sigurt se unë kam demonstruar teknologjive që mund të përdoret për të krijuar një sistem të tillë. Unë kam treguar se një sistem i tillë funksionon në shkallë (shumë) të vogla dhe me disa më shumë eksperimente mund të shkallëzuar deri të shfrytëzojë burimet e makinave një zyrë të. Nëse unë nuk do të marrë deri në pikën e bërë këtë do të jetë shumë i interesuar të di / të parë kur dikush tjetër e bën.

Konkluzionet / Vlerësimi

Hapi i ardhshëm do të jetë e qartë që në fakt të marrë një shembull të botës reale dhe të fillojnë të vendosur një sistem të tillë si ky në një mjedis zyre dhe shikoni se çfarë ndodh. Asking a biznesit për të kryer për këtë pa një kompani gjurmët flakëron për të provuar të teknologjisë dhe efektivitetit mund të jetë pak e vështirë. Grid / Shpërndarë informatikë është shumë popullor është disa qarqe dhe ka disa aplikacione të mëdha (BIONC, SETI @ Home, Folding @ Home, etj). Unë nuk e bëri, megjithatë, të gjejnë një shkallë më të vogël dhe të sistemit të thjeshtë si kjo në kërkimet e mia që mund të jetë i mbështjellë brenda një mjedis zyre.

I krijuar një sistem në thelb falas duke përdorur software më së shumti me burim të hapur dhe mjetet në dispozicion në pothuajse çdo zyrë. Teknologjive të demonstruar në thelb dhe të tregojë për të kryer dhe të punojnë ashtu siç pritet. Shpresojmë që unë kam treguar se me punë jo shumë dhe me një përbërje shumë të thjeshtë ju mund të vendosë një rrjet zyrën e sistemit informatikë që është i fuqishëm, i lirë, dhe të shkallëzuar  gjitha në të njëjtën kohë.

Pasi një sistemi është dhe drejtimin nuk ka pothuajse asnjë fund për sasinë e customization dhe përmirësime ju mund të bëni. Për shembull statistikat / krahasimit lehtë mund të shtohet duke treguar vlerën e një sistemi të tillë çdo ditë. Makinave të reja mund të shtohen shpejt dhe lehtë si dhe kur ata të arrijnë me përmirësimet për hardware ekzistues forcimin e pushtetit tuaj të përpunimit.

Unë shpresoj se ju kam gëzuar lexuar këtë seri e artikujve dhe të tij dhënë ushqim për të menduar në drejtimin e një sistemi të rrjetit zyre. Zgjidhja e paraqitura këtu jo domosdoshmërisht do të punojnë në të gjitha situatat, por duhet të jetë i adaptueshëm për të lejuar ju që të merrni përpunimit të të dhënave tuaja bëhet duke përdorur zgjidhjen tuaj.

Ju lutemi të mos ngurroni të më dërgoni çdo koment, korrigjime, apo përmirësime dhe unë do të bëj çmos për ta mbajtur këtë artikull përditësuar për ndeshje.













Theme Panorama nga Themocracy

12 vizitorë online tani
10 vizitorë, 2 bots, 0 anëtarë
Max vizitorët sot: 18 at 4:13 UTC
Këtë muaj: 19 at 6:09 UTC 19-08-2011
Këtë vit: 130 at 22:40 UTC 28-03-2011
Gjithë kohës: 130 at 22:40 UTC 28-03-2011