Category: Linux

Office Grid Computing gamit kapaligiran Virtual - Part 4

By Steven Lloyd Watkin , Biyernes Disyembre 4, 2009 11:59

Pagpapakilala

trabaho ko sa isang kumpanya na kung saan tumakbo kami maraming jobs batch processing milyon-milyong mga talaan ng data sa bawat araw at ako ay iisip kamakailan lamang tungkol sa lahat ng mga makina na umupo sa paligid ng bawat at bawat araw paggawa ng wala para sa ilang oras. Hindi ba ito ay mabuti kung maaari naming gamitin ang mga makina sa magbolster ang pagpoproseso ng kapangyarihan ng aming mga sistema? Sa set na ito ng mga artikulo na ako ng pagpunta sa tumingin sa mga potensyal na benepisyo ng employing isang opisina parilya gamit virtualised kapaligiran.

Sa part 3 nilikha namin ang aming mga virtual machine processing at set up ng makina ng windows para maging-time workers na walang ginagawa.

Tumatakbo ang pinakabagong code

Hindi maaaring hindi matapos ang paglikha ng iyong manggagawa ng negosyo na lohika ay magbabago, bugs ay natagpuan, mas mabilis na mas mahusay na code ay ginawa sa gayon Aalis ang iyong mga manggagawa nakaupo sa paligid ng processing ng data gamit ang lumang mabahong code . Paano pagkatapos ay gawin namin matiyak na laging na aming ginagamit sa pinakabagong at pinakadakilang na bersyon ng aming processing script?

May ilang mga tunay madali simpleng mga paraan namin ay maaaring gawin ito, ang bilis ng kamay, gayunpaman, ay upang mabawasan ang pagproseso ng kapangyarihan at trapiko sa network sa pagkamit na ito. Lets magsimula sa ang pinakasimpleng ng mga solusyon at mapabuti ito dahan-dahan sa loob ng isang pares ng mga iteration.

Ang unang paraan ay sa lamang kumonekta sa server natin trabaho kontrol (sa pamamagitan ng samba, FTP, o katulad) at pull down ang pinakabagong bersyon ng code. Hindi masyadong mahusay, ngunit ito ay gawin ang mga trabaho. Lets mapabuti sa na tila, paano ang tungkol sa paglikha ng isang rsync script at gamit na ang bawat oras sa halip? Bilang kahalili kung ano ang tungkol sa paglagay ng aming pinakabagong processing script sa pagsira ng checking out ang code sa simula at pagkatapos lamang pag-update ng aming code sa bawat tumakbo ( svn update )?

Sa katapusan namin ay maaaring end up na may isang malakas na palo script (na tinatawag sa pamamagitan ng cron bawat 10 minuto) na hitsura bilang simpleng bilang na ito:

  #! / Bin / sh
 kung palakol ps | grep-v grep | grep php > / dev / null
 pagkatapos
     echo "Job ay kasalukuyang processing, lumabas"
 iba
     echo "Job ay hindi tumatakbo, simulan ngayon"
     cd / path / sa / nagtatrabaho / kopya
     svn update
     php yourJobProcessingScript.php
 fi 

Ngayon ay maaari naming siguraduhin na sa bawat tumakbo talaga kami ay tumatakbo ang pinakabagong code. Kami ay tiyakin na ito sa pamamagitan ng pag-update ng aming mga code base sa bawat at bawat oras na magsagawa tayo ng isang tumakbo at pagbabawas ng trapiko sa network sa pamamagitan lamang ng paglilipat ng mga file pagkakaiba sa kabuuan ng aming network.

Sa aking demonstration setup, ako did eksakto tulad ng sa itaas. Pagbabagsak ay naka-install sa aking server trabaho processing at ako lang mahila ang pinakabagong code mula sa isang sangay 'manggagawa' gamit ang 'svn update'. Ako din nagdagdag ng isang bersyon tag number sa aking processing script na kung saan ay bumalik sa database bilang bahagi ng mga resulta. Ang paraan ko ay maaaring makita na ang aking code ay ina-update sa bawat oras ko na kinopya ang aking trunk sa ie worker branch na talaga ako ay tumatakbo ang mga pinakabagong script processing.

Gamit ang pinakabagong data

Kung ang iyong trabaho sa pagpoproseso gumagawa ng paggamit ng data sources pagkatapos ay sa ilang mga punto ang mga ito ay pagpunta sa maging masyadong update. Maliban kung ikaw ay tumawag sa iyong mga pinagkukunan ng data sa isang tunay madalang na batayan ang iyong pagpunta sa baha ng iyong network sa trapiko sa sandaling ang iyong mga manggagawa tumakbo ang nagdadala sa lahat ng bagay upang humpay. Para sa aking mga solusyon ako nagpasya na Gusto kong ilipat ang aking data sources sa paligid sa aking mga VMs.

Hold ikaw kabayo doon! Paano kung ang aking data sources ay malaking? Well ito tunay ay isang kaso ng kung magkano ang data na kami ay pakikipag-usap? Ito ay maaaring maging mas epektibong gastos upang i-install ng isang karagdagang mas malaking hard drive sa bawat makina kaysa sa pagbili ng isang karagdagang server processing. Ito ay isang tanong ng badyet at ay hanggang sa mga negosyo upang magpasya. Ito siguro na ang iyong data sources ay kaya malaki na ang kanyang lamang unfeasible upang panatilihin na ang halaga ng data sa iyong machine worker. Sa kaso na kung ano ang gusto mong gawin? Well kami ay maaaring tumingin sa pagtawag ng isang lokal na server ng ​​data, ngunit ito ay maaaring maging sanhi ng mga isyu sa mga network. Sa kasong ito ng isang parilya sistema tulad ng ito ay maaaring maging unrealistic na isama sa iyong opisina ng kapaligiran. Maaari din itong na maaari mong hanapin sa alternatibong tumatakbo estratehiya, halimbawa lamang pagtawag sa iyong manggagawa 8:00-6:00 bawat gabi at / o throttling data source kahilingan.

Paglipat sa nagbibigay-daan sa sabihin ang aming data sources halaga sa 100Gb ng data. Well yes na ang lubos na isang piraso ng data upang ilipat sa paligid sa network sa isang update. Kung paano namin masiguro na kami ay may mga pinakabagong kopya ng data sa kasong ito? Rsync ay isang posibilidad, ngunit ang personal na tingin ko sa pamamagitan ng pagpapatakbo ng iyong mga pinakabagong data source sa iyong server trabaho processing at ang setting na ito up bilang isang master sa pagtitiklop (na may isang magandang mahabang bin log) ay maaaring ang paraan upang pumunta:

pagtitiklop Sa pamamagitan ng pagtatakda ng bawat isa sa iyong mga manggagawa up bilang isang alipin sa trabaho update control server sa iyong data sources ay pumatak down mabuti sa iyong mga manggagawa na walang isang malaking pagtaas sa mga network na aktibidad (na maliban kung gawin sa iyo ng isang malaking update data at lahat ng iyong mga manggagawa sipain sa sa isang beses). Ito ay may pakinabang sa rsync sa na hindi ka kumuha ng isang mahabang pause bago ang bawat trabaho; bilang ng mga update ng database, ang MySQL daemon sa iyong manggagawa ay patuloy na-update data nito habang prinoseso ang patuloy.

Ito ay kung paano ko set up ang aking demonstration server. Upang i-set up ng pagtitiklop sinundan ko ang mga gabay sa MySQL site ( -set up ng pagtitiklop ) at sa loob ng 20 minuto ako had ang aking inital worker Kinokopya ang mga trabaho control server dataset. Para sa bawat karagdagang manggagawa ang mga setting ng pagtitiklop proseso at nagtrabaho sa bawat oras kapag ang VM ay kinopya.

Buod

Sa seksyon na ito ng mga artikulo na namin tumingin sa kung paano madali at walang sakit na ito ay upang panatilihin ang iyong code sa pagpoproseso ng hanggang sa petsa sa pamamagitan ng using rsync o subverion (SVN) na gawin ang trabaho at mabawasan ang trapiko sa network at sa parehong time. rin namin napag-usapan kung paano upang panatilihin ang iyong data ng source impormasyon up-to-date sa pamamagitan ng na nagpapahintulot ito upang tumulo pababa sa bawat isa sa iyong mga manggagawa. Ganito kami na lugar ang pagtitiyak na kami panatilihin up sa mga negosyo na lohika at impormasyon sa aming system opisina grid. May ay malinaw naman ay hindi mabilang na mga alternatibo sa gumaganap ang mga gawain, ngunit dito ay dalawang simpleng halimbawa upang ipakita kung paano madali ang isang solusyon ay na dumating sa pamamagitan ng.

Susunod na panahon

Sa huling bahagi ng serye na ito, aptly pinangalanan Part 5 , kami ay talakayin paganahin ang system na ito para sa. Kukunin ko lagumin ano ay natutunan at kung ano ang aking pinamamahalaang upang lumikha ng.

Office Grid Computing gamit kapaligiran Virtual - Part 3

By Steven Lloyd Watkin , Biyernes Disyembre 4, 2009 23:37

Pagpapakilala

trabaho ko sa isang kumpanya na kung saan tumakbo kami maraming jobs batch processing milyon-milyong mga talaan ng data sa bawat araw at ako ay iisip kamakailan lamang tungkol sa lahat ng mga makina na umupo sa paligid ng bawat at bawat araw paggawa ng wala para sa ilang oras. Hindi ba ito ay mabuti kung maaari naming gamitin ang mga makina sa magbolster ang pagpoproseso ng kapangyarihan ng aming mga sistema? Sa set na ito ng mga artikulo na ako ng pagpunta sa tumingin sa mga potensyal na benepisyo ng employing isang opisina parilya gamit virtualised kapaligiran.

Sa part 2 namin tumingin sa ang mga trabaho ng isang server ay tatakbo, at kung paano ang mga trabaho ay dapat na isinaayos upang makamit ang pinakamalaking halaga ng processing habang tinitiyak na ang bawat trabaho ay naproseso nang walang mabibigo.

Pagse-set up ang iyong mga manggagawa - o Limp server

Susunod na hakbang sa proseso sa set up iyong virtual manggagawa. Para sa mga ito ako ng pagpunta sa gamitin ang isang installation ng centOS gamit VirtualBox. Ako pagpunta upang i-install ng MySQL at PHP sa server, na kilala rin bilang isang Limp (Li nux, m ySQL, P HP) Server (na aking ginawa na ang pangalan up).

  • I-install ang VirtualBox sa iyong mga bintana ng makina (sundan ang link)
  • Download at install centOS (kasalukuyang bersyon 5.3) sa loob ng isang nilikha virtual machine

Mayroong point walang ako pagpunta sa ito mayroong marahil 1,000 's ng mga dakilang Tutorials out doon (ok, ito ang isa: Paglikha at Managing centOS virtual machine sa ilalim ng virtualbox ). Ang mahalagang punto upang tandaan akala ko ay na ako tinatawag ang aking virtual machine GridMachine.

Gaya malayo gaya ang aking mga pagpipilian ng virtualisation client at operating system na pumunta doon ay walang malaking uudyok na dahilan para sa bawat pinili. VirtualBox ay isang bagay na gamit ko sa aking bahay machine at ay suportado ng tatlong pangunahing mga operating system. Pinili ko centOS bilang nito sa isang magandang kuwadra OS at gagamitin ko ito sa aking sariling web server. Ako ay isang malaking naniniwala sa mga karapatan tools para sa trabaho (bagaman ako ng nag-aaplay 'paggamit ng pinakamabilis at pinakamadaling para sa iyo' mentality dito), kaya kung operating system X tumatakbo ang iyong code ng mas mabilis at mas mahusay ang gamitin na sa halip na:)

Mahalaga siguraduhin na ang iyong VM gumagamit ng DHCP, kung hindi, para sa bawat bagong virtual machine ay kailangan na naka-configure na magkahiwalay na kung saan ay isang bagay na hindi namin want.By gamit DHCP hindi namin kailangan upang isaayos ang mga setting ng network para sa mga indibidwal na makina worker, DHCP ay kamay out IPs para sa iyo. Kaya't maaari mong kopyahin ang iyong mga virtual machine tungkol sa opisina nang hindi nababahala tungkol sa pagtatakda ng bawat isa hanggang (ito ay nagpapabuti kakayahang sumukat at binabawasan manggagawa administrasyon).

Ang proseso na dapat mong layunin upang makamit ay upang makakuha ng isang bagong pisikal na makina, install VirtualBox, at pagkatapos ay medyo marami lumawak ang virtual image na walang gaanong sino pa ang paririto. Ito ay maaaring maging pantas sa setup ang lahat ng iyong mga manggagawa sa ibang subnet sa gayon ay maaari kang hindi bababa sa makita kung ilang mga machine ay tumatakbo. Kakailanganin mo ding i-set up ang iyong mga makina sa isang mahabang lease o walang limitasyong lease DHCP.

Kung paano patakbuhin ang Jobs sa mga manggagawa

Ito ay isang nakawiwiling lugar at may mga ilang mga wastong pamamaraan para sa proseso ng mga trabaho sa mga manggagawa. Narito ang kukunin ko na lang talakayin ang dalawang pinaka halata:

  • Walang katapusan tumatakbo script: Ang isang script, maging ito ng isang shell script, o ng isang PHP script ay naisakatuparan nang isang beses sa manggagawa at tumatakbo bilang bahagi ng isang walang hanggan loop. Ko na bawas ang paraan na ito bilang isa crash ng script at potensyal na ang iyong mga manggagawa ay titigil na tumakbo nang walang ilang mga uri ng interbensyon.
  • Cron based script pagpapatupad: Bawat X minuto ang cron daemon kicks off ng isang tawag sa iyong mga script na makakuha ng mga bagay pagpunta. Walang ilang suri ito ay maaaring humantong sa maraming maraming mga kopya ng iyong mga manggagawa script na tumatakbo.

Aking desisyon ay upang pumunta sa cron na kicks off sa isang shell script bawat 10 minutes. My shell script gumaganap ang mga sumusunod na gawain:

  1. Kumuha ng isang proseso sa listahan at grep ito para sa 'php'. Kung hindi natagpuan pagkatapos ay magpatuloy.
  2. Tawagan ang iyong trabaho code, sa aking mga kaso na ito ay isang bagay PHP based
  3. Worker script nakatapos nito tumakbo
  4. Handa na upang pumunta muli sa susunod na angkop na tawag

My bash script hitsura ng isang bagay tulad ng mga sumusunod:

  #! / Bin / sh
 kung palakol ps | grep-v grep | grep php> / dev / null
 pagkatapos
     echo "Job ay kasalukuyang processing, lumabas"
 iba
     echo "Job ay hindi tumatakbo, simulan ngayon"
     php yourJobProcessingScript.php
 fi 

Tandaan: ang mga echo's ay halos ganap na walang kahulugan, ngunit maaaring makatulong ang mga susunod na tao na dumating kasama na subukan at i-edit ang mga ito.

Concludes na ang set up ng makina worker virtual, mabilis, simple, at madaling kopyahin sa bawat bagong piraso ng hardware na natanggap. Ang 'kabihasnan' ng sistema ng takbuhan tunay ay hindi sa mga visualized OS, ang lahat na gawin sa ang code na nilikha sa trabaho na proseso, ang mga trabaho configuration, at sa siguraduhin na ang trabaho ay tumatakbo nang naaangkop (ibig sabihin kapag ang host ay bakante ).

Pagse-set up ng Windows sa Initialise Manggagawa

Ang unang gawain ay upang gumana ang mga command na kinakailangan upang tumakbo ang virtual machine mula sa bintana command line. If you've installed virtualBox in the default location and you've named your worker GridMachine then the command required to load up your worker is:

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

Gayunman na tumakbo ang script sa isang 'walang ulo' ng estado na kailangan namin upang gamitin:

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

Ito ay magsisimula ang virtual machine na walang ang GUI at payagan ito upang i-save ang estado maganda. Ang ikalawang argument ay lumiliko off RDP kaya ito ay hindi conflict sa bintana RDP, o magbigay sa iyo ng mensahe tungkol sa pakikinig sa port 3389. Ang mga virtual machine pangalan ay case sensitive!

Susunod na, kami ay kailangang magtakda ng mga bintana hanggang sa kick off ang aming worker VM minsan ang makina ay bakante. Upang gawin ito (sa Windows XP) kailangan mong pumunta Start -> All Programs -> Accessories -> System Tools -> Scheduled Tasks bilang sa ibaba:

naka-iskedyul na mga gawain

Susunod na mag-click sa 'Magdagdag ng mga naka-iskedyul ang Gawain' sinundan sa pamamagitan ng browse sa magdagdag ng isang pasadyang programa. Mag-navigate sa iyong VBoxManage script at i-click ok. Iskedyul ang iyong mga gawain para sa alinman sa mga opsyon (kami ay baguhin ito sa isang minuto) at magpatuloy. Pagkatapos ng laktaw sa susunod na mga bintana ng screen ay magtatanong sa iyo na gusto mong patakbuhin ang gawain na ito, gusto ko magmungkahi alinman sa 'Administrator' o paglikha ng isang bagong privileged user. Tandaan na hindi namin nais na makagambala sa standard account kawani sa makinang sa anumang point. I-click ang susunod at check ipakita mga advanced na mga opsyon para sa gawain na ito.

Upang sa dulo ng tumakbo textbox idagdag 'startvm GridMachine' string aming at masiguro na tatakbo lamang kapag naka-log in ay kaliwa unticked. Bisitahin ang iskedyul ng susunod na gawain at baguhin ang iskedyul na drop down na ang pagpipiliang 'kapag idle', piliin ang halaga ng oras na gusto mo ng makina na maging idle bago lumipat sa susunod na tab.

Sa wakas untick ang opsyon na nagsasabing itigil ang mga gawain kung ito ay tumatakbo X halaga ng oras, ngunit gawin tik ng opsyon upang ihinto ang gawain kung ang makina ay hindi na walang ginagawa.

iskedyul

Iyan na ang pagkatapos ay para sa windows setup host!

Buod

Sa bahaging ito namin na-set up ng isang virtual machine upang kumilos bilang isang manggagawa, pati na rin ang paraan kung saan ang tawag namin at execute ang aming scripts trabaho processing (para sa aking sarili ng isang PHP script). Mula dito namin tumingin sa kung paano mag-set up ang aming mga kopya ng mga bintana upang simulan up ang virtual machine sa walang ulo mode kapag ang computer ay nagiging idle, at i-save ang kanyang estado kapag ang user ay Resumes paggamit ng makina. Sana sa puntong ito ikaw ay nakakakita ng kung paano simple ito ay upang set up ng tulad ng isang sistema at ay nangangati upang makakuha ng ilang mga eksperimento ng pagpunta sa iyong sarili!

Susunod na panahon

Sa Part 4 kami ay naghahanap sa paggamit ng mga kasangkapan upang matiyak na ikaw ay nagpapatakbo ng mga pinakabagong bersyon ng mga data at mga mapagkukunan code kaya na nakuha sa mga resulta ay laging up-to-date sa mga pinakahuling impormasyon ng negosyo at lohika.

Office Grid Computing gamit kapaligiran Virtual - Part 1

By Steven Lloyd Watkin , Biyernes Disyembre 4, 2009 11:23

Pagpapakilala

trabaho ko sa isang kumpanya na kung saan tumakbo kami maraming jobs batch processing milyon-milyong mga talaan ng data sa bawat araw at ako ay iisip kamakailan lamang tungkol sa lahat ng mga makina na umupo sa paligid ng bawat at bawat araw paggawa ng wala para sa ilang oras. Hindi ba ito ay mabuti kung maaari naming gamitin ang mga makina sa magbolster ang pagpoproseso ng kapangyarihan ng aming mga sistema? Sa set na ito ng mga artikulo na ako ng pagpunta sa tumingin sa mga potensyal na benepisyo ng employing isang opisina parilya gamit virtualised kapaligiran.

Bilang isang PHP developer ako pagpunta sa gamitin ang mga kasangkapan na ginagamit ko sa bawat araw namely, Linux, MySQL , PHP, VirtualBox at pagbabagsak (SVN). Gayunman Umaasa ako gabay na ito ay iakma sa iba pang mga wika at mga teknolohiya lamang pati na rin.

Ang solusyon magbigay ako ay tunay maluwag batay sa uri ng processing gusto namin na kailangan upang makamit subalit ito ay maaaring hindi tunay na sa pamamagitan ng buong artikulo bilang kukunin ko na baguhin ang mga bagay para sa simple, o upang makabuo ng mas interesante sitwasyon ng paggamit.

Ang mga ito virtualised kapaligiran ay tatakbo sa mga bintana machine na ito dahil ito ay kung ano ang karamihan ng mga opisina ng tumakbo. Ang processing na ang mga opisina machine ay hindi dapat makagambala sa staff gamit ang mga makina, dapat ay nangangailangan ng walang maintenance sa mga makina, at maging madaling deployable sa bagong machine na maging sila magagamit. Gayundin, ang mga bagong virtual machine ay hindi dapat nangangailangan ng anumang karagdagang mga configuration bilang na ito ng malaki binabawasan ang kakayahang sumukat at kadalian sa kung saan ang parilya sistema ay maaaring maging extended.

Bakit lumawak isang Office Grid Computing?

Una ikaw ay maaaring maging iisip, kung bakit hindi lamang gamitin ang isang ulap computing mapagkukunan tulad ng EC2 platform Amazon's ? Well ang mga dahilan ay maaaring maraming, halimbawa:

  • Ikaw ay hindi tiyak na ipagkatiwala data sa isang kapaligiran sa ulap computing
  • Ikaw ay hindi maaaring ilagay sa mga tiyak na data sa isang kapaligiran ulap computing para sa legal na dahilan (halimbawa data umaalis sa bansa), potensyal na para sa legal na dahilan, halimbawa talaan ng NHS.
  • Nais mong panatilihin ang iyong processing unit malapit at magkaroon ng ganap na kontrol sa mga hardware masyadong
  • Ikaw ay walang mga pondo ng mga proyekto upang patakbuhin ang mga pagkakataon na ulap
  • Ang iyong opisina ay hindi magkaroon ng isang koneksyon sa internet at kaya nito hindi posible na gamitin ang ulap na mapagkukunan
  • huwag mong tulad ng ulan, ulap iminumungkahi ng ulan, kaya't panatilihing ka na rin sa malayo

ako ba ang listahan ay maaaring magpatuloy, ngunit tingin ko tama na iyan para sa ngayon.

Mga Kalamangan ng isang Grid Computing Office

Well, hinahayaan gawin ang ilang mga matematika (at sa totoo physics style nagbibigay-daan sa gumawa ng ilang pahapyaw pagpapalagay). Imagine ikaw ay may malaking malakas pagpoproseso ng server na tumatakbo 100 jobs sa bawat araw. Sa iyong opisina ikaw ay may 50 machine na kung saan ay idle 16 oras sa isang araw, bawat isa sa mga machine ay 10% malakas na gaya ng iyong malakas processing maputol. (Ang lahat ng resulta dito ay bilugan upang maliitin pagganap dagdagan).

Kaya, 1 machine * 10% ng kapangyarihan * 2 / 3 oras = 0.067 ie 1 desktop processing sa idle time maaaring proseso 6 full trabaho bawat araw.

Kung ikaw ngayon ay scale ito hanggang ito ay tumatagal ng 15 idle desktops sa proseso ng maraming trabaho sa bawat araw bilang iyong pangunahing pagpoproseso ng server ay.

Kaya sa aming magpanggap opisina ng 50 machines namin ay maaaring dagdagan ang aming pagproseso ng kapangyarihan mula sa server 1 hanggang 4 na full server processing, o maaari naming maging pagpoproseso ng 400 mga trabaho bawat araw sa halip ng mga 100.

Paunawa, para sa mga walang pamumuhunan sa mga bagong hardware sa iyong kumpanya ay may lamang nadagdagan ang kanyang batch processing kakayahan 4 na beses! Potensyal na ang iyong pagpunta sa dagdagan ang iyong paggamit ng kapangyarihan ngunit mula sa karamihan sa mga kapaligiran opisina ko na na sa machine ay karaniwang kaliwa sa magdamag pa rin, kaya maaari mong makita na ito bilang isang berdeng hakbangin.

Iba pang mga pakinabang rin ibig sabihin na ang pamumuhunan sa mga bagong (o na-update) pagpoproseso ng server ay maaaring maantala kung ang iyong mga opisina machine ay sapat na at bilang na pagbutihin ang kapangyarihan ng iyong machine opisina iyong opisina parilya ay nagiging mas malakas na awtomatikong.

Teknolohiya

Ano ang kailangan mo? (O mas tama kung ano ang gamit ko):

  • Idle opisina machine (sa aking kaso ng isang laptop ekstrang lumang bintana XP)
  • VirtualBox (o iba virtualisation software client)
  • Ang isang virtual machine na may PHP, MySQL running pagpapatakbo ng isang cut down OS, ako ng pagtawag sa aking mga server ng ​​Limp:)
  • Jobs na tumakbo
  • Job server (maaaring isa pang virtual machine lugar)

Tipikal Jobs

Ang mga uri ng mga trabaho na ang sistema na ito ay dinisenyo upang tumakbo ay ang sumusunod:

  • Sistema na natatanggap ng isang listahan ng mga data na kung saan na kailangan namin upang tumugma at bumalik mga resulta
  • Pagtutugma nagsasangkot checking / naghahanap ilang (medyo static) data sources
  • Resulta mula sa mga pinagkukunan ng data ay maaaring mangailangan ng karagdagang pagpapatunay, merging, check ng mga karagdagang mga pinagkukunan ng data bilang tugon sa mga resulta
  • Data ay bumalik sa pagtutugma ng mga talaan, ganap na naiwasto at naproseso
  • Ang bawat record sa loob ng isang trabaho ay independiyenteng ng iba

Kaya karaniwang namin ay naghahanap sa pagpapatakbo ng trabaho na nangangailangan ng isang timpla ng database lookups at ang ilang mga numero ng crunching, isang medyo tipikal na senaryo sa isang kapaligiran ng negosyo.

Takbuhan ng mga solusyon ay hindi lamang Makakabuti para sa processing jobs ng mga ganitong uri. Karaniwang, ang anumang mga proseso na maaaring nahati sa mga independiyenteng mga yunit ay maaaring magpatakbo ng kahanay. Tingnan ang wikipedia para sa mga halimbawa at karagdagang impormasyon: Grid Computing , ngunit isang pares ng mga tanyag na halimbawa ay Seti @ Home at BIONC . May mga frameworks para sa mga tumatakbo grids computing, at ang mga ito ay nagkakahalaga ng mabuti naghahanap sa.

Ano kami ay makamit?

Sa pagtatapos ng mga articles Umaasa ako na ipakita na paganahin isang opisina grid hindi kailangan maging hugely mahal o ubos ng oras. Ako pagpunta upang talakayin:

  • Pagse-set up ang trabaho system control, trabaho configuration
  • Paglikha ng isang naaangkop na processing virtual machine
  • Paano sa setup ang sistema sa makina ng mga bintana
  • Pagtitiyak na ginagamit mo ang pinakabagong code at data
  • Paglawak at benchmarking
  • Hinahanap mauna

Kukunin ko ang gusali (ok ako na binuo, at pagkatapos wrote ito) ang isang halimbawa ng application sa pagsubok ang konsepto sa isang lokal na makina gamit ang mga bintana XP at virtual machine aking 'GridMachine'. Ang aking trabaho control server ay aking pangunahing makina na tumatakbo Fedora 11 .

Ito ay sa walang paraan sinadya upang ipakita ang isang ganap na nagtatrabaho mabulas sistema, ang kanyang sinadya pa ng isang pagtatanghal at pagtalakay na nagpapakita na ang mga bagay na ito ay maaaring makamit sa isang makatwirang maikling space ng oras at sa maliit na gastos. Mangyaring mag-atubili na magpadala ako ang anumang mga puna, pagwawasto, o mga pagpapabuti at makikita ko ang aking pinakamahusay na panatilihin ang artikulong ito update sa match.

Susunod na panahon

Sa part 2 ay ako magsimula sa pamamagitan ng pagtingin sa mga control system trabaho, at tumingin sa kung paano ang mga trabaho ay dapat na isinaayos upang makamit ang pinakamalaking halaga ng processing habang tinitiyak na ang bawat trabaho ay naproseso nang walang mabibigo.

Office Grid Computing gamit kapaligiran Virtual - Part 2

By Steven Lloyd Watkin , Biyernes Disyembre 4, 2009 11:23

Pagpapakilala

trabaho ko sa isang kumpanya na kung saan tumakbo kami maraming jobs batch processing milyon-milyong mga talaan ng data sa bawat araw at ako ay iisip kamakailan lamang tungkol sa lahat ng mga makina na umupo sa paligid ng bawat at bawat araw paggawa ng wala para sa ilang oras. Hindi ba ito ay mabuti kung maaari naming gamitin ang mga makina sa magbolster ang pagpoproseso ng kapangyarihan ng aming mga sistema? Sa set na ito ng mga artikulo na ako ng pagpunta sa tumingin sa mga potensyal na benepisyo ng employing isang opisina parilya gamit virtualised kapaligiran.

Sa Part 1 ako nagbigay ng isang pangkalahatang ideya ng mga sistema at teknolohiya ay ako ay gumagamit pati na rin ang usapan na ang ilan sa mga potensyal na kadahilanan kung bakit nais mo nais na lumikha ng isang opisina grid.

Job Control

Kung ikaw ay pagpunta upang patakbuhin ang mga trabaho pagkatapos ikaw ay pagpunta sa kailangan ang ilang mga paraan upang pamahalaan ang mga ito. Ang iyong trabaho control system (sa iyong trabaho server) pangangailangan upang maging tunay mabuti Akala out bago kahit na pagtatangka upang patakbuhin ang isang opisina grid. Kaya una, ano ang mga gawain para sa isang sistema ng trabaho control:

  • Hand out jobs sa kahilingan mula sa mga manggagawa
  • Sabihin sa mga manggagawa kung ano ang uri ng mga trabaho na tumakbo
  • Subaybayan ang mga trabaho
  • Tiyakin na ang mga trabaho ay tatakbo lamang sa sandaling
  • Magbigay ng mga data na trabaho sa mga manggagawa, o hindi bababa sa sabihin sa kanila kung saan sa kumuha ito

Ang sistema rin ay kinakailangan na extensible, ang isang solusyon na gumagana para sa ngayon sa isang solong kaso ay maaaring extended na tumakbo ng ilang mga uri ng mga trabaho bilang negosyo ang nakikita ang halaga sa isang solusyon grid. Halimbawa, mga trabaho ay maaaring makakuha ng prayoridad, higit sa isang uri ng trabaho ay maaaring umiiral (ibig sabihin ng ilang mga code base), sa huli ay maaari kang kahit na tumakbo ng ilang iba't-ibang machine na manggagawa ay optimized para sa bawat uri ng trabaho (kahit na ay ilipat ang layo mula sa 'generic worker 'ideya). Laging subukan na isipin ang tungkol sa hinaharap kapag pagbuo ng mga sistema, ang isang maikling kataga ng paningin ay maaaring humantong sa mas matagal na kataga ng kabiguan at nadagdagan ang pag-unlad ng oras.

Job Server

Kami ay pagpunta sa kailangan lugar upang makontrol ang aming mga trabaho mula sa, ito ay dapat na lamang ang sistema sa iyong parilya na may isang nakapirming locator mapagkukunan, maging na ang isang IP address, host name, URL (gamit ang panloob na DNS), atbp Ito ay dahil ang mga manggagawa na kailangan upang malaman kung saan sa hitsura para sa mga trabaho, mga manggagawa na kailangan upang mahanap ang mga trabaho system control (hindi ang trabaho system control mahanap ang mga manggagawa).

Ang trabaho server hindi mismo ay hindi tunay magkaroon ng isang komplikadong gawain (sa isang pangunahing sistema sa papaano mang paraan), ang mga pangangailangan sa tindahan ng isang listahan ng mga trabaho, kamay out jobs, tumanggap ng mga resulta, at sa dakong huli tindahan ito para sa mamaya pagsasauli. Paano ang mga bahagi (tulad ng 'kamay out jobs') ay tinukoy ay maaaring maging lubhang basic. Mamaya sa maaari naming palawakin ang sistema upang isama ang isang pangangasiwa interface upang idagdag, i-edit, tanggalin, isuspinde trabaho ngunit ito ay lampas na ito ehersisyo.

May dahilan walang anomang pagkatapos na ang iyong trabaho ng server ay hindi maaaring maging isang virtual machine na tumatakbo sa loob ng iyong pangunahing processing server na ibinigay ito ay hindi alisan ng tubig masyadong maraming mga resources mula sa mga ito. Ang trabaho server gayunpaman ay kailangan mataas na availability, kung ito goes down sa isang Biyernes gabi ikaw ay pagpunta sa mawalan ng isang buong weekend ng processing, potensyal na gastos sa iyo ng ilang linggo nagkakahalaga ng processing time (kapag inihambing sa iyong pangunahing pagpoproseso ng server lamang) . Baka gusto mong isaalang-alang ang paglagay ng iyong trabaho sa server ang isang load balanseng kapaligiran para sa mataas na availability.

Basic Setup

Ang basic na setup para sa aming mga server ng ​​trabaho ay binubuo ng kung ano ako ng pagtawag ng isa sa aking mga server Limp (iyon ay Li nux, m ySql, P HP). Ang code na tumatakbo sa Thea manggagawa ay tunay na trabaho sa labas kung ano ang trabaho ito maaari tumakbo sa pamamagitan ng pakikipag-ugnay sa trabaho control database system. Mamaya sa maaari naming lumikha ng isang web service at ang tunay na kamay ang trabaho sa halip na sa pagkakaroon ng mga manggagawa gawin ang mga hirap sa trabaho sa kanilang sarili, ngunit sa ngayon kami ay patuloy na magamit ang mga prinsipyo KISS (Panatilihin itong Simple, Stupid!).

Kaya, nagbibigay-daan sa lumikha ng tatlong MySQL talahanayan sa pakikitungo sa mga trabaho. Ang mga ito ay `jobs`, `jobRecords`, at `` jobResults.

jobs table Narito ako gamit SQL Buddy ng isang magandang maliit na alternatibo sa phpMyAdmin dahil lang nito mas madali na i-install sa centOS (para sa iba na makita: 10 Great alternatibo sa phpMyAdmin )

table na ito ay binubuo ng 5 mga simpleng mga patlang,

  • id: natatanging kilalanin ang mga trabaho
  • pangalan: Puwede maging isang client sanggunian, o anumang bilang ng iba pang mga tagapagpakilala
  • Status: kailangan mong malaman kung ang trabaho ay sa, halimbawa,
    • 0: Hindi makapagsimula
    • 1: Napili up
    • 2: Nakumpleto
  • started_by: Sino ang nagsimula paggawa ng mga trabaho? Ito ay hindi lubos na kinakailangan ngunit ay isang nice na magkaroon. gusto ko iminumungkahi tracking manggagawa sa pamamagitan ng kanilang mga IP address sa iyong network
  • started_at: Kailan worker ang simula ng trabaho? Sa pamamagitan ng pagsubaybay sa mga trabaho na hindi natapos sa loob ng X halaga ng oras na alam namin na kailangan namin upang kunin ang trabaho na naman at simulan ang proseso sa pamamagitan ng isa pang manggagawa. Manggagawa ay maaaring ihinto ang processing / offline pumunta para sa anumang bilang ng mga dahilan, kapangyarihan kabiguan, crash, network pagkawala, atbp

Ito ay madaling kung paano talahanayan na ito ay maaaring pinalawak na may ilang karagdagang mga patlang upang pahintulutan para sa mga istatistika sa pagsubaybay, ang isang tapusin ng haligi na oras upang makita kung gaano katagal trabaho ang kinuha, ang isang counter upang makita kung gaano karaming mga manggagawa pumili ng up ang trabaho (malinaw naman ito ng mga pangangailangan upang magkaroon ng hilig sa 1), trabaho priority, ang listahan ay maaaring pumunta sa at sa. Sa mga mas kumplikadong mga pangyayari trabaho ay ito ay posible na tukuyin kung magkano ang memory ang manggagawa ay kailangan ng access sa (at sa gayon lamang gamitin na mga manggagawa), o kahit anong uri ng manggagawa ay kinakailangan.

Lets magdagdag ng ilang mga trabaho halimbawa:

Halimbawa jobs

Ang susunod na talahanayan muli ay ganap simple sa maintindihan, ang mga ito ay ang aming trabaho mga talaan. Sila ay na-link sa main table ng trabaho sa pamamagitan ng isang hanay `` jobs_id. Ang mga gumawa ng up ng talahanayan na ito very much ay depende sa mga data na kailangan mo sa supply sa iyong mga manggagawa, pinapayagan gumawa ng isang tunay simpleng halimbawa kung saan kami ay may apat na mga haligi:

  • id: ID ng mga record
  • pangalan: Person's name
  • address: Person's address
  • jobs_id: Ang trabaho ID record na ito ay naka-link sa

Ang ikatlo at huling mesa ay binubuo ng isang talahanayan na resulta, ito ay may marami ang parehong gumawa ng up bilang aming mga rekord table, at kasama ang karagdagan ng ilang mga hanay ay maaaring maging bahagi ng talahanayan ng mga talaan:

  • job_record_id: Link ang resulta sa talahanayan sa trabaho
  • resulta: Ang mga resulta ng data

... At iyon ang lahat na kailangan mo para sa trabaho control! (Kahit sa isang tunay pangunahing antas) Sa aking kaso ako ng matulis sa isa pang table kung saan ang aking data sa proseso ay matatagpuan, ngunit ito ay maaaring lamang bilang madaling na-file ng isang, mga parameter na tumakbo kunwa code, ikaw pangalan ito.

Ang pagpili ng isang trabaho

Katulad ng nakasaad sa dati, ang mga manggagawa ay gawin ang aming trabaho sa pamamahala para sa amin para sa ngayon, kaya lahat ng kailangan naming talagang gawin ay ang makahanap ng trabaho na nangangailangan ng processing at makakuha ng impormasyon. Kung paano namin gawin ito? Well pick sa aming pamantayan sa pagpili ng trabaho at hitsura para sa mga trabaho, sa SQL ko ang mga sumusunod:

  1. Gumawa ng anumang trabaho na hindi na minarkahan bilang kumpleto ngunit mula sa aming mga manggagawa at i-reset ito (kapalit __ME__ sa isang identifier, pinakamadaling ay IP address):
      UPDATE `` jobs SET `status` = 0 SAAN `status` = 1 AT `started_by` = __ME__; 
  2. Paggamit ng aming trabaho pamantayan pagpili, piliin ang isang trabaho at sabihin ang control system na worker na ito ay ang pakikitungo sa mga ito:
      UPDATE `` jobs SET `status` = 1, `started_by` = __ME__, `started_at` = NGAYON () SAAN `status` = 0 OR
     (`Status` = 1 AT `` started_at> DATE_SUB (NGAYON (), na pagitan ng X HOUR)) MAAYOS NG `id` ASC; 

    Sa pamamagitan ng daklot jobs na hindi na bumalik sa mga resulta ng X na halaga ng oras namin matiyak na ang lahat ng mga trabaho ay tatakbo sa kaganapan ng isang worker crashing o pagpunta AWOL.

  3. Susunod na sunggaban ang mga detalye ng mga trabaho na sinusundan ng mga talaan sa kanilang sarili:
      PUMILI * MULA `jobs` `WHERE started_by` = __ME__ LIMIT 1;
     PUMILI * MULA `job_records` SAAN `id` = __JOBID__; 

Sa pagkumpleto ng mga trabaho namin ipasok ang aming mga tala resulta at markahan ang mga trabaho bilang kumpleto. Tandaan na trabaho ay maaaring suspindihin / resume sa anumang oras payagan para sa ilang bulas sa iyong mga script. Ito ay maaaring maging na gawain ang suspends kalahati paraan sa pamamagitan ng pag-update ng trabaho ang sistema ng control, kaya tingin sa mga bilang ng mga record sa isang trabaho at ang bilang ng mga resulta-save sa sistema ng trabaho control ay isang matalino ilipat.

Sa karagdagan, habang ito ay nagpapakita kung paano jobs maaaring mapili at pinamamahalaang mula sa isang SQL query-frame ay dapat na tunay na maging abstracting iyong trabaho control kaya na kung magpasya ka na lumipat sa paggamit ng isang web service, isang file based system, XML , o anumang iba pang bilang ng mga sistema ay hindi ito makakaapekto ang code sa itaas ito.

Job Configuration

Ang susunod na aspeto upang isaalang-alang ang trabaho sukat at configuration. Sa pamamagitan ng paglalaro sa trabaho configuration maaari naming hampasin ng isang mahusay na balanse sa pagitan ng bilis, pagtitiklop proseso, at pagiging maaasahan. Sumakay ng isang pares of pangyayari:

  1. Jobs kumuha ng 1 araw sa bawat tumakbo: Ito ay nangangahulugan na ang iyong mga manggagawa kailangan ng 15 araw sa proseso ng bawat trabaho (tandaan ang 10% ng kapangyarihan para sa 2/3rds ng oras). Ito ay malinaw na hindi isang pantas configuration, ang iyong trabaho sukat ay masyadong malaki! Ito ay tumagal ng hindi bababa sa double ang oras upang makakuha ng trabaho proseso ang dapat ang unang worker pumunta AWOL (oras sa pick up na hindi na ito ay nabalik isang resulta plus reprocessing oras). Sa isang ideal na gusto mong magkaroon ng hindi bababa sa isang buong trabaho madaling nalilimas sa pamamagitan ng sa dulo ng bawat matagal idle na panahon, na ang paraan na panatilihin mo ang trabaho gris higit at sa pinakamalala kaso ang isang trabaho ay tumagal ng dalawang araw na proseso ay dapat ang unang pumunta nawawala.
  2. Jobs kumuha 1 minuto na tumakbo: Ito ay nangangahulugan na ang iyong mga manggagawa kumuha ng mga 15 minuto upang patakbuhin ang bawat trabaho. Habang ito ay maaaring sa una mukhang ideal, kayo makakuha ng karagdagang trabaho sa panahon ng pagpoproseso ng lunch time, coffee break, pulong, etc senaryo na ito inilalagay pilay sa ibang mga lugar ng iyong system at introduces kanyang sariling mga problema. Halimbawa, una iyong setup / processing time ratio ay pagpunta sa pumunta karapatan down, kaya nawawala ang sistema na kahusayan. Ang iyong network ay pagpunta sa maging patuloy streaming trabaho impormasyon sa mga iba't ibang mga manggagawa nakakabigo kawani na dong kanilang araw-araw na gawain. din ka pagpunta sa ilagay sa karagdagang pinagmanahan sa iyong server sa pagpoproseso trabaho tulad ng ito ay upang magbigay ng maraming at lots ng maliit na piraso ng trabaho sa isang regular na batayan. Sa wakas, sa sitwasyong ito kung ang iyong trabaho server goes down ikaw ay pagpunta upang lumikha ng isang malaking back log ng uncompleted trabaho datapwa't mas malaking trabaho ay maaaring patuloy sa pagpoproseso blissfully nakalimot na ang mga trabaho ng server ay nakakaranas ng mga problema.

Sa katotohanan ay hindi magkakaroon ng isa ideal pagsasaayos para sa iyong parilya setup, marami ay depende sa magagamit na mapagkukunan, mga uri ng trabaho, trabaho turnaround time kinakailangan, ang network na kakayahan, at iba pa. Subalit ang ilang mga alituntunin ay magiging:

  • jobs Size kaya na manggagawa sa bawat ay maaaring makuha sa pamamagitan ng hindi bababa sa 3-4 mga trabaho sa isang panahon ng 15 na oras (ang pinakamahabang malamang idle na oras ng panahon)
  • Play na may sukat trabaho kaya na setup ng oras ay nagiging medyo hindi gaanong mahalaga kung ihahambing sa ang processing time (nadadala sa isip ang mga punto sa itaas).
  • Kung ang isang trabaho ay hindi kumpleto sa double ang halaga ng oras (siguro mas mababa) asahan mo ito upang makumpleto ito ipalagay na nito gone AWOL at simulan ang proseso na ito sa ibang manggagawa. Ito ay nangangahulugan na ikaw ay maaaring may sa maghintay hanggang sa tatlong beses ng normal na haba ng isang trabaho para sa mga ito upang makumpleto (marahil na kung ang mga kasunod na trabaho nabigo). Baka gusto mong bawasan ang oras na ito, ngunit maging maingat na hindi upang mabawasan ang mga ito ng masyadong maraming bilang maaari mong simulan pagkokopya processing gawain sa isang regular na batayan.
  • Trabaho ay dapat na independiyenteng ng labas mga kinakailangan gaya maaari. Ang trabaho ng server, halimbawa, ay dapat lamang makipag-ugnayan sa simula at dulo ng bawat trabaho.
  • Huwag magbabad iyong network, ito ay may dalawang mga negatibong epekto, ang iyong araw kawani ay mahanap ang paggamit ng network ang nakakabigo at mga problema ay maaaring naranasan sa mga koneksyon sa tiyempo ang isang problema na lamang ay makakuha ng mas masahol bilang mo ang iyong scale parilya.
  • jobs Tiyakin maaaring tumakbo sa iyong manggagawa. Kung ang mga trabaho maging masyadong memory intensive o puwang sa disk masinsinang trabaho ay magsisimula at hininto ang tanging bagay na mapapansin mo ay isang drop sa bilang ng mga trabaho proseso na walang tunay na dahilan kung bakit.

Nagsusumite ng Resulta ng isang Job

Kapag pagsusumite ng mga resulta ng isang trabaho ito ay mahalaga na suriin na ang resulta ay hindi nai isinumite ng ibang manggagawa, lalo na kung ang kasalukuyang manggagawa ay parang tulog para sa ilang oras.

Kapag ang mga resulta ay naisumite na matiyak na ang bilang ng mga resulta na tumutugma ang bilang ng mga talaan sa loob ng trabaho.

Katulad ng nakasaad sa dati, at hindi maaaring maging higit emphasized, bumuo ng kasalanan pagpapaubaya sa trabaho at retrieval resulta submission. Ang mga manggagawa ay maaaring (at pinaka-malamang ay) pumunta sa isuspinde mode at ang pinaka panggulo ng beses na at ito ay kinakailangan na catered para sa. Din sa sandaling muli abstracting malayo ang iyong mga resulta ng submission ay makakatulong magsilbi para sa hinaharap na mga pagbabago sa iyong system na kontrol trabaho marami mas madali sa pakikitungo sa.

Buod

Sa ganitong section kami ay tumingin sa kung ano ang isang trabaho server control pangangailangan na gawin at kung paano makakuha ng isang tunay pangunahing system set up. Kami tinalakay kung paano makuha ang isang trabaho mula sa mga sistema ng control at kung paano pinakamahusay na upang isaayos ang mga trabaho upang makuha ang pinaka sa aming ng iyong system opisina grid. Upang tapusin, isang talata o dalawa sa pagsusumite ng mga resulta pabalik sa server trabaho control ay iniharap.

  • Ang isang trabaho server control namamahala trabaho at nagsisiguro na ang lahat ng trabaho mga yunit ay nakumpleto na
  • By abstracting iyong trabaho select / resulta submission maaari naming baguhin ang teknolohiya ng server kontrol na walang gaanong problema
  • Isaayos ang iyong trabaho upang tiyakin na sila ay tumakbo nang mabilis at mahusay walang paglagay ng masyadong maraming presyon sa iyong network ng imprastraktura, at walang pagkokopya processing gawain sa isang regular na batayan.
  • Tiyakin na ang build mo kasalanan tolerance at error checking sa iyong gawain, mga manggagawa ay maaaring suspindihin at ipagpatuloy at ang pinaka panggulo ng beses. Tandaan na suriin kung may resulta naisumite na ng ibang worker.

Susunod na panahon

Sa part 3 kami gumawa ng aming mga virtual machine processing at set up ng aming mga machine bintana para maging idle-time manggagawa.

Office Grid Computing gamit kapaligiran Virtual - Part 5

By Steven Lloyd Watkin , Biyernes Disyembre 4, 2009 11:03

Pagpapakilala

trabaho ko sa isang kumpanya na kung saan tumakbo kami maraming jobs batch processing milyon-milyong mga talaan ng data sa bawat araw at ako ay iisip kamakailan lamang tungkol sa lahat ng mga makina na umupo sa paligid ng bawat at bawat araw paggawa ng wala para sa ilang oras. Hindi ba ito ay mabuti kung maaari naming gamitin ang mga makina sa magbolster ang pagpoproseso ng kapangyarihan ng aming mga sistema? Sa set na ito ng mga artikulo na ako ng pagpunta sa tumingin sa mga potensyal na benepisyo ng employing isang opisina parilya gamit virtualised kapaligiran.

Sa Part 4 kami tumingin sa paggamit ng mga kasangkapan upang masiguro na kami ay tumatakbo sa pinakabagong bersyon ng mga data at mga mapagkukunan code kaya na nakuha sa mga resulta ay laging up-to-date sa mga pinakahuling impormasyon ng negosyo at lohika.

Pre-pagpapadala

Bago paganahin ang iyong parilya sistema kung mayroong isang bagay na gagawin mo at isang bagay lamang ito ng benchmark iyong kasalukuyang sistema! Kahit ano ang sabihin sa iyo ang mga kasamahan tungkol sa kung magkano ang dagdag na trabaho ng inyong sistema ay pagpunta sa gawin maliban na lamang kung ikaw ay may mga numero sa likod na ito up ang iyong mga garantiya ay wala. Kaya,

  • paano maraming mga talaan maaari mong proseso kasalukuyan? Bawat Araw? Per Hour?
  • Gaano katagal ito ay karaniwang gawin upang buksan sa paligid ng trabaho?
  • Gaano pa kapasidad ang mayroon kayo?

Mayroon ding mga karagdagang katanungan:

  • Kung ang iyong pagpoproseso ng server (o isa sa iyong pagpoproseso ng server) goes down kung paano ito ay makakaapekto sa iyong kakayahan, ikaw ay baldado?
  • Ano ang pakinabang gawin asa mo / asahan upang makakuha ng mula sa isang sistema ng grid?
  • Sigurado iyong opisina machine kaya ng pagpapatakbo ng mga trabaho?
  • Ay ang iyong (o maaari mong trabaho ma-convert) sa trabaho sa mga ito estilo ng tumatakbo?

Ang huling mga pangunahing punto ay upang dalhin ang iyong oras sa anumang malaking pagbabago tulad na ito. Update ng iyong code sa pagpoproseso sa trabaho gamit ang bagong pamamaraan, benchmark muli. Marahil set up ang iyong pagpoproseso ng server na tumakbo ang isang virtual machine, matapos ang lahat ng iyong pagpoproseso ng server ay lamang maging isa pang worker (lamang ng isang tunay malakas na isa medyo). Payagan ang mga bagong proseso upang tumira.

Paglawak

Ang aking mungkahi ay sa pop sa isang weekend opisina maisagawa ang lahat ng mga installation at setup. Gawin ito lamang bago ang labing-apat na araw ng bakasyon ng isang at iwanan kaya iba pang mahihirap na pumutok-putok sa pakikitungo sa mga kahihinatnan ... siguro hindi ...

Pagpapadala para sa isang sistema tulad ng ito pangangailangan upang maging mabagal. Sa kabila ng pagiging relatibong simpleng sa set up ng system na ito ay makakaapekto sa iyong buong opisina infrastructure (ng mabuti ang mga digital na). Una, igulong sa isang pares ng mga machine sa isang pagkakataon, monitor ng network ng trapiko, kung paano ang mga manggagawa hukbo gumanap sa isang pang-araw-araw na batayan. Maaaring kailanganin mong baguhin ang iyong trabaho configuration sa tugon sa iyong mga natuklasan.

Kapag ang system sa husay sa ilang mga machine (nagbibigay-daan sa sabihin 10% ng lahat ng makina sa opisina, ibig sabihin, 5) panatilihin monitoring trapiko sa network at host machine performance. Susunod benchmark muli, dapat mo ngayon ay pagpoproseso ng 33% mas maraming trabaho kaysa sa iyong unang mga huwaran. Suriin ito ay kaya, o na kayo ay hindi bababa sa halos katumbas na ito. Kung hindi, siyasatin kung ano ang nangyayari bago lumipat sa. Ulitin ito cycle hanggang sa ikaw ay may masaya sa lahat ng opisina machine tumatakbo nang walang pagpatay ng mga indibidwal na makina pagganap o paggiling ng iyong network upang humpay.

Sa lahat ng oras panatilihin ang benchmarking, kahit na matapos ang lahat ng deployments ay ginawa. Suriin kung bagong code update makakaapekto sa bilis ng iyong sistema, suriin ang lahat ng mga manggagawa ay uulat sa pagpoproseso at mga trabaho. Dahan-dahan (masyadong mabagal) pagdagdag ng iyong trabaho pagsasaayos upang makakuha ng pinakamahusay na mula sa iyong mga manggagawa at ng network.

Stop!

Paano kung gusto mong ihinto ang iyong mga manggagawa mula sa pagtakbo sa ilang oras? Sila ay ang lahat ng may tumatakbo, regenerating, at sinusubukan ang kanilang mga pinakamahusay sa proseso ng data tulad ng gutom na mga insekto. Ang sagot ay maaaring mukhang halata ngunit nito nagkakahalaga ng pagdagdag lamang sa kaso nito overlooked. Kailangan lang i-edit ang iyong processing script na may isang exit (0) o mamatay () o ilang iba pang mga pahayag sa pumatay ang iyong pagpoproseso ng trabaho. Isang mahalagang dahilan kung bakit kami laging subukan na update sa pinakabagong processing script bago ang anumang mga tumakbo!

Demonstration System

Upang sumulat ng set na ito ng maikling artikulo ko ay lumikha ng isang lubhang maliit na parilya upang ipakita ang teknolohiya at methodologies. basahin ako ng maraming artikulo, tutorials, at ginagamit iba't ibang mga kasangkapan sa setup at monitor kung ano ang nangyayari. Sa pamamagitan ng walang ibig sabihin ako makalabas at purong isang buong opisina na may traffic at wala usab ako nagkaroon ng access sa isang regular na PC miyembro kawani upang makita kung paano ang host ng pagganap ay apektado.

My demonstration sistema ay napaka magpakumbaba sa katunayan. Ginamit ko ang aking regular na desktop set up bilang isang server trabaho control. Sa ito ako had-install ng MySQL server installed set up bilang isang master sa pagtitiklop, PHP , Isang at SVN-link sa pamamagitan ng apache (para sa pag-access sa pamamagitan ng worker VM).

Ako pagkatapos ay lumikha ng isang makina centOS worker sa VirtualBox sa isang 6 na taong gulang windows laptop XP. Ako setup nakatakdang gawain gaya ng tinukoy matapos na kopyahin ang VM papunta sa makina at ipaalam ito pumunta.

Ang mga virtual machine ay naka-setup na PHP, pagsira, at MySQL. I checked out ang isang sangay pangalang 'manggagawa' mula sa aking mga server ng trabaho control repository at ginawa ba maaaring ito ay nai-update gamit ang 'svn update'. Susunod ako setup MySQL bilang isang alipin at nasuri na ang data ay Kinokopya mula sa MySQL sa server trabaho control down sa VM worker. Pagkatapos ng lahat ng ito ko setup ang bash script at ang cron trabaho.

My processing script talaga nagpunta kasama ang mga linya ng mga ito (tunay simpleng bagay-bagay):

  • Basahin sa patlang ng pangalan
  • Binibilang ang bilang ng mga katulad na pangalan sa isang table mula sa data source gaganapin sa VM
  • Binibilang ang bilang ng pangalan ng nasa itaas ngunit malakas ang pangalan sa pamamagitan ng puwang (ibig sabihin pinangalanan, gitna, apelyido)
  • Paulit-ulit ang proseso na ito 1,000 ulit

Ang bawat trabaho kinuha ng humigit-kumulang 20 minuto upang tumakbo. Sa isang punto ko binuksan ng ilang kopya ng mga manggagawa VM sa laptop bintana at bantayan ang mga trabaho ay Tinanggal sa pamamagitan ng bawat isa sa mga address ng IP worker. Sa puntong ito ko din nakumpirma pagtitiklop na awtomatikong-restart.

Aalis ang mga laptop na walang ginagawa nagresulta sa isang manggagawa na nagsisimula sa proseso ng trabaho mula sa server trabaho control. Kapag resuming laptop sa paggamit ay may isang pagkaantala ng tungkol sa 3-60 segundo, ito ay isang makatarungang halaga ng oras at mga kawani ay kailangang gawin ng kamalayan na ang kanilang mga makina ay maaaring i-pause para sa isang maikling habang kapag bumabalik ka sa makina. Mas bagong makinang hindi maaaring magkaroon ng isang i-pause ng matagal na ito. Ang mga benepisyo ng mga halaga ng pagproseso na ginagampanan ng mga machines sa panahon ng walang ginagawa ng panahon ay higit na lumamang miyembro kawani sa pagkakaroon na maghintay ng isang maikling panahon (say 1 minuto) sa pagdating sa kanilang mga makina ng isang umaga (madalas ko na maghintay na ito para sa isang Windows Defender update na kumuha ng lugar) na ibinigay sila ay ginawa ng kamalayan ng mga ito (mga kapaki-pakinabang na oras upang daklutin ang isang umaga kape!).

Pangkalahatang pakiramdam ang aking paniniwala na ako ay nagpakita ang mga teknolohiya na maaaring magamit upang lumikha ng tulad ng isang sistema. Ako ay pinapakita na ang mga ganitong sistema ay isang trabaho sa isang (tunay) maliit na antas at may ilang mga mas eksperimento ay maaaring kinaliskisan up magamit ang mga resources ng makina ng isang opisina's. Kung hindi ako makakuha sa punto ng paggawa na ito Gusto ko ay tunay interesado na malaman / makita kapag may ibang tao ay.

Pagpapalagay / Evaluation

Ang susunod na hakbang halata ay upang tunay na makakuha ng isang tunay na halimbawa mundo at simulan na lumawak ang isang sistema tulad ng mga ito sa loob ng isang kapaligiran ng opisina at makita kung ano ang mangyayari. Humihingi ng isang negosyo na gumawa sa ito na walang isang kumpanya tugaygayan nagliliyab na patunayan ang teknolohiya at pagiging epektibo ay maaaring isang maliit na mahirap. Parilya / ipinamamahagi computing ay tunay popular ay ang ilang mga bilog at may ilang mga malalaking mga aplikasyon (BIONC, SETI @ Home, Folding @ Home, etc). Ako did hindi, gayunman, maghanap ng isang mas maliit na sukat at simpleng sistema tulad ng ito sa aking mga paghahanap na maaaring lulon out sa loob ng isang kapaligiran ng opisina.

Lumikha ako ng talaga ng free system gamit ang halos lahat ng open source software at mga kasangkapan na magagamit sa halos anumang opisina. Ang teknolohiya ay nagpakita talaga at ipakita na gawin at gumagana tulad ng inaasahan. Sana ako ipakita na may hindi marami sa trabaho at sa isang napaka simpleng setup maaari mong lumawak isang opisina grid computing system na malakas, cheap, Isang scalable at ang lahat sa parehong panahon.

Kapag ang isang sistema ay tumatakbo na diyan ay halos walang katapusan sa halaga ng pagpapasadya at pagpapabuti maaari mong gawin. Halimbawa istatistika / benchmarking ay madaling ay naidagdag na nagpapakita ng halaga ng mga tulad ng isang sistema ng bawat araw. Bagong machine ay maaaring idinagdag mabilis at madali bilang at kapag dumating sila sa upgrade sa mga umiiral na hardware bolstering iyong pagpoproseso ng kapangyarihan.

Umaasa ako sa iyo Nasiyahan pagbabasa na ito serye ng mga artikulo at ang mga ibinigay sa iyo ng pagkain para sa isipan sa pagpapatakbo ng isang opisina sistema grid. Ang solusyon iniharap dito ay hindi kinakailangang trabaho sa lahat ng mga sitwasyon ngunit dapat ay madaling ibagay ang daan sa iyo upang makakuha ng iyong data processing ginawa gamit ang iyong sariling mga solusyon.

Mangyaring mag-atubili na magpadala ako ang anumang mga puna, pagwawasto, o mga pagpapabuti at makikita ko ang aking pinakamahusay na panatilihin ang artikulong ito update sa match.

[Paunawa] bata pid XXXX exit signal Segmentation fault (11)

By Steven Lloyd Watkin , Linggo 11 Oktubre 2009 06:09

Kung na ka kamakailan upgraded PHP o Apache mo siguro pagdating up laban sa mga isyu ng iyong webserver bumabalik na blangko ang mga pahina, at pagkahagis mga mensahe ng error sa iyong mga logs na walang ideya kung bakit, ito ang isang posibleng paraan upang ayusin ito ...

Ako had ang problemang ito ng ilang ulit kamakailan lamang matapos ang upgrade Apache o PHP sa isang virtual machine. Ang unang pagkakataon na ako napansin ang error ako lang ibinalik na ng backup ng aking VM ngunit ang pangalawang panahon ko natanto ko gusto ko may sa tumingin sa ang isyu.

Ang unang pagkakataon na napansin ko ang isyu ilan sa aking mga pahina ng web ay na nagsilbi bilang ng mga file na blangko habang ang iba nagtrabaho ganap na walang pagmultahin. Pagkatapos ng ilang imbestigasyon ng kilala ko apache na pagsulat out sa / var / log / http / error_log may mga sumusunod na mensahe repeatidly:

[Paunawa] bata pid XXXX exit signal Segmentation fault (11)

Mayroong hindi mag-ukol upang pumunta sa pamamagitan ng on-line, at ang karamihan ng mga pahina tungkol sa tugaygayan off ito sa wala. Na sinabi, ako mapakipot down ang isyu sa PHP crashing kapag sinusubukan na unneeded dynamic na mga aklatan.

Hinahanap sa aking php.ini (/ etc / php.ini) Commented ko ang lahat ng mga dynamic na mga aklatan load pagpaplano sa nagsasabi sa kanila pabalik sa kung kailangan. Ang dalawang ako had sa kumuha ng kung saan pdo.so at MySQL . kaya.

Kapag ang mga ito ay inalis lahat ng aking mga web mga pahina ay na nagsilbi pagmultahin, tulad ng dati sa PHP / Apache update.

Wireless Acer sa 5002 WLMi sa Linux (Fedora 11)

By Steven Lloyd Watkin , Sabado Hulyo 11, 2009 09:48

Bilang ko na ginugol ng isa pang ilang oras sa araw na walang internet access Akala ko gusto ko makakuha ng mas mahusay na ito nakasulat down kaya na susunod na panahon ko gulo ang aking laptop up ang impormasyon ay madaling ayusin.

Talaga upang makakuha ng wireless driver nagtatrabaho para sa isang Acer 5002 WLMi kailangan mong gumamit ng b43-fwcutter. Mga tagubilin ay matatagpuan dito: Linux Wireless B43 .

Madali minsan ang impormasyon ay matatagpuan.













Panorama Theme sa pamamagitan ng Themocracy

6 mga bisita sa online ngayon
5 bisita, 1 bots, 0 miyembro
Max mga bisita ngayon: 23 sa 04:19 UTC
Sa buwan na ito: 26 at 2011/07/05 12:35 UTC
Sa taong ito: 130 sa 28-03-2011 22:40 UTC
Lahat ng oras: 130 sa 28-03-2011 10:40 UTC