Posts tagged: bash

Toimisto Grid Computing Virtual ympäristöissä - Osa 4

Kun perjantai 04 joulukuu 2009 23:59

Johdanto

Olen töissä yrityksessä, jossa voimme suorittaa useita eräajot käsittely miljoonia levyjä tietoja joka päivä, ja olen ajatellut viime aikoina kaikki koneet, istua joka päivä tekemättä mitään useita tunteja. Eikö olisi hyvä, jos voisimme käyttää näitä koneita vahvistamaan prosessointitehoa järjestelmiemme? Tämän joukon artikkeleita aion tarkastella mahdollisia hyötyjä työllistää toimiston verkon avulla virtualisoituja ympäristöissä.

Kun osa 3 loimme virtuaalinen jenkäsittelykoneeseen ja perusti Windows-koneissa tulee idle-aikaisia ​​työntekijöitä.

Running uusin koodi

Väistämättä luomisen jälkeen työntekijät liiketoiminnan logiikka muuttuu, vikoja löytyy, nopeammin tehokkaampia koodi tuotetaan siis jättäisit työntekijät istuivat käsittelee tietoja käyttämällä vanhaa haiseva koodia . Kuinka sitten voimme varmistaa, että olemme aina käytössä uusin ja paras versio meidän käsittelyn skriptejä?

On olemassa muutamia erittäin helppo yksinkertaisia ​​tapoja voisimme tehdä tämän temppu on kuitenkin vähentää prosessointitehoa ja verkkoliikenteen tämän saavuttamisessa. Aloitetaan yksinkertaisimmalla ratkaisuja ja parantaa sitä hitaasti muutaman toistojen.

Ensimmäinen menetelmä olisi yksinkertaisesti yhdistää työmme Control Server (via samba, FTP, tai vastaava) ja vedä alas uusimman version koodin. Ei kovin tehokas, mutta se tekee työtä. Lets parantaa että hieman, miten luomisesta rsync käsikirjoituksen ja käyttää sitä aina vaan? Vaihtoehtoisesti entä laskemisesta uusimmista käsittely komentosarjan kumoukselliseen tarkkailun koodin ensin ja sitten vain päivittämässä koodi jokaiseen run ( svn update )?

Lopulta voimme päätyä bash script (kutsutaan cron 10 minuutin välein), joka näyttää yhtä yksinkertaista kuin tämä:

  #! / Bin / sh
 jos ps ax | grep-v grep | grep php > / dev / null
 sitten
     echo "Job käsittelee parhaillaan, exit"
 muu
     echo "Työ ei ole käynnissä, käynnistä nyt"
     cd / polku / / työ / kopiointi
     svn update
     php yourJobProcessingScript.php
 fi 

Nyt voimme olla varmoja, että jokainen ajaa olemme ehdottomasti käytössä uusimmat koodia. Pyrimme varmistamaan tämän Päivitämme koodareiden joka kerta teemme aikavälillä ja vähentää verkkoliikennettä vain siirtämällä tiedoston eroja meidän verkkoon.

Minun esittelyn setup, tein juuri niin kuin yllä. Subversion on asennettu työni käsittelystä palvelimen ja olen yksinkertaisesti vetänyt viimeisin koodi "työntekijän" sivukonttori käyttää "svn update". Lisäsin myös versionumero tag minun käsittelyyn skripti, joka palautettiin tietokantaan osana tulosten tuottoa. Näin saatoin nähdä, että minun koodia päivittyy joka kerta olen kopioinut minun trunk osaksi työntekijän haara eli että olin ehdottomasti käynnissä uusin käsittelyn käsikirjoituksen.

Uusimman tiedon

Jos työsi käsittelyssä hyödynnetään tietolähteiden sitten jossain vaiheessa nämä tullaan päivitetään liian. Jos soitat tietolähteet erittäin harvoin perusta aiot hukuttaa verkon liikennettä heti kun työntekijät alkavat näkyä tuo kaiken pysähtynyt. Omasta ratkaisu, päätin, että haluaisin siirtää minun tietolähteiden ympäriinsä minun VM.

Pidä olet hevosia sinne! Entä jos tietolähteet ovat valtavat? No tämä on todellakin kyse siitä, kuinka paljon tietoa me puhumme? Se voi olla kustannustehokkaampaa asentaa ylimääräinen suurempi kiintolevy jokaiseen koneeseen kuin ostaa lisäkäsittely palvelimelle. Tämä on kysymys budjetin ja on jopa yrityksen päättää. Se ehkä että tietolähteet ovat niin suuria, että vain mahdottomalta pitää, että tietojen määrää oman työntekijän koneissa. Tällöin mitä tekisit? No voisimme tarkastella soittaa paikalliseen tiedot palvelimelle, mutta tämä saattaa aiheuttaa ongelmia verkkoon. Tällöin verkkoon, kuten tämä voi olla epärealistista sisällyttää toimistoympäristöön. Voi myös olla, että voit tutkia vaihtoehtoisia käynnissä strategioihin, esimerkiksi vain soittamalla työntekijöiden välillä kaksikymmentä ja 6am joka ilta ja / tai kuristus tietolähteen pyyntöjä.

Liikettä Sanotaan meidän tietolähteitä määrä 100GB tietoja. No kyllä ​​se on aika vähän tietoa liikkua verkon päivityksen. Miten voimme varmistaa, että meillä on uusin kopio tiedoista tässä tapauksessa? Rsync on mahdollista, mutta henkilökohtaisesti uskon ajamalla uusimman tietolähteen työsi käsittelystä palvelimen ja määrittää tämän mestari lisääntymään (ja mukavan pitkä bin log) voi olla tapa mennä:

replikointi Asettamalla kukin oman työntekijöille jopa niin orja työnohjausta palvelimen päivityksiä tietolähteisiin tulee valua alas hienosti oltava työntekijöiden ilman valtava kasvu verkon toimintaa (eli jos teet valtava tietojen päivityksen ja kaikki työntekijät potkia kerralla). Tämä on etuja rsync että et saa pitkän tauon ennen kunkin työn, kuten tietokannan päivityksistä, mysql daemon teidän työntekijä jatkuvasti päivittää tietoja, kun käsittely jatkuu.

Näin voin asettaa esittelyn palvelimelle. Voit määrittää replikoinnin seurasin oppaan MySQL päällä ( perustaminen replikointi ) ja 20 minuutissa sain inital työntekijä jäljittelyyn työnohjausta palvelimet aineisto. Kutakin ylimääräistä työntekijää replikointi asetukset ja prosessi toimi aina, kun VM oli kopioitu.

Yhteenveto

Tässä osassa artikkelissa olemme tarkastelleet, miten helppoa ja kivutonta se pitää koodimerkkien tasalla using rsync tai subverion (SVN), tehdä työtä ja vähentää verkkoliikennettä samalla time. Keskustelimme myös siitä, kuinka pitää tietolähteen tiedot ajan tasalla antamalla sen valua alas kullekin työntekijöitä. Näin me ala varmistaa, että me pysyä ansaintalogiikka ja tietoa toimistossamme verkkoon. Tulee tietenkin lukemattomia vaihtoehtoja hoitaa näitä tehtäviä, mutta tässä kaksi yksinkertaisia ​​esimerkkejä siitä, miten helppoa ratkaisua ei saada.

Seuraavalla kerralla

Vuoden viimeinen tämän sarjan osaa, osuvasti nimetty osa 5 , kerromme mielellämme käyttöön kyseisen järjestelmän. Minä tiivistää, mitä on oppinut ja mitä olen onnistunut luomaan.

Toimisto Grid Computing Virtual ympäristöissä - Osa 5

Kun perjantai 04 joulukuu 2009 23:03

Johdanto

Olen töissä yrityksessä, jossa voimme suorittaa useita eräajot käsittely miljoonia levyjä tietoja joka päivä, ja olen ajatellut viime aikoina kaikki koneet, istua joka päivä tekemättä mitään useita tunteja. Eikö olisi hyvä, jos voisimme käyttää näitä koneita vahvistamaan prosessointitehoa järjestelmiemme? Tämän joukon artikkeleita aion tarkastella mahdollisia hyötyjä työllistää toimiston verkon avulla virtualisoituja ympäristöissä.

Vuonna Osa 4 tutustuimme työkaluja, jotta voimme käytössäsi uusin versio koodin ja tietolähteet niin, että saadut tulokset ovat aina ajan tasalla uusimpien kaupallisten tietojen ja logiikkaa.

Ennen käyttöönottoa

Ennen kuin otat teidän verkkoon, jos on olemassa yksi asia mitä teet ja yksi asia vain se benchmark nykyinen järjestelmä! Ei ole väliä mitä kerrot kollegansa siitä, kuinka paljon ylimääräistä työtä järjestelmä tulee tehdä, ellei sinulla ole numeroita kuulen tämän teidän takeita ole mitään. Joten,

  • kuinka monta kirjaa voit käsitellä tällä hetkellä? Per Day? Tunnissa?
  • Kuinka kauan se yleensä kestää kääntyä työpaikka?
  • Kuinka paljon enemmän kapasiteettia sinulla on?

Mukana on myös muita kysymyksiä:

  • Jos käsittely palvelin (tai joku käsittely palvelimet) laskee miten se vaikuttaa ominaisuudet, aiotte rujo?
  • Mitä etuja sinulla toivoa / odottaa saavansa siitä sähköverkkojärjestelmään?
  • Ovatko konttorikoneiden pystyy käyttämään työpaikkoja?
  • Ovatko (tai voit työpaikkaa muuntaa) ja wrok tähän tyyliin käynnissä?

Viimeinen tärkeä asia on, että otat aikaa merkittäviä muutoksia näin. Päivitä koodimerkkien toimimaan käyttämällä uusia menetelmiä, Benchmark uudelleen. Mahdollisesti perusti oman käsittelyn palvelin käyttää virtuaalikoneen, kun kaikki jalostuksen palvelin vain olla toinen työntekijä (vain erittäin voimakas suhteellisen). Anna uusi prosessi asettua.

Käyttöönotto

Ehdotukseni olisi pop toimistoon yhden viikonlopun suorittaa kaikki asennukset ja asetukset. Tee tämä juuri ennen kahden viikon lomaa ja lähteä niin muiden köyhien kaveri käsittelemään seurauksia ... ehkä ei ...

Deployment tällainen järjestelmä on hidasta. Vaikka se on suhteellisen helppo asentaa tämä järjestelmä vaikuttaa koko toimiston infrastruktuuri (myös digitaalista yksi). Ensinnäkin rullaa ulos pari koneita kerrallaan, näyttö verkkoliikenteen, miten työntekijä isännät suorittaa päivittäinen perusteella. Saatat joutua muuttamaan työn määritykset vastauksena löytösi.

Kun järjestelmä on ratkaistu muutamalla koneet (sanotaan vaikka 10% kaikista toimistolaitteet, eli 5) pitää seuranta verkkoliikennettä ja pääkoneen performance. Seuraavaksi benchmark uudestaan, sinun pitäisi nyt käsitellä 33% enemmän työpaikkoja kuin ensimmäinen vertailukohtia. Tarkista tämä on niin, tai että olet ainakin tässä ballpark. Jos ei, tutkia, mitä tapahtuu ennen siirtymistä. Toista tätä sykliä kunnes onneksi on kaikki konttorikoneiden käynnissä tappamatta yksittäisen koneen suorituskykyä tai hionta verkkosi pysähtynyt.

Kaikkina aikoina pitää esikuva, vaikka kaikki käyttöönottoja on tehty. Katso miten uusi koodi päivityksiä vaikuttaa nopeudesta, tarkista kaikki työntekijät ovat raportointi ja käsittely työpaikkoja. Hitaasti (erittäin hitaasti) suurennettava työsi kokoonpanon saada kaiken irti työntekijöitä ja verkko.

Lopeta!

Entä jos haluat lopettaa työntekijöiden käydessä jonkin aikaa? Ne ovat kaikki siellä käynnissä palauttamiseksi, ja yrittävät parhaansa mukaan käsitellä tietoja kuin nälkäiset hyönteiset. Vastaus saattaa tuntua itsestään selvältä, mutta sen syytä lisätä vain jos sen huomiotta. Yksinkertaisesti muokata käsittely script exit (0) or die () tai muu selvitys tappaa käsittelyyn työtä. Tärkeä syy siihen, miksi pyrimme aina päivittää uusimpaan käsittelyyn käsikirjoitus ennen run!

Esittelyjärjestelmäsovellusten

Voidakseen kirjoittaa Tästä lyhyitä artikkeleita olen luonut hyvin pieni ruudukko osoittaa tekniikoita ja menetelmiä. Olen lukenut paljon artikkeleita, opetusohjelmia, ja käyttää erilaisia ​​työkaluja asentaa ja seurata, mitä oli tekeillä. Missään olen mennyt ulos ja tyydyttyneitä koko toimisto liikenteen ja enkä ole ollut käytössään vakituisen henkilöstön jäsenet PC kuinka isäntä tulokseen vaikuttivat.

Mielenilmaukseni järjestelmä oli erittäin nöyrä todellakin. Käytin säännöllisesti työpöydän perustettu työnohjausta palvelimelle. Tässä olin asentanut MySQL -palvelimen asennettu perustettu mestari lisääntymään, PHP , Â ja SVN kytkeytyvät toisiinsa Apache (yhteys kautta työntekijän VM).

Sitten luonut CentOS työntekijän koneen VirtualBox on 6 vuotta vanha Windows XP laptop. Olen setup aikataulun mukaiset tehtävät kopioinnin jälkeen VM koneeseen ja anna sen mennä.

Virtuaalikone perustettiin PHP, Subversion ja MySQL. Olen kassalla haara nimeltä "työntekijän" Oman työn hallinta palvelimet arkisto ja varmisti voitaisiin päivittää käyttämällä "svn update". Seuraavaksi setup MySQL orja ja tarkistanut, että tietoja on jäljitellä MySQL on työnohjausta palvelin alas työntekijälle VM. Kun kaikki tämän minä setup bash script ja cron työtä.

Minun käsittely script pohjimmiltaan meni pitkin viivoja (hyvin yksinkertaisia ​​asioita):

  • Lue ja kenttään
  • Lasketaan määrä vastaavia nimiä taulukko tietolähteen pidettiin VM
  • Lasketaan nimien kuin edellä, mutta jakamalla nimen tilat (esim. etunimi, keskellä, sukunimi)
  • Toistuva tämä prosessi 1,000 kertaa

Jokainen työ kesti noin 20 minuuttia juosta. Yhdessä vaiheessa olin avannut useita kopioita työntekijän VM ikkunoiden laptop ja katseli työpaikat tarkastetaan pois kunkin työntekijän IP-osoitteet. Tässä vaiheessa olen myös vahvistanut, että replikointi automaattisesti uudelleen.

Jättäminen kannettava tyhjäkäynnille johti työntekijä alkaa käsitellä työpaikkoja työnohjaukseen palvelimelle. Kun jatkat kannettavan käyttö oli viive noin 30-60 sekuntia, tämä on melkoisesti aikaa ja henkilöstön olisi tehtävä selväksi, että heidän kone voi pysähtyä hetkeksi palatessaan kone. Uudemmissa koneissa ei välttämättä ole tauon tätä pitkää. Hyöty määrän käsittelyn suorittaa näiden koneiden seisonta kaudet antaisivat enemmän kuin suuremmat toimihenkilöille odottaa lyhyen aikaa (esimerkiksi 1 minuutti) on ne saapuvat koneet aamu (olen usein odottamaan kauemmin että tätä Windows Defender päivitys tapahtuu) jos ne ovat tietoisia tästä (hyödyllinen aika napata aamulla kahvia!).

Kaiken kaikkiaan olen varma, että olen osoittanut teknologioita, joita voitaisiin käyttää luomaan tällaisen järjestelmän. Olen osoittanut, että tällainen järjestelmä tekee työtä (hyvin) pienimuotoista ja joitakin kokeiluja voidaan skaalata jopa hyödyntää resursseja toimiston koneita. Jos en pääse pisteen Näin Olisin erittäin kiinnostunut tietämään / nähdä, kun joku muu tekee.

Päätelmät / Arviointi

Seuraava selvä askel olisi itse saada reaalimaailman esimerkki ja alkaa ottaa käyttöön järjestelmä, kuten tällä alueella toimistoympäristössä ja katso mitä tapahtuu. Kysymysten liiketoiminnan sitoutumaan tähän ilman polkua liekehtivän yritys todistaa teknologian ja tehokkuuden voi olla hieman vaikeaa. Grid / Distributed Computing on erittäin suosittu on joissakin piireissä ja on joitakin suuria sovelluksia (BIONC, SETI @ Home, Folding @ Home jne.). En kuitenkaan löydä pienemmässä mittakaavassa ja yksinkertainen järjestelmä näin hauissa jotka voitaisiin kaulitaan sisällä toimistoympäristössä.

Loin periaatteessa ilmainen, joka käyttää enimmäkseen avoimen lähdekoodin ohjelmistoja ja työkaluja lähes mihin tahansa toimistoon. Tekniikoita käytännössä osoitettu ja osoittaa suorittaa ja toimisi odotetusti. Toivottavasti on osoittaa, että ei ole paljon työtä ja hyvin yksinkertainen asennus, voit käyttää toimisto grid-järjestelmä on tehokas, halpa, Â ja skaalautuva kaikki samaan aikaan.

Kun järjestelmä on toiminnassa ei melkein ole loppua määrän räätälöinnin ja parannuksia voit tehdä. Esimerkiksi tilastot / esikuva voidaan helposti lisätä jossa arvosta tällaisen järjestelmän joka päivä. Uusia koneita voidaan lisätä nopeasti ja helposti, kun ne saapuvat päivitykset nykyisten laitteiden toimintaa vahvistamalla laskentatehoa.

Toivottavasti olet nauttinut lukea tämä artikkelisarja ja antaa teille ajattelemisen aihetta koskeva käynnissä toimiston verkkoon. Ratkaisu esitetään tässä ei välttämättä toimi kaikissa tilanteissa, vaan olisi voitava mukauttaa, jotta voit saada tietojenkäsittelyyn tehdä käyttämällä oman ratkaisun.

Voit vapaasti lähettää minulle kommentteja, korjauksia tai parannuksia ja teen parhaani pitää tämän artikkelin päivitetään vastaamaan.













Panorama Theme by Themocracy

5 vierailijaa nyt
4 vierasta, 1 vastaan, 0 jäsentä
Max kävijöitä tänään: 48 klo 02:40 am UTC
Tässä kuussa: 56 at 25-04-2012 08:41 am UTC
Tänä vuonna: 69 at 27-02-2012 09:56 am UTC
Kaikki aika: 130 at 28-03-2011 22:40 UTC