Posts tagged: serija

Urad Grid Computing uporabo virtualnih okolij - 4. del

Z in petek 4 december 2009 23:59

Predstavitev

Delam v podjetju, kjer deluje veliko delovnih mest paketno obdelavo milijone zapisov podatkov vsak dan in sem pred kratkim razmišljal o vseh naprav, ki sedijo okrog vsak dan nič ne delaš več ur. Ali ne bi bilo dobro, če bi lahko uporaba teh strojev za okrepitev procesorske moči naših sistemov? V tem sklopu člankov bom pogled na možne koristi zaposlovanja za pisarniško omrežje z uporabo virtualiziranih okolij.

V delu 3 smo ustvarili svoj ​​virtualni stroj za obdelavo in vzpostaviti stroji okna, da postane idle delovnim časom.

Nameščeno najnovejšo kodo

Neizogibno po ustvarjanju svoje delavce poslovno logiko bo spremenilo, bo mogoče najti hrošči bodo hitreje bolj učinkovito kodo proizvaja in tako ostane vaši delavci sedeli okoli obdelave podatkov z uporabo starega smrdljiv kodo . Kako potem ne bomo zagotovili, da smo vedno z najnovejšo in najboljšo različico naših obdelavo skript?

Obstaja nekaj zelo preprostih preprostih načinov, kar lahko storimo to, trik pa je zmanjšati procesorske moči in omrežnega prometa pri doseganju teh ciljev. Začnimo z najbolj enostavna rešitev in jo izboljšati počasi nekaj ponovitev.

Prvi način bi bil, da preprosto povezati na naš strežnik delovnih nadzor (prek sambe, FTP, ali podobno) in podirajo najnovejšo različico kode. Ni zelo učinkovito, vendar pa bo to delo. Omogoča izboljšanje na tem nekako, kaj pa ustvarja rsync scenarij in uporabo tega vsakič, namesto tega? Druga možnost je, kaj pa polaganje naše najnovejše obdelavo skript v Subversion preverjanje ven kodo na začetku in potem samo posodobiti našo kodo na vsaki vožnji ( svn update )?

Na koncu bi lahko na koncu z skripto (bash razpiše cron vsakih 10 minut), ki je videti tako enostavno, kot je ta:

  #! / Bin / sh
 če ps ax | grep-v grep | grep php > / dev / null
 Nato
     echo "Job trenutno obdelave, izhoda"
 drugega
     echo "Job se ne izvaja, začeti zdaj"
     cd / pot / do / delovne / kopije
     svn update
     php yourJobProcessingScript.php
 povezava 

Sedaj smo lahko prepričani, da se z vsako vožnjo bomo zagotovo teče zadnji kodo. Mi smo to zagotavlja s posodobitvijo našo kodo dale vsakič opravimo vožnjo in zmanjšanje omrežnega prometa, ki jih le prenos datotek razlike med našo mrežo.

Po mojem demonstracijskega namestitvi, sem točno tako, kot zgoraj. Subversion je bil nameščen na mojem strežniku delovnih mest za obdelavo in sem enostavno potegnil najnovejšo kodo iz "delavec" podružnice uporabljajo "svn posodobitev". Prav tako sem dodal oznako številko različice na moj obdelavo skript, ki je bil vrnil v bazo podatkov kot del napovedi rezultatov. Tako sem videl, da je moja koda posodablja vsakič, ko sem prekopiral moj prtljažnik v tj delavcev panoge, da sem definitivno teče zadnji obdelavo skript.

Z uporabo najnovejših podatkov

Če vaše delo obdelava omogoča uporabo virov podatkov potem na neki točki ti se bodo tudi posodobiti. Razen če pokličete podatkovne vire na zelo redke osnovi si boš poplav svoje omrežje s prometom takoj, ko vaši delavci začeli prikazovati prinaša vse do mirovanja. Za moje rešitve sem se odločil, da bi rad, da se premaknete svoje vire podatkov okrog z mojimi imajo proizvajalci.

Drži, da si konji tam! Kaj pa, če moji viri podatkov so ogromne? Pa to res primer, koliko podatkov govorimo? To je lahko bolj stroškovno učinkovito namestiti dodaten večji trdi disk v vsakem stroju kot za nakup dodatnega strežnika za obdelavo. To je vprašanje proračuna in je določena s strani podjetja odločiti. Je morda, da bodo vaši viri podatkov so tako velike, da je njena samo neizvedljiva, da bo to količino podatkov v svojih delavcev strojev. V tem primeru, kaj bi storili? No, lahko pogledamo kliče lokalno podatkovnega strežnika, vendar pa to lahko povzroči težave z omrežjem. V tem primeru lahko omrežji, kot je to postalo nerealno vključiti v pisarniško okolje. Lahko je tudi, da si lahko ogledate v alternativne potekajo strategij, na primer samo kliče svoje delavce med 8pm in 6am vsak večer in / ali dušenje virov podatkov zahteva.

Gremo naprej recimo našo podatkovno viri znašajo 100 GB podatkov. No ja to je zelo malo podatkov za premikanje po mreži na posodobitev. Kako bi zagotovili, da imamo najnovejšo kopijo podatkov v tem primeru? Rsync je možnost, vendar osebno mislim, da s tekom svoje najnovejše vir podatkov na strežniku delovnih mest za obdelavo in vzpostavitev to gor kot mojster v replikacijo (z lepo dolgo dnevnik bin) je lahko pot:

replikacija Z določitvijo vsako od vaših delavcev gor kot sužnja na delovnih posodobitve strežnika za nadzor vaših virov podatkov bo čezmejno nakupovanje lepo vašim delavcem, ne da bi veliko povečanje aktivnosti omrežja (to je, če ne opravljajo ogromno podatkov, posodobitev in vse svoje delavce brcnil v naenkrat). To ima prednosti pred rsync v tem, da si ne bi dobili dolgem premoru pred vsako delo, kot so podatkovne baze posodobitve, mysql bo daemon na vašem delavec stalno obnavljati svoje podatke, medtem ko je predelava nadaljuje.

To je, kako sem ustanovil svoj predstavitveni strežnik. Če želite nastaviti replikacijo sem sledil navodilom na spletni strani mySQL ( Nastavitev replikacije ) in v 20 minutah sem imel inital delavca posnemanja strežnikov nabor podatkov za nadzor delovnih mest. Za vsako dodatno delavcu replikacije nastavitve in procesov dela vsakič, ko je bila kopirana VM.

Povzetek

V tem delu članka smo proučevali, kako enostavno in neboleče je, da vaš obdelavo kodo na tekočem z funkciji rsync ali using subverion (SVN), da ne dela in zmanjšanje omrežnega prometa ob istem time. Govorili smo tudi o tem, kako , da vaš vir podatkov podatke up-to-datum, ki jih omogoča, da čezmejno nakupovanje za vsako od vaših delavcev. Tako smo površina zagotavlja, da bomo sledili poslovno logiko in informacij v naš sistem pisarniškega omrežja. Tam bo zagotovo nešteto alternative izvajanju teh nalog, ampak tukaj sta dve preprosti primeri bi jih lahko pokazali, kako enostavno rešitev je, da dobiti.

Naslednjič

V zadnjem delu te serije, aptly imenovan 5. del , bomo razpravljali o uvajanju tega sistema. Jaz bom povzeti, kaj je bilo tisto, kar sem se naučil, in uspelo ustvariti.

Urad Grid Computing uporabo virtualnih okolij - 1. del

Z in petek 4 december 2009 11:23 pm

Predstavitev

Delam v podjetju, kjer deluje veliko delovnih mest paketno obdelavo milijone zapisov podatkov vsak dan in sem pred kratkim razmišljal o vseh naprav, ki sedijo okrog vsak dan nič ne delaš več ur. Ali ne bi bilo dobro, če bi lahko uporaba teh strojev za okrepitev procesorske moči naših sistemov? V tem sklopu člankov bom pogled na možne koristi zaposlovanja za pisarniško omrežje z uporabo virtualiziranih okolij.

Kot PHP razvijalec bom uporabljati orodja, ki sem se uporabljajo vsak dan in sicer, Linux, MySQL , PHP, VirtualBox in rušenja (SVN). Vendar upam, da bo ta vodnik prilagajanje drugih jezikov in tehnologij, prav tako dobro.

Rešitev sem zagotovila, bodo zelo ohlapno temelji na vrsti predelave sva morali pa bi to dosegli, ne more biti res, skozi celoten članek, kot bom spremeniti stvari za poenostavitve ali za proizvodnjo več zanimivih scenarijev uporabe.

Ti virtualiziranih okolij bo potekal na strojih okna, saj je to tisto, kar večina pisarn teči. Pri obdelavi, da so pisarniški stroji ne sme posegati v zaposlenimi, ki uporabljajo te stroje je treba ne potrebujejo vzdrževanja na stroju, in da je lahko premestljive za nove naprave, ko so na voljo. Prav tako nove virtualne stroje, ne sme zahtevati dodatne nastavitve, kot je to v veliki meri zmanjšuje razširljivost in enostavnost pri kateri se lahko podaljša omrežnega sistema.

Zakaj Uvajanje Urad Computing Grid?

Najprej boste morda mislil, zakaj ne šele raba virov cloud computing kot EC2 platforme Amazon ? Dobro bi bilo več razlogov, na primer:

  • Ne boste zaupali določene podatke v okolju cloud computing
  • Ne, ne moreš postaviti določene podatke v okolju cloud computing iz pravnih razlogov (npr. podatki izstopu iz države), lahko iz pravnih razlogov, npr NZS evidenc.
  • Želite, da bodo vaši procesnih enot blizu in imajo popoln nadzor nad strojno opremo preveč
  • Nimate projektnih sredstev za zagon oblaku primere
  • Vaša pisarna nima povezave z internetom, zato njeno ni mogoče uporabiti oblak vira
  • Vam ni všeč, dež, oblaki kažejo, dež, zato se boste držali daleč

Prepričan sem, da se seznam lahko še naprej, vendar mislim, da je dovolj za zdaj.

Prednosti za mrežo Urad Computing

No, vam še nekaj matematike (in v pravem slogu fizike omogoča še nekaj osupljivih predpostavke). Predstavljajte si, da imate veliko Debel obdelavo strežniku 100 delovnih mest na dan. V pisarni imate 50 stroje, ki so idle 16 ur na dan, vsak od teh naprav je 10% tako močan kot je vaš Debel Sever obdelavo. (Vsi rezultati tukaj so zaokrožene na podcenjevati učinkovitosti povečanje).

Torej, 1 stroj * 10% moči * 2/3 čas = 0,067 tj. 1 namizni obdelava v stanju času uspelo obdelati 6 zvrhanih opravil na dan.

Če zdaj to gor lestvici traja 15 idle namiznih računalnikov za obdelavo, kot je veliko delovnih mest na dan, kot je vaš glavni strežnik za predelavo ne.

Torej, v naši pisarni pretvarja, 50 strojev, bi lahko povečali našo procesorske moči od 1 do 4 strežnika polnih strežnikov za predelavo, ali pa bi se obdelavo 400 delovnih mest na dan namesto 100.

Obvestilo, brez vlaganja v novo strojno opremo je vaše podjetje le povečala svojo paketno obdelavo zmogljivosti 4-krat! Potencialno boste povečali svojo porabo energije, ampak v večini okolij pisarniških sem bil, da stroji, so na splošno na levo čez noč nekako, tako da boste lahko videli, da je to pobuda za okolju prijazne.

Druge prednosti pomeni tudi, da vlaganje v nove (ali posodobljene) obdelavo strežniki se lahko odloži, če vaš pisarniški stroji zadoščajo in da, kot ste izboljšali moč vaših pisarniških strojev vaš urad mreža postane močnejši samodejno.

Tehnologije

Kaj potrebujete? (Ali več pravilno kaj uporabljam):

  • Idle pisarniški stroji (v mojem primeru rezervno stari Windows XP laptop)
  • VirtualBox (ali drugo stranko virtualizacija programske opreme)
  • Stvaren stroj s PHP, MySQL running teče posekali OS, Kličem te moje Limp strežnikih :)
  • Delovna mesta za zagon
  • Job strežnik (lahko drug navidezni stroj nekje)

Tipična delovna mesta

Vrste delovnih mest, da se ta sistem, namenjenih za zagon je, kot sledi:

  • Sistem prejme seznam podatkov, na katerih moramo prilagoditi in se vrniti rezultate
  • Usklajevanje vključuje preverjanje / iskanje več (dokaj statična) virov podatkov
  • Rezultati virov podatkov lahko zahtevajo dodatno potrditev, združevanje, preverjanje dodatnih virov podatkov kot odziv na rezultate
  • Podatki se vrnil s ustrezajo evidence, v celoti potrjeni in obdelujejo
  • Vsak zapis v službo je neodvisen od ostalih

Torej v bistvu smo iskali na teče delovna mesta, ki zahtevajo mešanico baze poizvedbe in nekaj številk škrtanje, ki je dokaj tipičen scenarij v poslovnem okolju.

Mrežne rešitve, ne samo koristno, za obdelavo delovnih mest te vrste. V bistvu lahko vsak proces, ki ga lahko razdelimo na samostojne enote, se vzporedno. Oglejte si ta Wikipedijo za primere in več informacij: računalniške mreže , ampak nekaj znanih primerov je SETI @ home in BIONC . Obstaja okvir za delovanje računalniških omrežij, in to so dobro vredno preučiti.

Kaj bomo dosegli?

Do konca teh členov upam pokazati, da napotitev pisarniško omrežje ni treba biti zelo draga ali dolgotrajen. Bom na njih:

  • Vzpostavitev sistema za nadzor delovnih mest, delo konfiguracija
  • Ustvarjanje primernega obdelavo stvaren stroj
  • Kako nastaviti sistem na stroju okna
  • Zagotavljanje uporabljate najnovejše kode in podatkov
  • Uvajanje in benchmarking
  • Pogled naprej

Bom stavba (ok sem zgradil, potem je to napisal), na primer uporaba preveriti zasnove na lokalnem stroju z Windows XP in na moji strani GridMachine "virtualno stroj. Moja naloga je nadzor nad strežnik bo moj glavni stroj, ki teče Fedora 11 .

To nikakor ni pomenilo, da dokaže polno delovno robusten sistem, njegovo mišljeno bolj za predstavitev in razprave je razvidno, da se lahko te stvari doseči v razmeroma kratkem času in z malo stroški. Prosim, vas prosimo, da mi pošljete kakršne koli pripombe, popravke ali izboljšave in bom po svojih najboljših močeh, da bo ta članek posodobljene, da se ujemajo.

Naslednjič

V delu 2 se bom začela z iskanjem na sistemu za nadzor delovnih mest, in poglejte, kako je treba delovna mesta nastavljen, da bi dosegli največjo količino obdelave, ob zagotavljanju, da je vsako delovno mesto obdelujejo obvezno.

Urad Grid Computing uporabo virtualnih okolij - 2. del

Z in petek 4 december 2009 11:23 pm

Predstavitev

Delam v podjetju, kjer deluje veliko delovnih mest paketno obdelavo milijone zapisov podatkov vsak dan in sem pred kratkim razmišljal o vseh naprav, ki sedijo okrog vsak dan nič ne delaš več ur. Ali ne bi bilo dobro, če bi lahko uporaba teh strojev za okrepitev procesorske moči naših sistemov? V tem sklopu člankov bom pogled na možne koristi zaposlovanja za pisarniško omrežje z uporabo virtualiziranih okolij.

V delu 1 sem dal pregled sistema in tehnologij bom uporabo kot tudi obravnavali nekaj možnih razlogov, zakaj bi si želeli ustvariti pisarniško omrežje.

Služba za nadzor

Če boste za vodenje delovnih mest, potem boste morali na nek način, da jih upravljajo. Vaša naloga nadzorni sistem (na vašem delovnem mestu strežnik), je treba res dobro premišljena, še preden poskušate zagnati pisarniško omrežje. Torej, najprej, kaj so naloge za sistem za nadzor delovnih mest:

  • Izročiti delovnih mest na zahtevo delavcev
  • Povej delavcem, kakšne vrste delovnih mest za vodenje
  • Track delovna mesta
  • Zagotoviti, da so delovna mesta teči šele, ko
  • Zagotavljanje delovnih mest za delavce, podatke, ali pa vsaj jim povej, kje naj dobim

Sistem mora biti tudi razširljiv, rešitev, ki deluje za zdaj v enem primeru se lahko podaljša za zagon več vrst delovnih mest, kot so podjetja vidi vrednost v mreži rešitev. Na primer, delovna mesta pridobiti prednostne naloge, več kot eno opravilo Tip lahko obstajajo (torej več kod baze), na koncu lahko celo deluje več različnih strojev delavca, ki so optimizirane za vsako vrsto dela (čeprav to ne odmakne od To generično delavca "ideja). Vedno poskušajo, da razmišljajo o prihodnosti pri razvoju sistemov, lahko kratek čas vizija vodi k dolgoročno frustracije in povečano razvojno časa.

Job Server

Bomo nekje morali nadzirati naša delovna mesta iz, naj bo to edini sistem v vaši mreži, ki ima fiksno Resource Locator, je, da IP-naslov, ime gostitelja, URL (z uporabo notranjega DNS), itd To je zato, ker delavci morajo vedeti, kje iskati za delovna mesta, delavci morali najti sistem za nadzor delovnih mest (ni naloga nadzorni sistem našli delavce).

Naloga strežnika sama po sebi ne res zapletena naloga (v osnovni sistem tako ali tako), ki jih potrebuje za shranjevanje seznam delovnih mest, ročno iz delovnih mest, prejeli rezultate, nato pa jih shranite za kasnejše iskanje. Kako so opredeljene ti deli (kot so "roko ven delovna mesta"), je lahko zelo osnovne. Kasneje lahko razširiti sistem za vključitev uprave vmesnik za dodajanje, urejanje, brisanje, začasno delo, ampak to je izven te vaje.

Nobenega razloga ni, sploh pa, da je vaša naloga strežnik ne more biti stvaren stroj teče v vaš glavni strežnik za obdelavo, pod pogojem da ne odteče preveč sredstev iz nje. Naloga strežnika pa ne potrebujemo visoko razpoložljivost, če zaide na petek zvečer si boš izgubil cel vikend obdelave, lahko stanejo nekaj tednov vredno časa za obdelavo (v primerjavi s vaš glavni strežnik za obdelavo samo) . Morda boste želeli, da razmisli svoje delo strežnik na obremenitve okolja za uravnotežen visoke razpoložljivosti.

Osnovna nastavitev

Osnovne nastavitve za naš strežnik delovnih mest bo sestavljen iz kaj sem pozval eno od mojih mlačni strežnikov (to je Li nux, m ySql, P KM). Kodeks deluje na delavce Thea bo dejansko delajo, kaj delovnih mest lahko deluje z vzajemnim delovanjem z z delovnih zbirk nadzornega sistema. Kasneje bi lahko ustvarili spletno storitev in pravzaprav bi jih izdala delovna mesta bolj kot da bi delavci ne trdega dela sami, vendar za zdaj bomo še naprej uporabljati načelo KISS (Keep it Simple, Stupid!).

Torej, omogoča ustvarjanje tri MySQL tabel za reševanje delovnih mest. To bo `delovna mesta ',' jobRecords` in `jobResults`.

delovna mesta miza Tukaj sem z SQL Buddy veliko malo alternativa phpMyAdmin samo zato, ker njegov lažje namestiti na CentOS (na drugi strani: 10 Velika alternativa phpMyAdmin )

Ta tabela je sestavljena iz 5 preprostih področjih,

  • id: enolično identifikacijo delo
  • Ime: Bi lahko naročnik reference, ali poljubno število drugih identifikatorjev
  • Status: Moraš vedeti, kje naloga je, na, na primer
    • 0: Se ne izvaja
    • 1: Pobral
    • 2: Zaključen
  • started_by: Kdo je začel delamo? To ni povsem potrebna, vendar je lepo imeti. Želel predlagam sledenje delavce po svoji IP naslov v omrežju
  • started_at: Kdaj je delavec začel svoje delo? S sledenjem delovnih mest, ki se niso zaključile v višini X časa vemo, moramo pobrati svoje delo še enkrat in začeti predelave s strani drugega delavca. Delavci se lahko ustavite obdelavo / go offline za poljubno število razlogov, izpad električne energije, crash, omrežja izgube, itd

To je enostavno, kako bi se to lahko tabela razširi z nekaj dodatnih področjih, da omogočajo sledenje statistika, obdelava čas stolpca, kako dolgo naloga je, v nasprotju z vidite, koliko delavcev je pobral svoje delo (seveda to moramo ponavadi 1), delo prednostna naloga, se lahko seznam gre naprej in naprej. V bolj zapletenih scenarijev delovnih mest bi bilo mogoče določiti, koliko pomnilnika bo delavec potrebujejo dostop do (in zato uporabljajte le primerne delavcev), ali pa bi celo kakšen tip delavca zahteva.

Lets dodati nekaj delovnih mest primere:

primer delovna mesta

Naslednji table spet je zelo preprost za razumevanje, da so to naše delo zapisov. Te so povezane z glavno tabelo delovnih mest s kolono 'jobs_id `. Make up te tabele zelo odvisna od podatkov, ki jih morate posredovati svojim delavcem, da omogoča zelo enostaven primer, kjer smo imeli štiri stolpce:

  • id: ID zapisa
  • Ime: ime osebe
  • address: Person's address
  • jobs_id: The job ID that this record is linked to

The third and final table consists of a results table, it has much the same make up as our records table, and with the addition of some columns could be part of the records table:

  • job_record_id: Link the result to the job table
  • result: The result data

…and that's all you need for job control! (albeit at a very basic level) In my case I'm pointed to another table where my data to process was located, but this could just as easily been a file, parameters to run simulation code, you name it.

Selecting a job

As stated previously, the workers will do our job management for us for now, so all we need to really do is find a job that needs processing and get the information. How would we do this? Well pick our job selection criteria and look for jobs, in SQL I did the following:

  1. Take any jobs that are not marked as complete but from our worker and reset them (substitute __ME__ with an identifier, easiest would be IP address):
     UPDATE `jobs` SET `status` = 0 WHERE `status` = 1 AND `started_by` = __ME__; 
  2. Using our job selection criteria, select a job and tell the control system that this worker is dealing with it:
     UPDATE `jobs` SET `status` = 1, `started_by` = __ME__, `started_at` = NOW() WHERE `status` = 0 OR
    (`status` = 1 AND `started_at` > DATE_SUB(NOW(), INTERVAL X HOUR)) ORDER BY `id` ASC; 

    By grabbing jobs that haven't returned results in X amount of time we ensure that all jobs are run in the event of a worker crashing or going AWOL.

  3. Next grab the jobs details followed by the records themselves:
     SELECT * FROM `jobs` WHERE `started_by` = __ME__ LIMIT 1;
    SELECT * FROM `job_records` WHERE `id` = __JOBID__; 

Upon completion of the job we insert our result records and mark the job as complete. Remember as jobs can suspend/resume at any time allow for some robustness in your script. It might be that the task suspends half way through updating the job control system, so checking the number of records in a job and the number of results saved back to the job control system would be a wise move.

In addition, whilst this demonstrates how jobs can be selected and managed from an SQL-query frame you should really be abstracting your job control so that if you decide to switch to using a web service, a file based system, XML , or any other number of systems it will not affect the code above it.

Job Configuration

The next aspect to consider is job size and configuration. By playing with job configuration we can strike an excellent balance between speed, process replication, and reliability. Take a couple of scenarios:

  1. Jobs take 1 day each to run: This means that your workers need 15 days to process each job (remember 10% of the power for 2/3rds of the time). 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.

In reality there will be no one ideal configuration for your grid setup, much depends on the available resources, types of job, job turnaround time requirements, network capability, and so on. However some guidelines would be:

  • Size jobs so that each worker can get through at least 3-4 jobs in a period of 15 hours (the longest likely idle time period)
  • Play with the job size so that setup time becomes fairly insignificant compared to the processing time (bearing in mind the above point).
  • Če delo ni končano dvojno količino časa (morda manj), ki jih pričakujete, da izpolnite domneva, da njegova šel AWOL in začeli z drugo obdelavo delavca. To pomeni, da boste morda morali počakati do trikrat normalno dolžino službo za dokončanje, da (morda več, če naknadno delo ne uspe). Morda boste želeli zmanjšati ta čas, vendar bodite previdni, da se ne zmanjša preveč, saj lahko začnete podvajanja nalog za obdelavo na redni osnovi.
  • Delovna mesta morajo biti neodvisni od zunanjih zahtev, kolikor je to mogoče. Naloga strežnika, na primer, le da me kontaktirajo na začetku in koncu vsakega delovnega mesta.
  • Ne nasičena vaše omrežje, bo to imelo dve negativni učinki, bo vaše dnevne osebje našli uporabo omrežja frustrirajuće in težave se lahko pojavili pri določanju časa povezave ven problem, ki bo le še slabše, kot ste lestvici svoje omrežje.
  • Zagotoviti delovna mesta se lahko izvaja na vaših delavcev. Če delovnih mest preveč pomnilnika bo intenzivni ali disku intenzivnih delovnih mest začeli aborting in edina stvar, ki jo boste opazili, je upad števila delovnih mest, ki se obdelujejo brez pravi razlog, zakaj.

Predložijo Rezultati Job

Ob predložitvi rezultatov delo je pomembno, da preveri, ali so rezultati niso bili predloženi drug delavec, še posebej, če je bil delavec trenutno miruje, za nekaj časa.

Ko so rezultati predloženi zagotoviti, da število rezultatov ustreza številu zapisov v službo.

Kot je navedeno prej, in ne more biti več kot je poudaril, zgraditi toleranco napak v iskanje novih delovnih mest in predložitev rezultatov. Delavci se lahko (in verjetno) bo šel v začasno način na najbolj neprijetno, kolikokrat in to je treba poskrbljeno za. Prav tako še enkrat abstrahiranja proč svoje rezultate vloge bodo pomagali poskrbeti za bodoče spremembe v sistemu nadzora opravil veliko lažje reševanje.

Povzetek

V tem section smo pogledal kaj nadzor opravil strežnik mora storiti in kako priti zelo osnovni sistem, vzpostavljen. Razpravljali smo o tem, kako pridobiti opravilo iz sistema nadzora in kako najbolje oblikovati delovna mesta, da bi dobili večino naših vašega sistema pisarniškega omrežja. Do konca, je bil predstavljen odstavek ali dva na oddajo rezultate nazaj na strežnik delovnih mest nadzora.

  • Nadzor opravil strežnik upravlja delovnih mest in zagotavlja, da so zaključeni vsi delovne enote
  • Z abstrahiranja svoje delo izberite / rezultati predložitev lahko spremenimo tehnologijo nadzorni strežnik brez veliko težav
  • Nastaviti svoje delo, da se zagotovi, da so teči hitro in učinkovito, ne da bi preveč pritiska na vaše omrežne infrastrukture in brez podvajanja nalog za obdelavo na redni osnovi.
  • Prepričajte se, da si zgraditi toleranco napak in napak checking v svoje rutine, lahko delavci prekine in nadaljuje, najbolj neprijetno krat. Ne pozabite preveriti, če so rezultati že predložil drug delavec.

Naslednjič

V delu 3 se bomo ustvarili našo stvaren stroj za obdelavo in vzpostaviti naše okno stroje, da postane idle delovnim časom.

Urad računalniške mreže z uporabo virtualne okolja - 5. del

Z in petek 4 december 2009 11:03 pm

Predstavitev

Delam v podjetju, kjer deluje veliko delovnih mest paketno obdelavo milijone zapisov podatkov vsak dan in sem pred kratkim razmišljal o vseh naprav, ki sedijo okrog vsak dan nič ne delaš več ur. Ali ne bi bilo dobro, če bi lahko uporaba teh strojev za okrepitev procesorske moči naših sistemov? V tem sklopu člankov bom pogled na možne koristi zaposlovanja za pisarniško omrežje z uporabo virtualised okolje.

V delu 4, smo preučevali uporabo orodij za zagotovitev, da smo nameščeno najnovejšo različico virov kode in podatkov, tako da dobljeni rezultati so vedno up-to-date z najnovejšimi poslovnih informacij in logiko.

Pre-Deployment

Pred namestitvijo svojega omrežja sistem, če obstaja ena stvar, ki jo storite, in ena stvar, sam to je merilo vaš trenutni sistem! Ni važno, kaj poveste kolege o tem, koliko dodatno delo, vaš sistem bo naredil, če imate številke bi to potrdili vaše jamstev niso nič. Torej,

  • Koliko zapisov lahko obdelali trenutno? Na dan? Na uro?
  • Koliko časa običajno traja, da se obrnil službo?
  • Koliko več zmogljivosti imate?

Tam je tudi dodatna vprašanja:

  • Če je vaš strežnik za obdelavo (ali eden od vaših strežnikov za predelavo) gre dol, kako bo to vplivalo na vaše sposobnosti, vam bo invalid?
  • Kakšne prednosti vam upam / pričakujem, da bi dobili od omrežnega sistema?
  • So vaši pisarniški stroji pogon delovnih mest?
  • Ali vaš (ali pa ste lahko pretvori delovnih mest), da wrok v tem slogu vodenja?

Zadnji večji Bistvo je, da si vzemite čas za večje spremembe, kot je ta. Posodobite obdelavo kodo za delo z novo metodologijo, ki merilo znova. Mogoče nastaviti za obdelavo strežnik teči virtualni stroj, po vsem strežniku obdelave bo samo še en delavec (samo zelo močna 1 relativno). Pustimo, da se nov postopek za poravnavo.

Deployment

Moj predlog bi bil pop v pisarni enega tedna izvajanje vseh naprav in nastavitev. Ali to tik pred počitnicami štirinajstih dneh in pustite, da drugi revni chap za reševanje posledic ... morda pa tudi ne ...

Uvajanje sistem, kot je ta mora biti počasen. Kljub temu, da bi bilo razmeroma preprosto vzpostavitev tega sistema bo vplivala na vaše celotno infrastrukturo urada (tudi digitalni 1). Prvič, razvaljamo na nekaj strojev v času, monitor omrežnega prometa, kako se delavec gostitelji opravljajo na dan za dnem. Morda boste morali spremeniti svoje delo konfiguracijo kot odgovor na vaše ugotovitve.

Ko je sistem rešiti z nekaj strojev (recimo 10% vseh pisarniških strojev, tj 5) vodi za spremljanje prometa omrežja in gostiteljski stroj performance. Naslednja merilo še enkrat, bi morali sedaj predelavo 33% več delovnih mest kot vaših prvih meril. Preverite, to je tako, ali da ste vsaj v tem Športni teren. Če ne, raziskati, kaj se dogaja pred prehodom na. Ponovite ta cikel, dokler ne happily vsi pisarniški stroji teče brez ubijanja individualno stroja ali mletje omrežje do zastoja.

Ves čas vodi primerjalno analizo, tudi po tem, ko so na vseh uvajalnih. Preverite, kako nove posodobitve koda vpliva na hitrost vašega sistema, preverite, ali so vsi delavci v poročanje in obdelavo delovnih mest. Počasi (zelo počasi), prirastek svoje delo konfiguracijo, da bi dobili najboljše iz svojih delavcev in mreže.

Stop!

Kaj pa, če želite ustaviti svoje delavce iz teče nekaj časa? Vsi so tam teče regeneracijo, in poskuša po svojih najboljših močeh za obdelavo podatkov, kot so žuželke lačnih. Odgovor se morda zdi očitno, vendar je vredno dodajanjem vsak slučaj njegov spregledati. Preprosto urejanje obdelavo skript, z izhodom (0) ali die () ali kakšno drugo izjavo, da ubil obdelave delo. Pomemben razlog, zakaj smo vedno poskušali posodobiti na najnovejšo scenarij obdelave pred vsako vožnjo!

Prikaz sistema

Da bi napisal to zbirko kratkih člankov sem ustvarila zelo majhen mrežo dokazati tehnologije in metodologije. Prebral sem veliko člankov, vaj in se uporabljajo različna orodja za namestitev in spremljati, kaj se dogaja. Nikakor sem šel ven in nasičenih celo pisarno s prometom in tudi ne sem imel dostop do rednega PC člane osebja, da vidite, kako je vplivala gostitelj delovanje.

Moja demonstracija sistem je bil zelo skromen res. Včasih sem svojo redno namizje ustanovi kot strežnik delovnih nadzora. Na to sem namestiti mySQL strežnik nameščen ustanovljena kot mojster v replikacije, PHP , A in SVN povezana s Apache (za dostop preko VM delavcev).

Nato sem ustvaril stroj delavcev CentOS na VirtualBox na 6 let star laptop Windows XP. Jaz nastaviti predvidene naloge, kot je določeno po kopiranju VM na stroj in pustite, da gredo.

Stvaren stroj je bil ustanovljen s PHP, Subversion in MySQL. Preveril sem ven podružnico z imenom "delavec" iz mojega nadzora delovnih skladišče strežnikov in je prepričan, da bi se lahko posodobijo po ilo posodobitev ". Nato sem nastavitev mySQL kot suženj in preveri, ali podatki so bili posnemanja iz mySQL na strežniku delovnih mest za vodenje delavcu VM. Po vsem tem sem setup bash skripto in cron službo.

Moj obdelavo skript v bistvu šli po vzoru to (zelo preprosta stvar):

  • Preberite v polje Ime
  • Prešteti število podobnih imen v tabeli iz vira podatkov, ki je potekala v VM
  • Prešteti število imen, kot zgoraj, vendar razdelitev imena s presledki (npr. ime, srednja, priimek)
  • Postopek se ponovi 1000 krat

Vsako delovno mesto je približno 20 minut teči. V nekem trenutku sem odprl tudi več izvodov delavcev VM na laptop okno in opazoval delovna mesta preveriti off vsaka od naslovov IP delavcev. Na tej točki sem tudi potrdil, da replikacije samodejno ponovno zažene.

Zapusti laptop v stanje povzročilo delavca začetkom obdelave delovnih mest iz strežnika delovnih mest nadzora. Ko nadaljevanje laptop usage je prišlo do zamude približno 30-60 sekund, je to pošteno časa in osebja bi bilo treba zavedati, da je njihova naprava lahko ustavite za kratek čas, ko se vrne na stroju. Novejši stroji ne smejo imeti pavzo, dolgo tako dolgo. Korist za znesek, ki ga opravi obdelavo teh strojev v prostem teku več obdobjih, ki bi prevladali nad uslužbencem, da počaka na kratko obdobje (recimo 1 minuto), ob prihodu na svojih strojih za zjutraj (I pogosto čakati dlje, da je to za Windows Defender posodobiti, da poteka), če so seznanjeni s tem (koristen čas, da zgrabite jutranjo kavo!).

Na splošno sem prepričani, da sem prikazal tehnologije, ki bi jih lahko uporabili za oblikovanje takšnega sistema. I so pokazale, da tak sistem ne dela na (zelo) majhnem obsegu in z nekaj več eksperimentirati lahko povečajo uporabiti sredstva strojev urada je. Če ne pridete do te mere, to bi mi bilo zelo zanimalo, / videli, ko nekdo drug ne.

Sklepi / ocene

Naslednji korak bi bil očitno dejansko dobil pravi zgled svetu in začeti uvajanje sistema, kot je to v pisarniško okolje in videli, kaj se zgodi. Zahtevati podjetja, da se zavežejo, da to brez sled Plamen podjetje dokazati, tehnologija in učinkovitost lahko malo težko. Mreža / porazdeljeni računalniški je zelo priljubljen, je nekaj krogov in ima nekaj velikih aplikacij (BIONC, SETI @ Home, Folding @ Home, itd.) Nisem pa našli v manjšem obsegu in enostaven sistem, kot je ta v svojih iskanjih, ki bi se lahko razvalja v pisarniško okolje.

Ustvaril sem v bistvu brez sistema z uporabo odprtokodne programske opreme v glavnem in orodij na voljo v skoraj vsaki pisarni. Tehnologije so v bistvu dokazati in pokazati, da opravlja delo, in kot je bilo pričakovano. Upajmo, da imam kažejo, da z ne preveč dela in z zelo preprosto namestitev lahko se uporabi računalniške pisarno omrežja sistem, ki je močan, poceni, a in prilagodljiva vse ob istem času.

Ko sistem je začela delovati skoraj ni konec znesek prilagoditev in izboljšav, ki jih lahko dajo. Na primer, lahko statistiko / benchmarking enostavno treba dodati, ki prikazuje vrednost takega sistema vsak dan. Nove naprave se lahko doda hitro in enostavno, če in ko prispejo z nadgradnjo obstoječe strojne opreme za krepitev svoje procesorske moči.

Upam, da ste uživali branju tega serijo člankov in njegove dal snov za razmišljanje o teče sistem pisarniškega omrežja. Rešitev, predstavljena tukaj, ne bo nujno delo v vseh situacijah, vendar morajo biti prilagojeni, da vam omogočajo, da se vaš obdelava podatkov opravi s pomočjo svoje rešitve.

Prosim, vas prosimo, da mi pošljete kakršne koli pripombe, popravke ali izboljšave in bom po svojih najboljših močeh, da bo ta članek posodobljene, da se ujemajo.













Panorama Tema, ki jo Themocracy

4 obiskovalcev online zdaj
3 gostov, 1 roboti, 0 člani
Največ obiskovalcev danes: 15 ob 05:36 pm UTC
Ta mesec: 18 07-05-2012 ob 04:35 pm UTC
V letošnjem letu: 69 27-02-2012 ob 09:56 uri UTC
Ves čas: 130 v 28-03-2011 10:40 pm UTC