Category: Linux

Zyra Grid Computing duke përdorur mjedise Virtual - Pjesa 4

Nga Lloyd Watkin Steven , 4 dhjetor 2009 e premte 23:59

Hyrje

Unë punoj në një kompani ku kemi drejtuar grumbull shumë punë të përpunimit të miliona e të dhënave 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 kemi krijuar përpunimin tonë makinë virtuale dhe ngritur dritaret e makinave për t'u bërë i papunë me kohë të punëtorëve.

Running kodin fundit

Në mënyrë të pashmangshme, pas krijimit të biznesit të punëtorëve logjika juaj do të ndryshojë, bugs do të gjendet, më efikase kodin shpejtë do të prodhohet duke lënë punëtorët tuaj të ulur rreth përpunimit të të dhënave duke përdorur kodin e vjetër me erë të keq . Si atëherë nuk kemi siguruar që ne jemi gjithmonë duke përdorur versionin më të 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ë që të zvogëlojë fuqinë përpunuese dhe trafikut të rrjetit në arritjen e kësaj. Lejon të fillojë me më të thjeshtë e zgjidhjeve dhe për të përmirësuar atë ngadalë me kalimin e disa përsëritjeve.

Metoda e parë do të ishte thjesht lidheni me serverin e kontrollit tonë 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ësohet në këtë disi, si për krijimin e një dorëshkrim rsync dhe duke përdorur çdo herë që në vend? Përndryshe çfarë për vënien e përpunimit tonë shkrimit të fundit në përmbysje kontrolluar nga kodi fillimisht dhe pastaj vetëm përditësimin kodin tonë mbi çdo të kandidojë ( update svn )?

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

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

Tani ne mund të jetë i sigurt që me çdo drejtuar ne jemi patjetër drejtimin kodin fundit. Ne jemi të siguruar këtë nga përditësimin bazë të kodit tonë çdo herë do të kryejnë një të drejtuar dhe reduktimin e trafikut të rrjetit nga vetëm transferimin e dallimet e kartelave nëpërmjet rrjetit tonë.

Skema e mia në demonstratë, kam bërë pikërisht si më sipër. Përmbysje ishte instaluar në server përpunimin tim të punës dhe unë thjesht u tërhoq kodin fundit nga dega një "punëtor" duke përdorur "update svn '. Unë gjithashtu shtoi një numër tag version të shkrimit tim përpunimin e cila ishte kthyer 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 plaçkat e mia në dmth dega punëtor 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, atëherë në disa pika këto do të jenë më të shumë. Përveç nëse ju telefononi burimet tuaja të dhëna në një bazë shumë të rrallë do të jeni të përmbytjeve rrjetin tuaj me trafik sa më shpejt që punëtorët tuaj të fillojnë duke e çuar çdo gjë në një qëndrim. Për zgjidhjen e mia unë kam vendosur që do të doja të lëvizur burimet e mia të dhëna rreth me VMS tim.

Hold ju jeni kuaj atje! Po në qoftë se të dhënat e burimeve të mia janë të mëdha? E pra kjo është me të vërtetë një rast të se sa të dhëna jemi duke folur? Ajo mund të jetë me kosto më efektive për të instaluar një hard drive të mëdha shtesë në çdo makinë se për të blerë një përpunim server shtesë. Kjo është një pyetje e buxhetit dhe është deri në të biznesit për të vendosur. Ajo ndoshta që të dhënat burimet tuaja janë aq të mëdha që të parealizueshme vetëm të saj për të mbajtur atë sasi të të dhënave në punëtor makina tuaj. Në këtë rast çfarë do të bëni? E pra ne mund të shikojmë në të dhënat e quajtur një server lokal, por kjo mund të shkaktojë probleme me rrjetin. Në këtë rast një sistem të rrjetit të tilla si kjo mund të bëhet realiste për të përfshirë në zyrën mjedisin tuaj. Ajo mund të jetë që ju mund të shikoni në drejtimin e strategji alternative, për shembull, vetëm duke e quajtur punëtorët tuaj të 20:00-06:00 çdo natë dhe / ose burim funksion kërkesave për të dhëna.

Lëvizja më lejon të thonë shumë burime tona të dhënave të 100Gb e të dhënave. Pra po kjo është fare pak e të dhënave për të lëvizur nëpër rrjetin 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 tuaj të dhëna në serverin përpunimin tuaj të punës dhe ngritjen e kjo deri si një master në përsëritje (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 për burime të serverit tuaj të të dhënave 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ë përditësim të madhe të dhënave dhe të gjithë punëtorët tuaj goditje në në të njëjtën kohë). Kjo ka përparësi mbi rsync në se ju nuk do të ketë një pauzë të gjatë para çdo punë, si më të reja database, mysql daemon në punëtori juaj do të vazhdimisht përditësimin e të dhënave të saj, ndërsa vazhdon të përpunimit.

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

Përmbledhje

Në këtë pjesë të këtij neni, ne kemi shikuar se sa e lehtë dhe pa dhimbje ajo është për të mbajtur kodin tuaj të përpunimit deri tani nga rsync using ose subverion (SVN) për të bërë punën dhe për të zvogëluar e trafikut të rrjetit në të njëjtën time. Ne gjithashtu diskutuan se si për të mbajtur të dhënat, informatat tuaja burim up-to-date duke e lejuar atë të rrjedh poshtë për secilin prej punëtorëve tuaj. Kështu ne zone duke siguruar se do të vazhdojmë me logjikën e biznesit dhe informacionin në sistemin e rrjetit tonë të zyrës. Nuk do të qartë 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ë është një zgjidhje që do të vijnë nga.

Herën tjetër

Në pjesën e fundit të këtij seri, të quajtur me vend Part 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 të krijojnë.

Zyra Grid Computing duke përdorur mjedise Virtual - Pjesa 3

Nga Lloyd Watkin Steven , 4 dhjetor 2009 e premte 23:37

Hyrje

Unë punoj në një kompani ku kemi drejtuar grumbull shumë punë të përpunimit të miliona e të dhënave 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 2 kemi shikuar në punë një server do të kandidojë, dhe sa punë duhet të konfigurohet në mënyrë që të arrihet shuma më të mëdha të përpunimit ndërsa siguruar se çdo punë është i përpunuar pa të dështojnë.

Ngritjen e punëtor tuaj - apo server Limp

Hapi i ardhshëm në këtë proces është për të ngritur punëtorët tuaj virtuale. Për këtë unë jam duke shkuar për të përdorur një instalimin e CentOS duke përdorur VirtualBox. Unë do të instaluar MySQL dhe PHP në server, i njohur gjithashtu si një i butë (Nux Li, m ySQL, P HP) Server (Unë mund të ketë bërë që emri i lart).

  • Install VirtualBox në dritare kompjuterin tuaj (ndiqni link)
  • Shkarkoni dhe instaloni CentOS (versionin e tanishëm 5.3) brenda një makinë e krijuar virtuale

Nuk ka asnjë pikë mua do të këtë ka ndoshta 's 1000 e mësime të mëdha atje (ok, këtu është një: Krijimi dhe Managing virtual machine CentOS nën VirtualBox ). Pika e rëndësishme të theksohet që unë mendoj është se unë i quajtur makinë virtuale GridMachine tim.

Sa i përket zgjedhjet e mia e klientit virtualisation dhe të sistemit operativ të shkuar nuk ka asnjë arsye e madhe bindëse për çdo zgjedhje. VirtualBox është diçka që unë e përdor në kompjuterin e shtëpisë sime, dhe është mbështetur nga tre sistemet operative të mëdha. Unë zgjodha CentOS si OS të saj të mirë të qëndrueshme dhe ta përdor atë në server-in tim web. Unë jam një besimtar i madh në mjetet e duhur për punë (edhe pse unë jam duke aplikuar "të përdorur më e shpejtë dhe e lehtë për ju 'mentalitetin këtu), kështu që nëse sistemi operativ X shkon kodin tuaj të shpejtë dhe në mënyrë më efikase të përdorur që në vend:)

E rëndësishme të sigurohemi që VM juaj përdor DHCP, ndryshe për çdo makinë të re virtuale do të duhet të konfigurohet vete e cila është diçka që ne nuk want.By përdorur DHCP ne nuk duhet ta konfiguroni parametrat e rrjetit individualisht për makina punëtor, DHCP do dore nga IPS për ju. Prandaj ju mund të kopjoni kompjuterin tuaj virtuale për zyrën e pa u brengosur për vendosjen e çdo një dorë (kjo përmirëson scalability dhe redukton administratës punëtor).

Procesin e ju duhet të synojnë për të arritur do të jetë për të marrë një makinë të re fizike, install VirtualBox, dhe pastaj shumë e shumë të vendosur imazhin virtual pa shumë tjetër. Kjo mund të jetë i mençur për të setup të gjithë punëtorët tuaj në një subnet të ndryshme në mënyrë që ju të mund të paktën të parë se sa shumë makina të vrapojnë. Ju gjithashtu duhet për të ngritur makina tuaj në një qira të gjatë ose DHCP pakufizuar me qira.

Si për të drejtuar Jobs në punëtori

Kjo është një fushë interesante dhe ka disa metoda të vlefshme për punë të përpunimit të punonjësit. Këtu unë do të diskutojë vetëm dy më të dukshme:

  • Gjithmonë duke script: Një skenar, të jetë ajo një skenar shell, apo një dorëshkrim PHP kryhet një herë në punëtori dhe shkon si pjesë e një lak të pafund. Unë e kam zbritur këtë metodë, si një përplasje të shkrimit dhe potencialisht punëtorët tuaj do të pushojë për të kandiduar, pa ndonjë lloj të intervenimit.
  • ekzekutimin e script Cron bazë: Çdo minuta X daemon cron nis një telefonatë për të shkrimit tuaj për të marrë gjërat e sipër. Pa disa kontrolluar kjo mund të çojë në shumë kopje shumë e shkrimit tuaj punëtor running.

Vendimi im ishte që të shkojë me cron i cili nis një script shell çdo 10 minutes. script My shell kryen detyrat e mëposhtme:

  1. Të merrni një listë proces dhe grep këtë për 'php'. Nëse nuk u gjet pastaj të vazhdojë.
  2. Call kodin tuaj të punës, në rastin tim kjo do të jetë diçka PHP bazohet
  3. script Worker përfundon garën e saj të
  4. Gati për të shkuar përsëri në thirrjen e ardhshme të përshtatshme

script My bash duket diçka si në vijim:

  #! / Bin / sh
 nëse ps sëpatë | grep-v grep | grep php> / dev / null
 pastaj
     echo "Job është aktualisht e përpunimit, dalje"
 tjetër
     echo "Job nuk është në ekzekutim, të fillojnë tani"
     yourJobProcessingScript.php php
 fi 

Shënim: echo-së janë pothuajse tërësisht të pakuptimta, por mund të ndihmuar personin tjetër që vjen së bashku të përpiqen dhe të modifikoni ato.

Që përfundon në ngritjen e makinës virtuale punëtor, i shpejtë, i thjeshtë, dhe e lehtë për kopje të çdo pjesë të re të pajisjeve që është pranuar. 'Zgjuarsi' për sistemin e rrjetit të vërtetë nuk është në OS visualized, e saj të gjithë të bëjnë me kodin e krijuar në punët e procesit, e konfigurimit të punës, dhe në marrjen e sigurt se puna shkon kur të përshtatshme (dmth., kur të presë është i papunë ).

Ngritjen e Windows në nisje të Punëtorëve të

Detyra e parë është që të punojë jashtë komandën e nevojshme për të drejtuar makinës virtuale nga vija e komandës dritaret. Nëse e keni instaluar VirtualBox në vend default dhe ju keni emrin punëtor GridMachine tuaj atëherë komanda e nevojshme për të ngarkesës deri punonjësi juaj është:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxManage.exe" GridMachine startvm 

Megjithatë për të kandiduar të shkrimit në një shtet "pa kokë" ne kemi nevojë për të përdorur:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = off 

Kjo do të fillojë të makinës virtuale pa GUI dhe të lejojë atë për të ruajtur shtetin gracefully. Argumenti i dytë fiket RDP kështu që nuk ka konflikt me windows RDP, apo të ju jap një mesazh për të dëgjuar në portin 3389. Makinë Emri virtuale rast është e ndjeshme!

Tjetra, ne do të duhet për të vendosur up dritare për të fillojë VM tonë punëtor një herë në makinë ka qenë i papunë. Për ta bërë këtë (në Windows XP), juve ju duhet të shkoni Start -> All Programs - Accessories> -> System Tools -> Scheduled Tasks si më poshtë:

detyrave të planifikuara

Pastaj klikoni në "Shto Scheduled Task 'e ndjekur nga shfletoni për të shtuar një program me porosi. Lundruar në shkrimin tuaj VBoxManage dhe klikoni OK. Schedule detyrën tuaj për ndonjë prej opsioneve (që ne do të ndryshojë kjo në një minutë) dhe për të vazhduar. Pas skipping dritare tjetër ekran do të ju pyes që ju doni të drejtuar këtë detyrë, unë do të sugjeroj ose 'Administrator', ose krijimin e një përdorues të ri të privilegjuar. Mos harroni ne nuk duam të ndërhyjë në llogari të stafit standard në makinë në çdo pikë. Klikoni opsionet e ardhshme dhe kontrolloni tregojnë të avancuara për këtë detyrë.

Në fund të textbox drejtuar add string 'GridMachine startvm' tonë dhe për të siguruar që të kandidojë vetëm kur keni hyrë në është lënë unticked. Vizitoni detyrë orarin e ardhshme dhe për të ndryshuar drop orarin poshtë në opsionin 'kur boshe', zgjidhni sasinë e kohës që ju dëshironi të makinës të jenë përtace para se të lëvizin për në skedën tjetër.

Së fundi untick opsionin i cili thotë stop detyra në qoftë se ajo ka qenë duke sasi të X të kohës, por nuk shënoni mundësi për të ndaluar detyrë nëse makina nuk është më i papunë.

orar

Kjo është ajo pastaj për Windows setup host!

Përmbledhje

Në këtë pjesë, ne kemi ngritur një makinë virtuale për të vepruar si një punëtor, si dhe mënyrën në të cilën ne e quajmë dhe ekzekutuar përpunimin tonë të punës Scripts (për veten time një dorëshkrim PHP). Nga këtu ne shohim se si për të ngritur kopje tonë të dritareve të fillojnë deri në makinë virtuale ne menyren e pa kokë kur kompjuteri bëhet i papunë, dhe për të shpëtuar shtetin e saj kur përdoruesi rifillon përdorimin e makinës. Shpresojmë se në këtë pikë ju jeni duke parë sa e thjeshtë është për të ngritur një sistem të tillë dhe janë të kruhet për të marrë disa eksperimente do veten!

Herën tjetër

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

Zyra Grid Computing duke përdorur mjedise Virtual - Pjesa 1

Nga Lloyd Watkin Steven , 4 dhjetor 2009 e premte 23:23

Hyrje

Unë punoj në një kompani ku kemi drejtuar grumbull shumë punë të përpunimit të miliona e të dhënave 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 një PHP zhvilluesi Unë do të përdorin mjete që unë e përdor çdo ditë pra, Linux, mySQL , PHP, VirtualBox dhe përmbysje (SVN). Megjithatë unë shpresoj se ky udhëzues do të përshtaten me gjuhët e tjera dhe të teknologjive të vetëm si.

The zgjidhje kam siguruar do të jenë shumë të lirshëm 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 artikull 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 Windows makina që kjo është ajo që shumica e zyrave të kandidojë. Të përpunimit që makina zyra nuk nuk duhet te nderhyje me stafin duke përdorur ato makina, duhet të kërkojnë asnjë mirëmbajtje 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ërkojë për ndonjë konfigurim të tjera si kjo redukton shumë scalability dhe lehtësuar në të cilën sistemin e rrjetit mund të zgjatet.

Pse vendosë një Grid Computing Office?

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

  • Ju nuk do t'i besojë të dhënave të caktuara në një mjedis cloud
  • Ju nuk mund të vihet të dhënave të caktuara në një mjedis cloud për arsye ligjore (p.sh. të dhënat e të largohet 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 fonde të projektit të kandidojë raste të re
  • Zyra juaj nuk ka një lidhje me internet dhe për këtë arsye e saj nuk është e mundshme për të përdorur një burim re
  • Ju nuk jeni si shiu, retë sugjerojnë shi, prandaj ju mbani edhe larg

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

Avantazhet e një Grid Computing Zyra

Well, lejon të bëjë disa matematika (dhe në stilin e fizikës e vërtetë lejon të bëjë disa supozime gjithëpërfshirës). Paramendoni ju duhet të mëdha server muskulor të përpunimit running 100 vende pune në ditë. 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 të përpunimit tuaj muskulor pres. (Të gjitha rezultatet këtu janë të rrumbullakosura për të rritur performancën nënvlerësojnë).

Pra, 1 makine * 10% * pushtet 2 / 3 = 0,067 kohë 1 dmth desktop përpunimi në kohë i papunë mund të procesit 6 Punë të plotë në ditë.

Nëse ju tani në shkallë të këtë deri ai merr 15 Desktop papunë për një proces sa shumë punë në ditë, si e përpunimit kryesore server juaj.

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

Njoftim, për asnjë investim në hardware të ri kompaninë tuaj është rritur vetëm grumbull të përpunimit të saj kapacitet 4 herë! Potencialisht do të jeni për të rritur përdorimin tuaj të energjisë, por nga mjediset më të zyrës që unë kam qenë në makina janë lënë në përgjithësi në anyway brenda natës, kështu që ju mund të shihni këtë si një nismë e gjelbër.

Avantazhe të tjera të thotë se investimi në të re (ose përditësuar) servers përpunimit të mund të shtyhet në qoftë se makina juaj zyra janë të mjaftueshme dhe se si ju përmirësohet fuqia e makinave të zyrës tuaj të rrjetit tuaj zyra e bëhet më e fuqishme automatikisht.

Technologies

Çfarë ju duhet? (Ose më saktë ajo që bëri që unë të përdorni):

  • zyra e makina bosh (ne rastin tim një laptop Windows XP rezervë e vjetër)
  • VirtualBox (ose në një tjetër klient virtualisation software)
  • Një makinë virtuale me PHP, mySQL running drejtimin e një të shkurtuar OS, unë jam duke e quajtur tim Limp servers këto:)
  • Jobs për të kandiduar
  • server punës (mund të jetë një tjetër makinë virtuale diku)

Punë tipike

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

  • Sistem të merr një listë të të dhënave mbi të cilat 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 të
  • Rezultatet nga burimet e të dhënave mund të kërkojë më tej validation, bashkimi, kontrollimin e burimeve të të dhënave të tjera në përgjigje të rezultateve
  • Të dhënave është kthyer me të dhënat që përputhen, legalizuar plotësisht dhe të përpunuara
  • Çdo regjistrim 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 e lookups bazës së të dhënave dhe disa crunching numër, një skenar tipik në mënyrë të drejtë në një mjedis të biznesit.

zgjidhje Grid 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ë drejtohet në mënyrë paralele. Shiko këtë wikipedia për shembuj dhe më shumë informacion: Grid Computing , por disa shembuj të famshëm janë të Seti @ Home dhe BIONC . Nuk janë kornizat për drejtimin rrjetet informatikë, dhe këto janë edhe me vlerë në kërkim.

Çfarë do të arrijmë?

Deri në fund të këtyre artikujve unë shpresoj që të tregojnë se vendosjen e një rrjeti zyre nuk duhet të jetë jashtëzakonisht e shtrenjtë apo të kohës. Unë jam duke shkuar për të diskutuar:

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

Unë do të ndërtimit (ok kam ndërtuar, atëherë ka shkruajtur ky) një kërkesë shembull për të testuar konceptet në një makinë lokal duke përdorur Windows XP dhe makinë virtuale 'GridMachine' im. punë e kontrollit e mia serveri do të jetë kryesor makinën time e cila shkon Fedora 11 .

Kjo është në asnjë mënyrë për qëllim të demonstrojnë një sistem të plotë të punës të fuqishme, të saj do të thotë më shumë një demonstrim dhe diskutuar 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 lutem 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 të ndeshjes.

Herën tjetër

pjesën e 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 siguruar se çdo punë është i përpunuar pa të dështojnë.

Zyra Grid Computing duke përdorur mjedise Virtual - Pjesa 2

Nga Lloyd Watkin Steven , 4 dhjetor 2009 e premte 23:23

Hyrje

Unë punoj në një kompani ku kemi drejtuar grumbull shumë punë të përpunimit të miliona e të dhënave 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 1 I dha një pasqyrë të sistemit dhe të teknologjive të unë do të përdorin, si dhe u diskutua si disa nga arsyet e mundshme pse ju do të duan të krijojnë një rrjet zyrë.

Job Control

Nëse ju do të jeni të konkurrojnë punë atëherë ju do të jeni nevojë disa mënyra për të menaxhuar ato. kontrollit të sistemit të juaj punë (në server tuaj të punës), duhet të jetë me të vërtetë menduar mirë para se edhe përpjekur për të drejtuar një rrjet zyrë. Pra, së pari, cilat janë detyrat e një sistemi të kontrollit të punës:

  • Dorë nga punët me kërkesë të punonjësve
  • Tell 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ë
  • Sigurimi i të dhënave të punës për punëtorët, apo të paktën tregoni atyre 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ë punëve si biznesi e sheh me vlerë në një zgjidhje të rrjetit. Për shembull, punët mund të fitojë prioritetet, më shumë se një lloj pune mund të ekzistojnë (bazat e disa dmth kodi), në fund ju mund të drejtohet edhe disa makina të ndryshme punëtor që janë optimizuar për secilin lloj të punës (edhe pse se ka lëvizje larg nga "punonjës i përgjithshëm 'ide). Gjithmonë të përpiqemi për të menduar për të ardhmen, kur sistemet e zhvillimit, një vizion afat të shkurtër mund të çojnë në zhgënjim afat më të gjatë dhe të kohës në rritje të zhvillimit.

Job Server

Ne do të jeni nevojë diku për të kontrolluar punën tonë nga, ky duhet të jetë i vetmi sistem në rrjet tuaj që ka një pozicionimi të caktuar të burimeve, të jetë që një adresë IP, emri i host, URL (duke përdorur DNS të brendshëm), etj Kjo është për shkak se punëtorët duhet të dini se ku mund të shikoni për punë, punëtorët duhet të gjeni sistemit të kontrollit të punës (nuk e kontrollit të punës të sistemit të gjetur punëtorë).

Server punë në vetvete nuk ka të vërtetë kanë një detyrë e komplikuar (në një Gjithsesi bazë sistemi), ajo ka nevojë për të ruajtur një listë të vendeve të punës, dorë nga punë, të marrë rezultatet, dhe më pas dyqan tyre për rikthim më vonë. Se si këto pjesë ('dorë nga punë "të tilla si) janë përcaktuar mund të jetë shumë bazë. Më vonë ne mund të zgjasë të sistemit për të përfshirë një ndërfaqe të 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 pastaj se serverit tuaj të punës nuk mund të jetë një makinë virtuale running brenda serverit kryesore tuaj e përpunimit me kusht që ajo nuk do të thahet burime shumë nga ajo. Server punë megjithatë ka në dispozicion duhet të larta, 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 të përpunimit (kur krahasohet me serverin tuaj kryesore të përpunimit të vetëm) . Ju mund të dëshirojnë të marrin në konsideratë vendosjen e serverit tuaj të punës në një mjedis të balancuar të ngarkesës për disponueshmërinë e lartë.

Skema themelore

Setup bazë për punën e serverit tonë do të përbëhet nga ajo që unë jam duke e quajtur një nga serverat e butë time (që është Nux Li, ySql m, P HP). Kodin kandidon për punëtorët the do të punojnë në të vërtetë se çfarë punë që mund të drejtuar nga bashkëveprojmë me me kontrollin e të dhënave të sistemit të punës. Më vonë ne mund të krijojë një shërbim të web dhe në të vërtetë dorë nga punët në vend që 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ë në tryezë Ja unë jam duke përdorur SQL Buddy pak alternativë e madhe për phpMyAdmin vetëm për shkak të tij më të lehtë 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 punës
  • Emri: Mund të jetë një referencë e klientit, ose ndonjë numër identifikues të tjera
  • Statusi: Ju duhet të dini se 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ë e mirë që të ketë. Unë do të sugjeroj ndjekja e punëtorëve me adresën e tyre IP në rrjetin tuaj
  • started_at: Kur punonjësi filluar punë? Nga ndjekja e punës që nuk kanë përfunduar brenda sasi X e kohës ne e dimë që duhet të marr këtë punë edhe një herë dhe të fillojnë të përpunimit nga një punëtor. Punëtorëve të mund të ndalojë përpunimin / shkoni në linjë për çdo numër arsyesh, dështimi i pushtetit, crash, rrjeti humbje, etj

Është e lehtë se si kjo tabelë mund të zgjatet me një disa fusha të tjera për të lejuar për ndjekjen e statistikave, një kolonë kohë të përfundojë për të parë se sa kohë e punë e mori, një kundër për të parë se shumë punëtorë të kap punë (pa dyshim ky duhet të priren të 1), prioritet të punës, lista mund të vazhdojë dhe më. Në më shumë skenarë punë komplekse do të ishte e mundur që të përcaktojë se sa memorie të punonjësit do të ketë nevojë akses për të (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.

Lejon të shtoni një punë pak shembull:

Punë shembull

Tabela e ardhshëm përsëri është fare 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`. Të bëjë deri te kjo tabelë shumë varet nga të dhënat që ju duhet të furnizimit të punëtorëve tuaj, të lejon të bëjë një shembull shumë të thjeshtë ku ne kemi katër shtylla:

  • id: ID i regjistruar
  • Emri:'s name Person
  • Adresa: Adresa e Personit
  • jobs_id: ID punë që ky rekord është i lidhur me

Tabela e tretë dhe të fundit përbëhet nga një tabelën e rezultateve, ajo ka shumë e njëjtë të bërë deri sa 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 rezultat në tryezë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 i vuri në një tjetër tryezë ku të dhënat e mia për një proces të 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ë punë

Siç u tha më parë, punëtorët do të bëjë të menaxhimit 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ërpunim dhe për të marrë informacion. Si do ta bëjmë këtë? Edhe marr zgjedhjen tonë të punës dhe kriteret të shikoni për punë, në SQL unë nuk e mëposhtme:

  1. Të marrë ndonjë punë që nuk janë shënuar si të plotë, por nga punonjësit tonë dhe reset ata (__ME__ zëvendësim me një identifikues, lehtë do të jetë adresa IP):
      UPDATE `Punë` SET `status` = 0 KU `status` = 1 DHE `started_by` = __ME__; 
  2. Përdorimi i kritereve të përzgjedhjes tonë të punës, zgjidhni një punë dhe të them të sistemit të kontrollit që ky punëtor është që kanë të bëjnë me:
      UPDATE `Punë` SET `status` = 1, `started_by` = __ME__, `` started_at = NOW () KU `status` = 0 APO
     (`` Status = 1 DHE `` started_at> DATE_SUB (TANI (), interval X ORE)) ORDER BY id `` ASC; 

    Nga grabbing punës që nuk janë kthyer rezulton në shumën X kohë kemi 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 * `job_records NGA KU` `` id = __JOBID__; 

Pas përfundimit të punës kemi futur të dhënat tona dhe të shënuar rezultat të punës si e plotë. Mos harroni sa punë mund të pezullojë / rinisë në çdo kohë të lejuar për disa Fuqia në shkrimin tuaj. Kjo mund të jetë se detyra pezullon gjysmën e përditësimit të sistemit të kontrollit të punës, kështu që duke kontrolluar numrin e të dhënave në një punë dhe numrin e rezultateve të 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 tregon se si punë mund të përzgjidhen dhe menaxhohen nga një e-query SQL kornizë ju duhet të vërtetë të abstraguar punën e kontrollit tuaj në mënyrë që, nëse ju vendosni të kaloni në përdorimin e një ueb shërbim, një sistem të bazuar file, XML , apo ndonjë tjetër numër i sistemeve ajo nuk do të ndikojë në kodin e mësipërm atë.

Job Konfigurimi

Aspekti tjetër për t'u marrë parasysh është madhësia e punës dhe të konfigurimit. Duke luajtur me konfigurimin e punë që ne mund të grevës një bilanc të shkëlqyer midis shpejtësisë, përsëritje proces, dhe besueshmërinë. Hidhni një çift of skenare:

  1. Punë të marrë 1 ditë secilit për të kandiduar: Kjo do të thotë se punëtorët tuaj duhet 15 ditë për një proces të çdo punë (kujtoni 10% të fuqisë për 2/3rds të kohës). This is clearly not a wise configuration, your job size is way too big! It would take at least double the time to get a job processed should the initial worker go AWOL (time to pick up that it hasn't returned a result plus reprocessing time). In an ideal you'd have at least one full job easily cleared by the end of each long idle period, that way you keep the jobs ticking over and at worst case a job would take two days to process should the first go missing.
  2. Jobs take 1 minute to run: This means that your workers take about 15 minutes to run each job. Whilst this may initially seem ideal, you gain additional work processing during lunch time, coffee breaks, meetings, etc this scenario puts strain on other areas of your system and introduces its own problems. For example, firstly your setup/processing time ratio is going to go right down, therefore losing system efficiency. Your network is going to be constantly streaming job information to the various workers frustrating staff who are dong their day to day work. You're also going to put more strain on your job processing server as it has to dish out lots and lots of small pieces of work on a regular basis. Lastly, in this situation if your job server goes down you're going to create a huge back log of uncompleted work whereas bigger jobs could of continued processing blissfully unaware that the job server was experiencing difficulties.

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

  • Punë Size në mënyrë që çdo punëtor mund ta merrni nëpërmjet të paktën 3-4 vende pune në një periudhë prej 15 orëve (gjatë periudhës të ngjarë boshe kohe)
  • Luaj me madhësinë e punës kështu që kohë setup bëhet mjaft i parëndësishëm në krahasim me kohën e përpunimit (duke patur parasysh pikën më sipër).
  • Nëse një punë nuk e bën të plotë në dyfishin e kohës (ndoshta me pak) ju presin atë për të përfunduar atë të supozojmë se AWOL e shkuar dhe të fillojnë përpunimin e tij me një tjetër punëtor. Kjo do të thotë që ju mund të duhet të presë deri në tri herë gjatësinë normale e 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 për të ulur atë shumë si 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ë që 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 e rrjetit tuaj, kjo do të ketë dy efekte negative, stafi juaj ditën do të gjeni duke përdorur rrjetin frustruese dhe problemet mund të jetë me përvojë me lidhjet kohën nga një problem që do të merrni vetëm më keq si ju shkallë rrjetit tuaj.
  • Punë Sigurimi mund të kandidojë në punëtorët tuaj. Nëse punët bëhen shumë memorie Punë intensive ose disk hapësirë ​​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 asnjë arsye të vërtetë pse.

Rezultatet Dorëzimi i një punë

Momentin e paraqitjes së rezultateve të një punë është e rëndësishme të kontrolloni që rezultatet nuk kanë qenë të paraqitura 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ë mbi theksuar, të ndërtuar tolerancë gabimi në rikthim të punës dhe rezultate të dorëzimit. Punëtorët mund (dhe më shumë gjasa do të) shkojnë në të pezullojë mode në më të papërshtatshëm të herë dhe kjo duhet të jetë për catered. Gjithashtu edhe një herë abstracting larg Rezultatet e paraqitjes tuaj do t'ju ndihmojë të kujdesem për ndryshimet e ardhshme të sistemit të kontrollit tuaj të punës shumë më e lehtë për t'u marrë me të.

Përmbledhje

Në këtë section ne kemi shikuar në atë që një kontroll punë serveri duhet të bëjnë dhe si të merrni një sistem shumë bazë të ngritur. Ne biseduam se si të marrë një punë nga e sistemit të kontrollit dhe sa më të mirë të konfigurosh punë për të marrë më tonë të sistemit të rrjetit zyrën tuaj. Për të përfunduar, një paragraf ose dy për dorëzimin e rezultateve të kthehet në punë serverin e kontrollit është paraqitur.

  • Një kontroll punë server menaxhon punët dhe siguron që të gjitha njësitë e punës janë përfunduar
  • Duke abstraguar punën tuaj të zgjedhur / dorëzimin Rezultatet e ne mund të ndryshojmë teknologjinë e serverit kontrollin pa probleme shumë më të
  • Punë Konfiguro tuaj për të siguruar që ato janë drejtuar shpejt dhe me efikasitet, pa vënë shumë presion mbi infrastrukturën e rrjetit, dhe pa dublikuar detyra të përpunimit në baza të rregullta.
  • Të siguruar që ju të ndërtuar tolerancë gabimi dhe checking gabim në rutinat tuaj, punëtorët mund të pezulluar dhe rifilluar 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ë të përpunimit tonë makinë virtuale dhe ngriti makinat dritaret tona për t'u bërë i papunë me kohë të punëtorëve.

Zyra Grid Computing duke përdorur mjedise Virtual - Pjesa 5

Nga Lloyd Watkin Steven , 4 dhjetor 2009 e premte 23:03

Hyrje

Unë punoj në një kompani ku kemi drejtuar grumbull shumë punë të përpunimit të miliona e të dhënave 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.

In Part 4 we looked at using tools to ensure that we're running the latest version of the code and data sources so that obtained results are always up-to-date with the latest business information and logic.

Pre-Deployment

Before deploying your grid system if there's one thing you do and one thing alone it's benchmark your current system ! No matter what you tell colleagues about how much extra work your system is going to do unless you have numbers to back this up your guarantees are nothing. Pra,

  • how many records can you process currently? Per Day? Per Hour?
  • How long does it typically take to turn around a job?
  • How much more capacity do you have?

There's also additional questions:

  • If your processing server (or one of your processing servers) goes down how will this affect your capabilities, will you be crippled?
  • What advantages do you hope/expect to get from a grid system?
  • Are your office machines capable of running the jobs?
  • Are your (or can you jobs be converted) to wrok in this style of running?

The last major point is to take your time on any major change like this. Update your processing code to work using the new methodology, benchmark again. Possibly set up your processing server to run a virtual machine, after all your processing server will just be another worker (just a very powerful one relatively). Allow the new process to settle.

Vendosjen e

My suggestion would be to pop into the office one weekend perform all the installations and setup. Do this just before a fortnight's holiday and leave so other poor chap to deal with the consequences… maybe not…

Deployment for a system like this needs to be slow. Despite it being relatively simple to set up this system will affect your entire office infrastructure (well the digital one). Firstly, roll out to a couple of machines at a time, monitor network traffic, how the worker hosts perform on a day-to-day basis. You may need to alter your job configuration in response to your findings.

Once the system has settled with a few machines (lets say 10% of all office machines, ie 5) keep monitoring network traffic and host machine performance. Next benchmark again, you should now be processing 33% more jobs than your first benchmarks. Check this is so, or that you're at least in this ballpark. If not, investigate what is going on before moving on. Repeat this cycle until you happily have all office machines running without killing individual machine performance or grinding your network to a standstill.

At all times keep benchmarking, even after all deployments are made. Check how new code updates affect speed of your system, check all workers are reporting in and processing jobs. Slowly (very slowly) increment your job configuration to get the best from your workers and network.

Stop!

Çfarë nëse ju doni të ndaluar punëtorët tuaj të kandidonte në një kohë? Ata janë të gjithë atje drejtimin, rigjeneruese, dhe duke u përpjekur të mirë të tyre në procesin e të dhënave si insekte të uritur. Përgjigja mund të duket e qartë, por me vlerë të saj duke shtuar vetëm në rastin e saj të neglizhohet. Thjesht redaktoni shkrimin tuaj të përpunimit me një dalje (0) or die () ose disa deklarata të tjera 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 të fundit të përpunimit para se të ndonjë të drejtuar!

Demonstration System

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 të teknologjive dhe metodologji. Kam lexuar shumë shkrime, mësime, dhe të përdorur mjete të ndryshme 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 kam pasur qasje në një PC të rregullt anëtarët e stafit për të parë se si ecurinë host ishte prekur.

Faqet e mia demonstratë ishte shumë i përulur me 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 server instaluar ngritur si një master në përsëritje, PHP , Â dhe SVN e lidhur me apache (për qasje nëpërmjet punëtor VM).

Unë pastaj krijuar një makinë CentOS punëtor në VirtualBox mbi një 6 vjeçar laptop të vjetër Windows XP. Unë setup planifikuar detyrat siç specifikohet pas kopjimit të VM mbi makinë dhe le të shkojnë.

Makinë virtuale u ngrit me PHP, përmbysje, dhe mySQL. I kontrolluar nga një degë me emrin "punonjësi" nga kontrolli i serverat e mi punë depo dhe e bëri të sigurt se do të mund të përditësuar duke përdorur 'update svn'. Tjetër unë setup mySQL si një skllav dhe të kontrollohen që të dhënat është përsëritur nga MySQL server kontrollin e punës deri në VM punëtor. Pas gjithë kësaj unë setup script bash dhe punë cron.

script e mia të përpunimit në thelb shkuan përgjatë vijave të këtij (gjëra shumë e thjeshtë):

  • Lexoni në fushën e emrit
  • Llogaritet numri i emrave të ngjashëm në një tavolinë nga burimi i të dhënave që mbahen në VM
  • Llogaritet numri i emrave si më sipër, por ndarjen e emrit nga hapësira (dmth, emri e mesme, mbiemri)
  • Përsëriti këtë proces 1.000 herë

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

Duke e 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 rinisjen 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ë bëj një 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 në periudha boshe do të më shumë se peshoj më shumë anëtarë të stafit që të presë një periudhë të shkurtër (të themi 1 minutë) erdhi në makinat e tyre të një mëngjes (unë shpesh presin më gjatë se kjo për një mbrojtës Windows update për të marrë vendin) me kusht që ata janë bërë të vetëdijshëm për këtë kohë (të dobishme për të rrëmbyer një kafe në mëngjes!).

Në përgjithësi unë ndihem i sigurt se unë kam demonstruar teknologjive që mund të përdoren për të krijuar një sistem të tillë. Unë kam treguar se një sistem i tillë do të punojnë në një shkallë (shumë të) e vogël dhe me disa më shumë eksperimente mund të shkallëzuar deri të shfrytëzojë burimet e makinave një zyre. Nëse unë nuk do të marrë në pikën e bërë këtë unë 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 i botës reale dhe të fillojnë për të vendosur një sistem të tillë si ky brenda një mjedis zyre dhe shikoni se çfarë ndodh. Asking a biznesit për të kryer për këtë pa një kompani gjurmë flakëron për të provuar të teknologjisë dhe të efektivitetit mund të jetë pak e vështirë. Grid / informatikë Distributed është shumë e popullarizuar është disa qarqe dhe ka disa aplikacione të mëdha (BIONC, SETI @ Home, Folding @ Home, etj). Unë nuk ka, megjithatë, të gjejnë një shkallë më të vogël dhe të sistemit të thjeshtë si kjo në kërkimet e mia që të mund të qarkullonte në një mjedis zyre.

Kam krijuar një sistem në thelb të lirë duke përdorur software më së shumti me burim të hapur dhe të mjeteve në dispozicion në pothuajse çdo zyrë. Teknologjive të ishin treguar në thelb dhe të tregojnë për të kryer dhe të punojë si duhet. Shpresojmë që unë kam treguar se me nuk punojnë 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  gjithë në të njëjtën kohë.

Pasi një sistem eshte ngritur dhe punon nuk ka pothuajse asnjë fund në shumën e përshtatjeje dhe përmirësime ju mund të bëni. Për statistikat shembull / krahasimit mund të shtohet lehtësisht tregon me vlerë të një sistemi të tillë çdo ditë. makina të reja mund të shtohen shpejt dhe me lehtësi, si dhe kur ata arrijnë me përmirësimet në hardware ekzistues forcimin e pushtetit tuaj të përpunimit.

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

Ju lutem 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 të ndeshjes.

[notice] child pid XXXX exit signal Segmentation fault (11)

By Steven Lloyd Watkin , Sunday 11th October 2009 6:09 pm

If you've recently upgraded PHP or Apache you maybe coming up against the issue of your webserver returning blank pages, and throwing error messages into your logs with no idea why, here's one possible way to fix it…

I've had this problem a couple of times recently after upgrading Apache or PHP on a virtual machine. The first time I noticed the error I simply reverted to a backup of my VM but the second time I realised I'd have to look into the issue.

The first time I noticed the issue some of my web pages were being served as blank files while the others worked absolutely fine. After some investigation I noted that apache was writing out to /var/log/http/error_log with the following message repeatidly:

[notice] child pid XXXX exit signal Segmentation fault (11)

There's not allot to go by on-line, and most of the pages about it trail off to nothing. That said, I narrowed down the issue to PHP crashing when trying to unneeded dynamic libraries.

Looking at my php.ini (/etc/php.ini) I commented out all of the dynamic libraries loaded planning on commenting them back in as required. The two I had to take out where pdo.so and mysql .so .

Once these were removed all my web pages were being served fine, just as before the PHP/Apache update.

Wireless on Acer 5002 WLMi on Linux (Fedora 11)

By Steven Lloyd Watkin , Saturday 11th July 2009 9:48 pm

As I've spent another few hours today without internet access I thought I'd better get this written down so that next time I mess my laptop up the information is easy to fix.

Basically to get wireless drivers working for an Acer 5002 WLMi you'll need to use b43-fwcutter. Instructions can be found here: Linux Wireless B43 .

Easy once the information is located.













Theme Panorama nga Themocracy

4 vizitorë online tani
2 vizitorë, 2 bots, 0 anëtarë
Vizitorë Max sot: 15 at 08:24 UTC
Këtë muaj: 26 at 2011/07/05 12:35 UTC
Këtë vit: 130 në 10:40 UTC 28-03-2011
Gjithsej: 130 në 10:40 UTC 28-03-2011