Luokka: Grid Computing

Office Grid Computing käyttäen virtuaaliympäristöjen - Osa 4

By , perjantai 04 joulukuu 2009 23:59

Johdanto

Olen töissä yrityksessä, jossa voimme suorittaa useita erän työpaikkoja käsittely miljoonia levyjä tietojen joka päivä ja olen ajatellut viime aikoina kaikki koneet, jotka istuvat ympäri joka päivä tekemättä mitään useita tunteja. Eikö olisi hyvä, jos voisimme käyttää näitä koneita vahvistamaan prosessorin tehosta järjestelmiemme? Tämän kokoelman artikkeleita olen menossa katsomaan mahdolliset hyödyt työllistää toimiston verkkoon käyttäen virtualisoidusta ympäristöissä.

Vuonna Osa 3 loimme virtuaalinen jenkäsittelykoneeseen ja perustaa Windows-koneissa tulee idle-aikaisia ​​työntekijöitä.

Running uusin koodi

Väistämättä Kun olet luonut työntekijöiden ansaintalogiikka muuttuu, bugeja löytyy, nopeammin tehokkaampia koodi valmistetaan siten jättäisit työntekijät istuivat käsittelee tietoja käyttäen vanhaa haiseva koodia . Kuinka sitten voimme varmistaa, että olemme aina uusinta ja paras versio meidän käsittely skriptejä?

On olemassa muutamia hyvin helppoja yksinkertaisia ​​tapoja voisimme tehdä tämän temppu on kuitenkin vähentää laskentatehon ja verkkoliikenteen tämän saavuttamisessa. Lets aloittaa yksinkertaisin ratkaisuja ja parantaa sitä hitaasti muutaman toistojen.

Ensimmäinen tapa olisi yksinkertaisesti yhdistää työmme Control Server (via samba, FTP, tai vastaava) ja vedä alas uusimman version koodi. Ei kovin tehokasta, mutta se tekee työtä. Lets parantaa että hieman, miten luomista rsync käsikirjoituksen ja käyttää sitä aina vaan? Vaihtoehtoisesti Entä laittamalla uusimman käsittely komentosarjan Subversion tarkkailun koodi ensin ja sitten vain Päivitämme koodi jokaisen ajon ( svn update )?

Lopulta 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 on parhaillaan käsittelyssä, poistuminen"
 muu
     echo "työ ei ole käynnissä, käynnistä nyt"
     cd / polku / / työ / kopio
     svn update
     PHP yourJobProcessingScript.php
 fi 

Nyt voimme olla varmoja, että jokainen ajaa olemme ehdottomasti käynnissä uusin koodi. Olemme varmistaa tätä Päivitämme koodareiden joka kerta Teemme ajaa ja vähentää verkkoliikennettä vain siirtämällä tiedosto eroja meidän verkkoon.

Minun esittelyn setup, tein juuri niin kuin edellä. Subversion on asennettu minun työnkäsittely palvelin ja minä yksinkertaisesti veti uusin koodi työntekijän haara käyttää "svn update". Lisäsin myös versionumero tag minun käsittelyyn skripti joka palautettiin tietokantaan osana tulokset palata. Näin saatoin nähdä, että minun koodi oltiin päivitetään aina Kopioin minun trunk osaksi työntekijä haara eli että olin ehdottomasti käynnissä uusin käsittelyn käsikirjoituksen.

Käyttämällä uusinta tietoa

Jos työnkäsittely käyttää tietolähteitä sitten jossain vaiheessa nämä tullaan päivitetään liian. Ellet soita tietolähteet erittäin harvoin perusteella olet menossa tulva verkon kanssa liikennettä heti kun työntekijöitä alkaa tuo kaiken pysähdyksissä. Omasta ratkaisu päätin että haluaisin siirtää Omat tietolähteet ympäriinsä minun VM.

Pidä sinä hevosta siellä! Entä jos tietolähteitä ovat valtavat? No tämä oikeastaan ​​on kyse, kuinka paljon tietoa puhumme? Se voi olla kustannustehokkaampaa asentaa uusi suurempi kiintolevy jokaiseen koneeseen kuin ostaa lisäprosessoinnista palvelimelle. Tämä on kysymys budjetin ja on jopa liiketoiminnan päättää. Se ehkä, että tietolähteet ovat niin suuria, että sen vain mahdotonta pitää, että tietojen määrää oman työntekijän koneet. Tällöin mitä tekisit? No voisimme tarkastella soittamalla paikalliset tiedot palvelimelle, mutta tämä saattaa aiheuttaa ongelmia verkon kanssa. Tällöin verkkoon kuten tämä voi tulla epärealistista sisällyttää toimistoympäristöön. On myös mahdollista, että voit tutkia vaihtoehtoisia käynnissä strategioihin, esimerkiksi vain soittamalla työntekijöiden välillä kaksikymmentä ja 6am joka ilta ja / tai kuristusta tietolähteen pyyntöjä.

Liikettä sanotaan vaikka meidän tietolähteitä määrä 100GB tietoa. No kyllä ​​se on melko vähän tietoa liikkua verkon päivityksen. Miten voimme varmistaa, että meillä on viimeisimmät kopion tiedoista tässä tapauksessa? Rsync on mahdollista, mutta henkilökohtaisesti uskon ajamalla uusimman tietolähteen työsi käsittely-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öiden ylös kuin orja työn hallintaa palvelimen päivityksiä tietolähteet ovat valuvat kauniisti oltava työntekijöiden ilman valtava kasvu verkon toimintaa (eli jos teet valtava tietojen päivityksen ja kaikki työntekijät potku kerralla). Tämä on etuja rsync siinä et saa pitkän tauon ennen kunkin työn, kuten tietokannan päivityksistä, MySQL daemon teidän työntekijä päivitämme sen tietoja, kun käsittely jatkuu.

Näin voin asettaa esittelyn palvelimelle. Perustaa replikointi seurasin oppaan MySQL-sivuston ( perustaminen replikointi ) ja 20 minuutissa, sain inital työntekijä jäljittelevät työnohjaukseen palvelimet aineisto. Jokaista ylimääräistä työntekijää replikointi asetukset ja prosessi toiminut joka kerta kun VM oli kopioitu.

Yhteenveto

Tässä osassa artikkelissa olemme tarkastelleet, kuinka helppo ja kivuton se on 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, jotta se voi valua alas kukin oman työntekijöitä. Niinpä me ala varmistaa, että me pysyä ansaintalogiikka ja tietoa toimistossamme verkkoon. Luultavasti käytäisiin lukemattomia vaihtoehtoja näiden tehtävien suorittamisesta, mutta tässä oli kaksi yksinkertaista esimerkkejä siitä, miten helppoa ratkaisua löytää.

Seuraavalla kerralla

Lopullisessa tämän sarjan osaa, osuvasti nimetty osa 5 , tulemme keskustelemaan käyttöön tätä järjestelmää. Minä yhteenvedon siitä, mitä on opittu ja mitä olen onnistunut luomaan.

Office Grid Computing käyttäen virtuaaliympäristöjen - Osa 1

By , perjantai 04 joulukuu 2009 23:23

Johdanto

Olen töissä yrityksessä, jossa voimme suorittaa useita erän työpaikkoja käsittely miljoonia levyjä tietojen joka päivä ja olen ajatellut viime aikoina kaikki koneet, jotka istuvat ympäri joka päivä tekemättä mitään useita tunteja. Eikö olisi hyvä, jos voisimme käyttää näitä koneita vahvistamaan prosessorin tehosta järjestelmiemme? Tämän kokoelman artikkeleita olen menossa katsomaan mahdolliset hyödyt työllistää toimiston verkkoon käyttäen virtualisoidusta ympäristöissä.

Koska PHP kehittäjä aion käyttää työkaluja, käytän joka päivä eli Linux, mySQL , PHP, VirtualBox ja Subversion (SVN). Kuitenkin toivon, että tämä opas sopeutua muita kieliä ja tekniikoita yhtä hyvin.

Ratkaisu annan on erittäin perustuu löyhästi tyyppinen käsittely olimme tarve saavuttaa tämä ei kuitenkaan ole olla totta koko artikkeli kuin minä muuttaa asioita yksinkertaisuus, tai tuottaa enemmän mielenkiintoisia käytön skenaarioita.

Nämä virtualisoituja ympäristöjä toimii Windows-koneissa, koska tämä on mitä suurin toimistojen ajaa. Käsittelyä että toimiston koneet eivät saisi häiritä henkilöstöä käyttäen näitä koneita, pitäisi vaadi huoltoa koneen äärellä, ja helposti käyttöönotettavia uusia koneita niiden tullessa saataville. Myös uusia virtuaalikoneita tulee vaadi lisäasetuksia koska tämä vähentää huomattavasti skaalautuvuutta ja helppous, jolla verkkoon voidaan laajentaa.

Miksi ottaa käyttöön Office Computing Grid?

Ensinnäkin Saatat ajatella, miksi ei vain käyttää cloud computing resursseja, kuten Amazonin EC2 alustan ? No syitä voi olla monia, esimerkiksi:

  • Et antaa tiettyjä tietoja cloud computing ympäristö
  • Et voi laittaa tietyt tiedot cloud computing ympäristön oikeudellisista syistä (esim. tiedot maasta poistuminen), mahdollisesti oikeudellisista syistä, esim. NHS kirjaa.
  • Haluat pitää jalostusyksiköt lähellä ja täysin hallita laitteisto liian
  • Sinulla ei ole hankerahoista ajaa pilvi tapauksissa
  • Toimistossasi ei ole yhteyttä Internetiin ja siksi sen ole mahdollista käyttää pilvi resurssi
  • Et halua sade, pilvet viittaavat sade, joten sinun pitää hyvin poissa

Olen varma, listaa voisi jatkaa, mutta mielestäni se riittää nyt.

Edut Office Computing Grid

No, antaa tehdä joitakin matematiikan (ja tosi fysiikan tyyliin Tehkäämme joitakin rajuja oletuksia). Kuvittele olet iso lihaksikas käsittely palvelin käyttää 100 tehtävää päivässä. Omassa toimistossa sinulla on 50 konetta, jotka ovat käyttämättömänä 16 tuntia päivässä, jokainen näistä koneista on 10% niin voimakas kuin teidän lihaksikas käsittely katkaista. (Kaikki tulokset täällä on pyöristetty aliarvioivat enemmän tehoa).

Joten, 1 kone * 10% teholla * 2 / 3 kertaa = 0,067 eli 1 työpöydän käsittely joutoajan voisi käsitellä 6 täyttä tehtävää päivässä.

Jos nyt mittakaavassa tämä jopa kestää 15 idle työasemista prosessi niin monta tehtävää päivässä pääasiakirjana käsittely palvelin.

Joten meidän teeskennellä toimistossa 50 konetta voisimme kasvattaa laskentatehoa 1 palvelin jopa 4 täyden käsittelyn palvelimia, tai voisimme olla jalostus 400 työpaikkaa päivässä sijasta 100.

Huomaa, ilman investointeja uusia laitteita sinun yhtiö on juuri lisännyt sen erän jalostuskapasiteettia 4 kertaa! Mahdollisesti aiot lisätä virrankulutusta mutta toimiston tiloihin Olen ollut koneet ovat yleensä jää yöksi joka tapauksessa, joten voisitte nähdä tämä vihreä aloite.

Muita etuja myös sitä, että investointeja uusiin (tai päivitetty) käsittely palvelimia voi viivästyä, jos toimistokoneet ovat riittävät ja että sinua parantamaan valta teidän konttorikoneiden toimistosi verkkoon voimistuu automaattisesti.

Technologies

Mitä tarvitset? (Tai oikeammin mitä käytin):

  • Idle toimistolaitteet (minun tapauksessani vara vanha Windows XP laptop)
  • VirtualBox (tai toinen virtualisoinnin asiakasohjelmisto)
  • Virtuaalikone PHP, mySQL running käynnissä kaataa OS, Soitan nämä minun Limp palvelimet:)
  • Työpaikat juosta
  • Job palvelin (voi olla toinen virtuaalikone jonnekin)

Tyypillisiä Työpaikat

Tyyppisiä työpaikkoja että tämä järjestelmä on suunniteltu toimimaan seuraavasti:

  • Järjestelmän saa luettelon tiedot, joihin meidän täytyy sovittaa ja palauttaa tulokset
  • Vastaavat on tarkistettava / etsimällä useita (melko staattinen) tietolähteet
  • Tulokset tietolähteistä saattaa edellyttää lisää validointi, yhdistäminen, tarkistaminen täydentäviä tietolähteitä vastauksena tuloksia
  • Tiedot palautetaan yhteensopivat kirjaa, täysin validoitu ja käsitelty
  • Jokainen tietue sisällä työ on riippumaton muusta

Joten periaatteessa me tarkastelemme käynnissä työpaikkoja, jotka edellyttävät sekoitus tietokanta haut ja jotkut numero murskaukseen, varsin tyypillinen skenaario liiketoimintaympäristössä.

Grid ratkaisut eivät ole vain edullista käsittelyä työpaikkoja tätä tyyppiä. Periaatteessa prosessia, joka voidaan jakaa itsenäisiä yksiköitä voidaan käyttää rinnakkain. Katso tästä Wikipediasta esimerkkejä ja lisätietoja: Grid , mutta pari tunnetuimpia esimerkkejä ovat Seti @ Home ja BIONC . On puitteita käynnissä Computing verkkoihin, ja nämä ovat hyvin arvoinen.

Mitä voimme saavuttaa?

Loppuun mennessä näiden artiklojen toivon mukaan käyttöönottokustannukset toimiston verkkoon ei tarvitse olla valtavan kallista tai aikaavievää. Aion keskustella:

  • Asettaminen työn ohjausjärjestelmä, työn kokoonpano
  • Luominen asianmukainen käsittely virtuaalikoneen
  • Miten setup järjestelmä windows koneella
  • Varmistaminen käytät uusinta koodia ja tietoja
  • Käyttöönotto ja benchmarking
  • Katse tulevaisuuteen

Tulen rakennus (ok rakensin, niin kirjoitin tämän) esimerkkisovellus testata käsitteitä paikalliselle koneelle Windows XP ja minun "GridMachine" virtuaalikone. Työni Control Server tulee olemaan minun tärkein kone, joka toimii Fedora 11 .

Tämä ei missään nimessä tarkoita, osoittaa täysin toimiva vankka järjestelmä, sen tarkoitti enemmän esittelyä ja keskustelua siitä, että nämä asiat voidaan toteuttaa kohtuullisen lyhyessä ajassa ja pienin kustannuksin. Voit vapaasti lähettää minulle kommentteja, korjauksia tai parannuksia ja teen parhaani pitää tämän artikkelin päivitetään vastaamaan.

Seuraavalla kerralla

Vuonna osa 2 Aloitan tarkastelemalla työn valvonta ja pohditaan, miten työpaikkoja tulisi määrittää, jotta saavutettaisiin mahdollisimman suuren osan käsittelyn ja samalla varmistaa, että jokainen työpaikka on käsiteltävä ilman epäonnistua.

Office Grid Computing käyttäen virtuaaliympäristöjen - Osa 2

By , perjantai 04 joulukuu 2009 23:23

Johdanto

Olen töissä yrityksessä, jossa voimme suorittaa useita erän työpaikkoja käsittely miljoonia levyjä tietojen joka päivä ja olen ajatellut viime aikoina kaikki koneet, jotka istuvat ympäri joka päivä tekemättä mitään useita tunteja. Eikö olisi hyvä, jos voisimme käyttää näitä koneita vahvistamaan prosessorin tehosta järjestelmiemme? Tämän kokoelman artikkeleita olen menossa katsomaan mahdolliset hyödyt työllistää toimiston verkkoon käyttäen virtualisoidusta ympäristöissä.

Vuonna Osa 1 annoin yleiskuvan järjestelmästä ja teknologiat Aion käyttää sekä keskusteltiin joitakin mahdollisia syitä miksi haluaisi luoda toimiston verkkoon.

Työn hallintaa

Jos aiot olla käynnissä työpaikkoja sitten olet menossa on jotenkin hallita niitä. Työsi ohjausjärjestelmä (työssäsi palvelin) täytyy olla todella hyvin mietittyjä ennen kuin edes yrität suorittaa toimiston verkkoon. Joten ensinnäkin, mitä tehtäviä töitä valvontajärjestelmä:

  • Hand out työpaikkoja pyynnöstä työntekijöiden
  • Kerro työntekijöiden millaista työpaikkaa juosta
  • Seuraa työpaikkaa
  • Varmista, että työpaikat ovat vain ajaa kerran
  • Tarjoa työtietoja työntekijöille, tai ainakin kertoa heille mistä sitä saa

Järjestelmä on myös olla laajennettavissa, ratkaisu, joka toimii nyt samaan koteloon voidaan pidentää suorittaa useita erilaisia ​​työpaikkoja kuin liike näkee arvokkaaksi verkkoon ratkaisu. Esimerkiksi työpaikkoja voi saada painopisteitä, enemmän kuin yksi työpaikka tyyppi voi olla (ja siis useita koodi emästen), lopulta saatat jopa käyttää useita erilaisia ​​työntekijä koneita, jotka on optimoitu kunkin työpaikan tyyppi (vaikka tilanne onkin siirtynyt pois "geneerinen työntekijä "idea). Pyri aina ajatella tulevaisuutta kehitettäessä järjestelmiä, lyhyen aikavälin visio voi johtaa pitkällä aikavälillä turhautumista ja lisääntynyt kehitysaikaa.

Job Server

Aiomme tarve jonnekin ohjata työpaikkojamme, tämä olisi vain järjestelmän teidän ruudukko, joka on kiinteä Resource Locator, olla että IP-osoite, koneen nimi, osoite (käyttämällä sisäisiä DNS), jne. Tämä johtuu siitä työntekijöiden täytyy tietää, mistä etsiä työtä, työntekijöitä täytyy löytää työpaikka ohjausjärjestelmä (ei työtä ohjausjärjestelmä löytää työntekijöitä).

Työ palvelin itsessään ei todellakaan ole monimutkainen tehtävä (vuonna perusjärjestelmän muutenkin), se tarvitsee tallentaa luettelon työpaikkoja, ojentaa työpaikkoja, saada tuloksia, ja myöhemmin tallentaa ne myöhempää hakua varten. Miten nämä osat (kuten "ojentaa työpaikkoja") on määritelty voi olla hyvin yksinkertainen. Myöhemmin voimme laajentaa järjestelmä koskemaan hallintaliittymä lisätä, muokata, poistaa, keskeyttää työpaikkoja, mutta tämä on kuin tämä harjoitus.

Ei ole mitään syytä sitten, että työsi Palvelinta ei virtuaalikoneen käynnissä omassa pääasiallinen käsittely palvelin kunhan se ei valua liikaa resursseja siitä. Työ-palvelin kuitenkin tarvitsee korkeaa käytettävyyttä, jos se menee alas perjantai-iltana aiot menettää koko viikonlopun käsittely, mahdollisesti maksaa sinulle pari viikkoa arvosta käsittelyaika (verrattuna teidän tärkein käsittelyyn palvelin yksin) . Haluat ehkä harkitsemaan työsi palvelimen kuormitus tasapainoisen ympäristön korkean käytettävyyden.

Basic Setup

Perusasetukset työmme palvelin koostuu mitä Soitan eräs Limp palvelimia (eli Li Nux, m ySql, P HP). Koodi käynnissä thea työntekijät todella selvittää, mitä työpaikkoja se voi hoitaa vuorovaikutuksessa työpaikkojen ohjausjärjestelmä tietokantoja. Myöhemmin voisimme luoda verkkopalvelusta ja todella jakaa työpaikkoja sen sijaan työntekijät tekevät kovaa työtä itse, mutta nyt jatkamme käyttäen KISS periaate (Keep It Simple, Stupid!).

Joten, avulla muodostaa kolme mySQL taulukoita käsitellä työpaikkoja. Näitä ovat `työpaikkoja`, `jobRecords`, ja `jobResults`.

työpaikkoja taulukko Tässä olen käyttäen SQL Buddy erittäin pieni vaihtoehto phpMyAdmin vain siksi sen helpompi asentaa CentOS (ja muut näkevät: 10 Great vaihtoehtoja phpMyAdmin )

Tämä taulukko sisältää 5 yksinkertaisia ​​kenttiä,

  • id: tunnistaa työpaikka
  • Nimi: Voisiko olla asiakasnumerosi, tai useita muita tunnisteita
  • Tila: Sinun täytyy tietää, missä työ on, esim.
    • 0: Ei aloitettu
    • 1: Noudetaan
    • 2: Päättyneet
  • started_by: Kuka alkoi tehdä työtä? Tämä ei ole täysin tarvita, mutta on hyvä olla. Haluan ehdottaa seuranta työntekijöiden IP-osoitteiden verkko
  • started_at: Milloin työntekijä aloittaa työn? Seuraamalla työpaikkoja, joita ei ole saatu päätökseen X määrä aikaa tiedämme, että meidän poimia työtä jälleen ja aloittaa käsiteltäväksi toisen työntekijän. Työntekijät voisivat lopettaa käsittely / go offline tehdä useita syitä, sähkökatko, Crash, verkko menetys jne.

On helppo miten tämä taulukko voitaisiin laajentaa muutamalla lisäkenttiä jotta Tilastot Seuranta, lopetusaika sarakkeesta, miten kauan kirjoittaminen vei, laskuri, kuinka monta työntekijää piristyi työ (ilmeisesti tämä on yleensä 1), työ ensisijaisesti luettelo voi mennä ja. Monimutkaisemmissa työpaikka skenaarioita olisi mahdollista määrittää, kuinka paljon muistia työntekijällä olisi pääsy (ja siksi Käytä vain sopivia työntekijöitä), tai edes minkälainen työntekijä olisi tarpeen.

Lets lisätään muutama esimerkki työpaikkoja:

Esimerkiksi työpaikkoja

Seuraava taulukko taas on melko helppo ymmärtää, nämä ovat meidän tehtävämme kirjaa. Ne liittyvät tärkeimmät työpaikat taulukon sarakkeessa `jobs_id`. Muodostavat tämän taulukon riippuu erittäin paljon tietoa, että sinun täytyy toimittaa oltava työntekijöiden, Tehkäämme hyvin yksinkertainen esimerkki, jossa meillä on neljä saraketta:

  • id: tunnus ennätys
  • nimi: Henkilön nimi
  • Osoite: Henkilön osoite
  • jobs_id: Job ID, että tämä levy on linkitetty

Kolmas ja viimeinen taulukko koostuu Hakutulokset, se on pitkälti sama muodostavat kuin tietomme pöytä, ja lisäksi joidenkin sarakkeiden voisi olla osa kirjanpidon taulukossa:

  • job_record_id: Linkki tuloksen työ pöytä
  • tulos: tulostiedot

... Ja siinä kaikki mitä tarvitset työnohjaukseen! (Vaikkakin hyvin perustasolla) Omassa tapauksessani olen todennut toiseen pöytään, jossa tietoni käsitellä sijaitsi, mutta tämä voisi yhtä hyvin jo tiedosto, parametrit suorittaa simulointi koodia, you name it.

Valinta työpaikka

Kuten aiemmin on todettu, työntekijät teemme työn hallintaan meille nyt, niin kaikki meidän todella on löytää työpaikka, joka tarvitsee käsittelyä ja saada tietoa. Miten teemme tämän? No pick työtämme valintaperusteet ja etsivät töitä, SQL tein seuraavat:

  1. Ota kaikki työpaikat, joita ei ole merkitty täydellisiä vaan meidän työntekijä ja muuta ne (korvaa __ME__ kanssa tunniste, helpointa olisi IP-osoite):
      UPDATE `työpaikkoja` SET `status` = 0, kun `tila` = 1 ja `started_by` = __ME__; 
  2. Käyttämällä meidän tehtävämme valintaperusteet, valitse työ ja kerro valvontajärjestelmää, että tämä työntekijä käsittelee sitä:
      UPDATE `työpaikkoja` SET `tila` = 1, `started_by` = __ME__, `started_at` = NOW () WHERE `status` = 0 tai
     (`Status` = 1 ja `started_at`> DATE_SUB (NYT (), intervalli X tunnissa)) ORDER BY `id` ASC; 

    Tarttumalla työpaikkoja, joita ei palauteta tuloksia X ajassa voimme varmistaa, että kaikki työpaikat ajetaan, jos työntekijä kaatuu tai menee luvattomalla lomalla.

  3. Seuraava napata työpaikkoja yksityiskohdat jälkeen kirjaa itselleen:
      SELECT * FROM `työpaikkoja 'Missä` started_by `= __ME__ LIMIT 1;
     SELECT * FROM `job_records 'Missä` id `= __JOBID__; 

Päätyttyä työpaikka lisäämme tuloksemme kirjaa ja merkitä työpaikan täydellinen. Muista kuin työpaikkoja voi keskeyttää / jatkaa milloin tahansa sallia tietty kestävyydestä käsikirjoitus. Saattaa olla, että tehtävä keskeyttää puolivälissä päivittää työn ohjausjärjestelmä, niin tarkistaa Tietueiden määrän työtä ja tulosten määrä tallentaa ne takaisin työn valvontajärjestelmää olisi viisasta.

Lisäksi vaikka tämä osoittaa, miten työpaikkoja voidaan valita ja hallita SQL-kyselyn runko sinun pitäisi todellakin olla hahmotuskykyyn oman työn hallintaa niin, että jos päätät siirtyä käyttämään verkkopalvelu, tiedoston perusteella järjestelmä, XML , tai muita järjestelmien määrää se ei vaikuta koodin yläpuolelle.

Job Configuration

Seuraava huomioon otettava näkökohta on työn koon ja kokoonpanon. Pelaamalla työpaikkojen kokoonpano voimme löytää hyvä tasapaino nopeuden, prosessi replikointi ja luotettavuus. Ota pari OFA skenaarioita:

  1. Työpaikat ottaa 1 päivä jokainen ajaa: Tämä tarkoittaa, että työntekijät tarvitsevat 15 päivää aikaa käsitellä kunkin työn (muista 10% valtaa 2/3rds ajasta). Tämä ei selvästikään ole viisas kokoonpano, työsi koko on aivan liian iso! Se veisi ainakin kaksinkertainen aika saada suorittaa työ tulisi ensimmäinen työntekijä mennä luvattomalla lomalla (aika poimia että se ei ole palannut tulos plus jälleenkäsittelyä aikaa). Ihanteellisessa haluat olla vähintään yksi täysi työ helposti tyhjentää jokaisen pitkään käyttämättömänä ajan, että tapa pidät työpaikkoja tikittää yli ja pahimmillaan tapauksessa työ kestäisi kaksi päivää prosessi pitäisi ensin mennä puuttuu.
  2. Työpaikat kestää 1 minuutti juosta: Tämä tarkoittaa, että työntekijät kestää noin 15 minuuttia juosta jokaisen työtä. Vaikka tämä voi aluksi tuntua ihanteellinen, saat lisätyötä käsittely lounasaikaan, kahvitauot, kokoukset jne. Tässä tilanteessa asettaa paineita muille alueille järjestelmää ja esittelee omat ongelmansa. Esimerkiksi ensinnäkin sinun setup / käsittelyaika suhde on menossa alas, siis menettää järjestelmän tehokkuutta. Verkko tulee olemaan jatkuvasti streaming työpaikka tietoja eri työntekijöiden turhauttavaa henkilöstölle Dong jokapäiväisessä työssä. Olet myös menossa kohdistuu enemmän rasitusta työsi käsittely palvelimen on jaella paljon ja paljon pieniä teoksia säännöllisesti. Lopuksi, tässä tilanteessa, jos työsi palvelin menee alas aiot luoda valtava takaisin lokin keskeneräisiä työtä taas isompi työpaikkoja voisi jatkamisen käsittelyä autuaan tietämättömiä siitä, että työpaikka palvelin oli vaikeuksia.

Todellisuudessa ei tule olemaan yksi ideaalinen liitynnät sähköverkkoon setup, paljon riippuu käytettävissä olevista resursseista, kaikenlainen työssä, työn läpimenoaika vaatimukset, verkkotoiminnot, ja niin edelleen. Kuitenkin muutamia ohjeita olisi:

  • Koko työpaikkoja jotta jokainen työntekijä voi saada läpi ainakin 3-4 työpaikkaa ajan 15 tuntia (pisin todennäköisesti idle ajan)
  • Pelaa työn koko, niin että asennuksen aikana tulee melko merkityksettömiä verrattuna käsittelyaika (pitäen mielessä edellä kohta).
  • Jos työ ei täydellinen kaksinkertainen määrä aikaa (ehkä vähemmän) oletat se täyttää se olettaa, että sen mennyt luvattomalla lomalla ja aloitamme sen toisella työntekijällä. Tämä tarkoittaa, saatat joutua odottamaan jopa kolme kertaa normaalia pituus työtä sen loppuun (mahdollisesti pidempään, jos myöhemmin työ epäonnistuu). Haluat ehkä vähentää tällä kertaa, mutta varo vähentää sitä liikaa, sillä saatat alkaa päällekkäistä käsittelyä tehtäviä säännöllisesti.
  • Jobs olisi oltava riippumaton ulkopuolella vaatimuksia mahdollisimman paljon. Työ-palvelin, esimerkiksi vain ottaa yhteyttä alussa ja lopussa jokainen työpaikka.
  • Eivät kyllästy verkkoon, tällä on kaksi kielteistä vaikutusta, sinun päivällä henkilökunta löytävät käyttää verkkoa turhauttavaa ja ongelmat voivat olla kokenut liitännät ajoitus ulos ongelma vain pahenee kun skaalata ruudukon.
  • Varmista työpaikkoja voi ajaa oman työntekijöille. Jos työpaikkaa liian paljon muistia tai levytilaa intensiivisiä työpaikkoja alkaa keskenmenon ja ainoa asia, jonka huomaat on pisara työpaikkojen määrä käsitellä ilman varsinaista syytä, miksi.

Esittäessään tulokset työttömäksi

Antaessaan tulokset työ on tärkeää tarkistaa, että tulokset eivät ole esittäneet toinen työntekijä, varsinkin jos nykyinen työntekijä on ollut lepotilassa jonkin aikaa.

Kun tuloksia jätettäessä että tulosten määrä vastaa tietueiden määrä sisällä työtä.

Kuten aiemmin on todettu, ja ei voi olla yli korosti, rakentaa vikasietoisuus osaksi työpaikan hakuun ja tulosten toimittamisesta. Työntekijät voivat (ja mitä todennäköisimmin) menee lepotilaan kaikkein hankalaa kertaa ja tämä on otettava huomioon. Myös jälleen hahmotuskykyyn pois hakutuloksia jättämisestä auttavat hempää muutoksia työsi ohjausjärjestelmä paljon helpompi käsitellä.

Yhteenveto

Tässä section olemme tarkastelleet mitä työnohjaukseen palvelin pitää tehdä ja miten saada hyvin yksinkertainen järjestelmä perustetaan. Keskustelimme miten hakea Työn valvontajärjestelmä ja miten parhaiten määrittää työpaikkoja saada eniten meidän oman toimiston verkkoon. Lopeta, kohta tai kaksi esittäessään tulokset takaisin työ Control Server esiteltiin.

  • Työn hallintaa palvelimen kautta työpaikkoja ja varmistaa, että kaikki yksiköt ovat valmiiksi
  • Abstrahoimalla työsi valitse / tulosten esittämisen voimme muuttaa teknologia Control Server ilman suurempia ongelmia
  • Määritä työpaikkoja varmistamaan, että ne ovat ajaa nopeasti ja tehokkaasti ilman ottaa liian paljon paineita verkon infrastruktuurin, ja tekemättä päällekkäistä käsittelyä tehtäviä säännöllisesti.
  • Varmista, että olet rakentaa vikasietoisuutta ja virhe checking teidän rutiinit, työntekijät voivat keskeyttää ja jatkaa ja kaikkein hankalaa kertaa. Muista tarkistaa, jos tuloksia on jo toimitettu toinen työntekijä.

Seuraavalla kerralla

Vuonna Osa 3 luomme virtuaalinen jenkäsittelykoneeseen ja perustamme oman Windows-koneissa tulee idle-aikaisia ​​työntekijöitä.

Office Grid Computing käyttäen virtuaaliympäristöjen - Osa 5

By , perjantai 04 joulukuu 2009 23:03

Johdanto

Olen töissä yrityksessä, jossa voimme suorittaa useita erän työpaikkoja käsittely miljoonia levyjä tietojen joka päivä ja olen ajatellut viime aikoina kaikki koneet, jotka istuvat ympäri joka päivä tekemättä mitään useita tunteja. Eikö olisi hyvä, jos voisimme käyttää näitä koneita vahvistamaan prosessorin tehosta järjestelmiemme? Tämän kokoelman artikkeleita olen menossa katsomaan mahdolliset hyödyt työllistää toimiston verkkoon käyttäen virtualisoidusta ympäristöissä.

Vuonna Osa 4 katselimme työkaluja, jotta olemme käytössä uusin versio koodi ja tietolähteet niin, että saadut tulokset ovat aina ajan tasalla uusimmista Liikeneuvonta ja logiikkaa.

Ennen käyttöönottoa

Ennen kuin otat teidän verkkoon, jos on olemassa yksi asia sinun ja yksi asia yksin se benchmark nykyinen järjestelmä! Ei ole väliä mitä kerrot kollegansa, kuinka paljon ylimääräistä työtä järjestelmän aikoo tehdä ellet ole numeroita takaisin tähän up your takuut mitään. Joten,

  • Kuinka monta ennätystä olet parhaillaan EU? Päivässä? 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 teidän ominaisuuksia, tulet rujo?
  • Mitä etuja sinulla toivoa / odottaa saavansa siitä verkkoon?
  • Ovatko konttorikoneiden pystyy käyttämään työpaikkoja?
  • Ovatko (tai voit työpaikkaa muuntaa) työtä tällä tyylillä käynnissä?

Viimeinen tärkeä asia on, että otat aikaa merkittäviä muutoksia näin. Päivitä koodimerkkien työskennellä käyttäen uutta menetelmää, benchmark uudelleen. Mahdollisesti perustaa oman käsittelyä palvelimen suoritettavaksi virtuaalikoneen, kun kaikki käsittely palvelin vain olla toinen työntekijä (vain erittäin voimakas eräs suhteellisen). Anna uuden prosessin asettua.

Käyttöönoton

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

Deployment tällainen järjestelmä on hidas. Vaikka se on suhteellisen helppo asentaa tämä järjestelmä vaikuttaa koko toimiston infrastruktuuri (myös digitaalista yksi). Ensinnäkin Roll ulos pari koneiden kerrallaan, seurata verkkoliikennettä, miten työntekijä isännät suorittaa päivittäinen perusteella. Saatat joutua muuttamaan työpaikan kokoonpano vastauksena löytösi.

Kun järjestelmä on asettunut muutamia koneita (sanotaan vaikka 10% kaikista toimistolaitteet eli 5) pitää seuranta verkkoliikennettä ja pääkoneen performance. Seuraava benchmark uudestaan, sinun pitäisi nyt olla jalostuksen 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 kaikki konttorikoneiden käynnissä tappamatta yksittäisen koneen suorituskykyä tai hionta verkon pysähdyksiin.

Säilyttää jatkuvasti benchmarking, vaikka kaikki käyttöönottoja on tehty. Tarkista miten uuden koodin päivitysten vaikuttaa nopeudesta, tarkista kaikki työntekijät ovat raportoinnin ja käsittelyn työpaikkoja. Hitaasti (erittäin hitaasti) lisäys työsi kokoonpanon saada paras irti työntekijöitä ja verkko.

Stop!

Entä jos haluat lopettaa työntekijöiden käytössä jossain vaiheessa? Ne ovat kaikki siellä käynnissä palauttamiseksi, ja yrittävät parhaansa mukaan käsitellä tietoja nälkäisinä hyönteisiä. Vastaus saattaa tuntua itsestään selvältä, mutta sen syytä lisätä kaiken varalta sen huomiotta. Yksinkertaisesti muokata käsittely käsikirjoituksen kanssa exit (0) or die () tai muu selvitys tappaa käsittelyyn työtä. Tärkeä syy siihen, miksi pyrimme aina päivittää uusimpaan käsittely script ennen run!

Esittelyn System

Jotta kirjoittaa Tästä lyhyitä artikkeleita olen luonut hyvin pieni ruudukko osoittaa tekniikoita ja menetelmiä. Luin paljon artikkeleita, opetusohjelmia ja käyttää erilaisia ​​työkaluja, asennus ja seurata, mitä oli tekeillä. En suinkaan minä olen lähtenyt ja tyydyttyneistä koko toimisto liikenteen ja enkä ole ollut käytössään vakituisen henkilöstön jäsenet PC kuinka isäntä tulokseen vaikuttivat.

Oma esittely järjestelmä oli hyvin nöyrä todellakin. Käytin säännöllisesti työpöydän perustettu työnohjaukseen palvelimelle. Tällä olin asentanut MySQL palvelimeen asennettu perustettu mestari lisääntymään, PHP , A ja SVN kytkeytyvät toisiinsa apache (yhteys kautta työntekijä VM).

Minä sitten luotu CentOS työntekijä koneen VirtualBox on 6 vuotta vanha Windows XP laptop. Olen setup ajastetut tehtävät on määritelty kopioinnin jälkeen VM koneeseen ja antaa mennä.

Virtuaalikone perustettiin PHP, Subversion, ja MySQL. Olen kassalla haara nimeltään "työntekijän" minun työnhallintaa palvelimet repository ja varmisti, se voidaan päivittää käyttämällä "svn update". Seuraavaksi setup MySQL orja ja tarkistaa, että tiedot oli jäljittelevän MySQL työssä Control Server alas työntekijä VM. Onhan tämä I setup bash skripti ja ajastettu tehtävä.

Omat käsittely script pohjimmiltaan meni tyyliin tämä (hyvin yksinkertaisia ​​asioita):

  • Lue Nimi-kenttään
  • Lasketaan useita samantyyppisiä nimiä taulukossa tietolähteestä pidettiin VM
  • Lasketaan nimien kuin edellä, mutta halkaisu nimi välilyönneillä (esim. etunimi, keskimmäinen, sukunimi)
  • Toistuva tässä prosessissa 1000 kertaa

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

Leaving laptop tyhjäkäynnille johti työntekijä alkaa käsitellä työt työnohjaukseen palvelimelle. Kun jatkat kannettavan käyttö oli viive noin 30-60 sekuntia, tämä on melkoisesti aikaa ja henkilökunnan olisi saatava ymmärtämään, että heidän koneensa voi pysähtyä hetkeksi palatessaan kone. Uudemmissa koneissa saattaa olla tauko tästä pitkästä. Hyöty määrän käsittely suoritetaan näiden koneiden seisonta aikoja enemmän kuin suuremmat henkilökunnan jäsenet joutuvat odottamaan lyhyen ajan (sanovat 1 minuutti) on ne saapuvat koneet aamu (olen usein odottamaan kauemmin että tätä Windows Defender päivitys tapahtuu) edellyttäen, että ne olivat tietoisia tästä (hyödyllinen aika napata aamukahvin!).

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ä ei toimi (erittäin) pieniä ja hieman enemmän kokeilemalla voisi olla suurennettu hyödyntää resursseja toimiston koneita. Jos en pääse vähällä tehdä tämä Olisin erittäin kiinnostunut tietämään / jos joku muu tekee.

Johtopäätökset / Arviointi

Seuraava selvä askel olisi todella saada reaalimaailman esimerkki ja alkavat käyttää järjestelmää, kuten tällä alueella toimistoympäristössä ja katso mitä tapahtuu. Kysymysten liiketoiminnan sitoutumaan tähän ilman polkua paahtava yritys todistaa teknologia ja tehokkuus voi olla hieman vaikeaa. Grid / Distributed Computing on hyvin 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 voitaisiin kaulitaan sisällä toimistoympäristössä.

Loin periaatteessa vapaa järjestelmä käyttää enimmäkseen avoimen lähdekoodin ohjelmistoja ja työkaluja saatavilla lähes jokaiseen toimistoon. Teknologiat olivat pohjimmiltaan osoittanut ja osoittaa suorittaa ja toimi odotetusti. Toivottavasti olen osoittavat kanssa ei paljon työtä ja hyvin yksinkertainen asennus voit asentaa Office grid-järjestelmä, joka on tehokas, halpa, A ja skaalautuva kaikki samaan aikaan.

Kun järjestelmä on toiminnassa ei melkein ole loppua määrä räätälöinnin ja parannuksia voit tehdä. Esimerkiksi tilastot / benchmarking voidaan helposti lisätä Näytetään arvoinen tällaisen järjestelmän joka päivä. Uusia koneita voidaan lisätä nopeasti ja helposti kun ne saapuvat päivityksiä nykyisen laitteiston vahvistamalla teidän prosessorin tehosta.

Toivottavasti olet nauttinut lukea tämä artikkelisarja ja sen teille antanut pohdintaan käynnissä Office-verkkoon. Ratkaisu esitetään tässä ei välttämättä toimi kaikissa tilanteissa, mutta pitäisi olla mukautettavissa, jotta voit saada tietojenkäsittely tapahtuu käyttäen oman ratkaisun.

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













Panorama Teema Themocracy

7 vierailijaa nyt
6 vierasta, 1 vastaan, 0 jäsentä
Max kävijöitä tänään: 16 klo 01:33 UTC
Tässä kuussa: 17 at 01.09.2011 23:27 UTC
Tänä vuonna: 130 at 28-03-2011 22:40 UTC
Kaikki aika: 130 at 28-03-2011 22:40 UTC