Kategorija: Grid računarstvo

Ured Grid Computinga koristeći virtualnim okruženjima - 4. dio

Do , petak 4. prosinac 2009 11:59

Uvod

Radim u tvrtki gdje smo pokrenuti mnoge skupne poslove obrade milijune zapisa podataka svaki dan i Razmišljao sam nedavno o svim strojevima koji sjede oko svaki dan radiš ništa za nekoliko sati. Ne bi li bilo dobro ako bismo mogli koristiti one strojeva za poticanje obrade snagu naših sustava? U taj skup članaka idem gledati na potencijalne koristi od zapošljavanja ureda mrežu koristeći virtualiziranog okruženja.

U dijelu 3 smo napravili naš virtualni stroj za obradu i postavljanje prozora strojevi postati mirovanja radnog vremena radnika.

Trčanje najnoviji broj

Neizbježno nakon stvaranja radnika poslovnu logiku će se promijeniti, greške će se naći, brži učinkovitije kod će biti proizvedena na taj način iz svog radnika sjedili oko obrade podataka pomoću stare smrdljive koda . Kako onda mi bismo osigurali da uvijek koristite najnoviju verziju i najveći naše obrade skripti?

Postoji nekoliko vrlo lako jednostavan način možemo to učiniti, trik, međutim, da se smanji procesorskom snagom i mrežnog prometa u postizanju toga. Omogućuje započeti s najjednostavnijim rješenja i unaprijediti polako preko nekoliko iteracija.

Prva metoda da bi se jednostavno spojiti na naš server posao nadzora (preko sambe, FTP ili slično) i povucite prema dolje najnoviju verziju koda. Nije vrlo učinkovit, ali to će obaviti posao. Omogućuje poboljšanje na tom pomalo, kako o stvaranju rsync skriptu i korištenjem da svaki put umjesto toga? Alternativno što o stavljanju naše najnovije prerade skriptu u subverzija odjavljivanje kod u početku i onda samo osvježavamo koda na svakoj vožnji ( svn ažuriranje )?

Na kraju bismo mogli završiti s bash skripta (zove cron svakih 10 minuta) koji izgleda kao jednostavan kao ovaj:

  #! / Bin / sh
 Ako ps ax | grep-v grep | grep php > / dev / null
 tada
     echo "Posao je trenutno obrada, izlaz"
 drugo
     echo "Posao nije pokrenut, pokrenite sada"
     CD / put / do / rad / kopiranje
     svn ažuriranje
     php yourJobProcessingScript.php
 fi 

Sada možemo biti sigurni da sa svakom pokrenuti svakako radite najnovije koda. Mi smo osigurati tako osvježavamo baze svaki put kada obavljaju vožnji i smanjenje mrežnog prometa, samo prijenos datoteka razlike diljem naše mreže.

U mom demonstraciju postava, ja sam točno kao gore. Subversion je instaliran na moj server posao obrade i jednostavno sam izvukao najnovije koda iz 'radnik' grana pomoću 'svn ažuriranje ". Također sam dodao oznake broj verzije na moj obradu pismu kojim je vraćen u bazu podataka kao dio rezultata povratka. Na taj način sam mogao vidjeti da je moj broj bio ažuriraju svaki put kad sam kopirati moje deblo u, odnosno radnik grana da sam definitivno bio pokrenut najnovije obradu skriptu.

Koristeći najnovije podatke

Ako vaš posao obradu omogućuje korištenje izvora podataka zatim u nekom trenutku su idući u biti ažuriran previše. Ako ćete se obratiti svojem izvora podataka o vrlo rijedak temelju ćete poplava mrežu s prometom čim radnici početi prikazivati ​​donosi sve mirovanja. Za moje rješenje odlučio sam da želim da se presele moje izvore podataka okolo sa mojim virtualna.

Držite ste konje tamo! Što ako je moja izvori podataka su ogromni? Pa ovo je stvarno slučaj koliko podataka govorimo? On svibanj biti troškovno učinkovite za instalaciju dodatnih veći hard disk u svakom stroju nego na kupnju dodatnih obradu poslužitelju. To je pitanje proračuna, a do poslovnih odlučiti. To možda da izvori podataka su toliko velike da je samo unfeasible da bi taj iznos podatke u vašem radnika strojeva. U tom slučaju ono što biste učinili? Pa mogli smo gledati na poziv lokalnog poslužitelja podataka, ali bi to moglo uzrokovati probleme s mrežom. U tom slučaju mrežnog sustava kao što je ovaj svibanj postati nerealno uključiti u uredskom okruženju. Također može biti da možete pogledati u alternativne strategije trčanje, na primjer samo poziv tvoj radnici 20:00-6:00 svake noći i / ili prigušni izvor podataka zahtjeva.

Premještanje na recimo naše izvore podataka iznosi 100GB podataka. Pa da to je vrlo malo podataka za kretanje mreže na ažuriranje. Kako bismo osigurali da imamo najnovije kopiju podataka u ovom slučaju? Rsync je mogućnost, ali ja osobno mislim da pokrenete svoj najnoviji izvor podataka na vašem poslužitelju posao obrade i postavljanje ovaj gore kao majstor u replikaciju (s lijepim dugim bin dnevnik) može biti način da ide:

odgovor Postavljanjem svaku od vaših radnika se kao rob posao nadzora poslužitelja ažuriranja na vaše izvore podataka će kapati dolje lijepo na radnike, bez velikog povećanja aktivnosti mreže (koja je, osim ako obavljaju veliki data update i sve svoje radnike udarac nogom u odjednom). To ima prednosti nad rsync u da ne bi dobili duge stanke prije svakog posla, kao i baza podataka obnove, mysql daemon na radnika će se stalno ažurirati svoje podatke, a obrada se nastavlja.

To je kako sam postaviti demonstracije poslužitelj. Da biste postavili odgovor slijedio sam vodič na MySQL stranice ( Postavljanje replikacija ) i unutar 20 minuta sam imao moj inital radnika Umnožava posao nadzora poslužitelja podataka. Za svaku dodatnu radnik replikaciju postavke i proces radio svaki put kad je VM je kopiran.

Rezime

U ovom dijelu članka smo gledali kako se lako i bezbolno je da bi se kod obrade do datumu po using rsync ili subverion (SVN) da radimo i smanjenje mrežnog prometa na istoj time. Razgovarali smo io tome kako da bi izvor podataka informacije up-to-date dopuštajući da kapati dolje na svakoj od svojih radnika. Tako prostor se osiguralo da držimo korak s poslovnom logikom i informacije u našem sustavu uredu mrežu. Tu očito će biti bezbroj alternativa za obavljanje tih zadataka, ali ovdje su dvije jednostavne primjere pokazati kako je lako rješenje je doći.

Sljedeći put

U posljednjem dijelu ove serije, podesno zove Dio 5 , mi ćemo raspravljati o uvođenju ovog sustava za. Ja ću sažeti ono što je naučio i ono što sam uspio stvoriti.

Ured Grid Computinga koristeći virtualnim okruženjima - dio 1

Do , petak 4. prosinac 2009 11:23

Uvod

Radim u tvrtki gdje smo pokrenuti mnoge skupne poslove obrade milijune zapisa podataka svaki dan i Razmišljao sam nedavno o svim strojevima koji sjede oko svaki dan radiš ništa za nekoliko sati. Ne bi li bilo dobro ako bismo mogli koristiti one strojeva za poticanje obrade snagu naših sustava? U taj skup članaka idem gledati na potencijalne koristi od zapošljavanja ureda mrežu koristeći virtualiziranog okruženja.

Kao PHP programer Im 'idući u koristiti alate koji mogu koristiti svaki dan, naime, Linux, MySQL , PHP, VirtualBox i subverzija (SVN). No nadam se da ovaj vodič će se prilagoditi na druge jezike i tehnologija jednako dobro.

Rješenje ću dati će se vrlo labavo ovisno o vrsti prerade mi bismo je potrebno za postizanje no to ne mora biti istinito kroz cijeli članak ja ću promijeniti stvari za jednostavnost, ili da proizvode više zanimljivih scenarije korištenja.

Ove virtualiziranog okruženja koje će se izvoditi na Windows strojevima jer to je ono što većina ureda pokrenuti. Obradu da uredskih strojeva ne bi trebali miješati s osobljem pomoću tih strojeva, trebao bi ne zahtijevaju održavanje u stroj, i biti lako razmjestiti na nove strojeve kao što su postali dostupni. Također, novi virtualni strojevi ne bi trebali zahtijevati dodatne konfiguracije, jer to uvelike smanjuje skalabilnost i jednostavnost u kojoj grid sustav se može produžiti.

Zašto Postavite Grid Computinga Office?

Prvo vam svibanj biti razmišljanje, zašto ne samo koristiti resursa računalnih oblak, kao što su Amazon EC2 platformi ? Pa razloga bi moglo biti više, na primjer:

  • Nećete povjeriti određene podatke okoliš cloud computing
  • Ne možete staviti određene podatke u okoliš cloud computing za pravnih razloga (npr. podaci izlaska iz zemlje), potencijalno za pravnih razloga, npr. NHS zapisa.
  • Želite li zadržati svoje jedinice za obradu u blizini i imaju potpunu kontrolu nad hardvera previše
  • Nemate sredstva za pokretanje projekta oblak primjeraka
  • Vaš ured ne imati vezu na internet, a stoga i nije moguće koristiti oblak resursa
  • Vi ne kao kiša, oblaci sugeriraju kiša, pa vas i daleko

Siguran sam da popis bi mogao nastaviti, ali mislim da je to dovoljno za sada.

Prednosti Grid Computing Office

Pa, omogućuje učiniti neke matematike (i fizike u pravom stilu omogućuje napraviti neke pretpostavke brišući). Zamislite da imate veliki debeo obradu poslužitelju koji izvodi 100 radnih mjesta dnevno. U svom uredu imate 50 strojeva koji su miruje 16 sata na dan, svaki od ovih strojeva je 10% kao snažan kao debeo obradu Sever. (Svi rezultati ovdje su zaokruženi na podcijeniti povećanje performansi).

Dakle, 1 stroj * 10% snage * 2 / 3 vremena = 0,067 odnosno 1 desktop obrade u stanju mirovanja vrijeme mogli obraditi 6 puna radnih mjesta dnevno.

Ako sada skali ovo gore je potrebno 15 u stanju mirovanja stolnih računala do procesa što više radnih mjesta dnevno kao svoj ​​glavni obradu poslužitelj radi.

Tako je u našem uredu praviti od 50 strojeva možemo povećati našu moć obrade od 1 poslužitelja do 4 pune obradu poslužitelja, ili bismo mogli biti za obradu 400 radnih mjesta dnevno umjesto 100.

Obavijest, bez ulaganja u novi hardver vaša tvrtka upravo je povećala svoju sposobnost skupne obrade 4 puta! Potencijalno ćete povećati svoju moć korištenje, ali u većini uredima sam bio na strojeve uglavnom ostaju na prekonoćne ionako, tako da bi mogli vidjeti kao zeleno inicijativu.

Ostale prednosti također znači da je ulaganje u nove (ili ažurirati) obrada poslužitelja može kasniti ako vaš uredski strojevi su dostatni i da kao da poboljšate moć vaše uredskih strojeva vašeg ureda mreže postaje moćniji automatski.

Tehnologije

Što vam je potrebno? (Ili točnije što sam koristiti):

  • Idle uredskih strojeva (u mom slučaju rezervnim stari Windows XP laptop)
  • VirtualBox (ili neki drugi softver virtualizacija klijenta)
  • Virtualni stroj sa PHP, MySQL running trčanje smanjiti OS, ja sam poziv ove moje Limp serveri:)
  • Poslovi pokrenuti
  • Posao poslužitelj (može biti još jedan virtualni stroj negdje)

Tipični poslovi

Vrsta posla da je ovaj sustav dizajniran je za pokretanje je kako slijedi:

  • Sustav prima popis podataka o kojima trebamo uskladiti i vratiti rezultate
  • Odgovarajući uključuje provjeravanje / traži više (dosta statički) izvori podataka
  • Rezultati izvora podataka može zahtijevati dodatne provjere, spajanje, provjeru dodatnih izvora podataka kao odgovor na rezultate
  • Podaci se vratio s jedan zapis prema zadanim, u potpunosti potvrđene i obrađuje
  • Svaki zapis u posao je neovisno od ostatka

Tako je u osnovi smo gledajući radi poslove koji zahtijevaju mješavinu baze podataka upiti i neki broj crunching, prilično tipičan scenarij u poslovnom okruženju.

Grid rješenja nisu samo korisno za obradu radnih mjesta ove vrste. Uglavnom, bilo koji proces koji se mogu podijeliti u nezavisne jedinice mogu se izvoditi paralelno. Pogledajte ovaj Wikipedia primjere i više informacija: Grid Computinga , ali nekoliko poznatih primjera su SETI @ home i BIONC . Postoje okviri za trčanje računalne mreže, a to su dobro vrijedan obličje.

Što ćemo postići?

Do kraja ove članke nadam se da ću pokazati da uvođenje ured mrežu ne mora biti jako skup ili dugotrajan. Im 'idući u raspraviti:

  • Postavljanje sustava kontrole posao, posao konfiguracija
  • Stvaranje odgovarajuće obrade virtualni stroj
  • Kako postaviti sustav na Windows računalu
  • Osiguranje ste koristeći najnoviju koda i podataka
  • Implementaciju i vrednovanje
  • Pogled u budućnost

Ja ću biti zgrada (ok sam sagradio, tada je napisao ovaj) primjer primjene testirati koncepte na lokalnom računalu koristite Windows XP i moje 'GridMachine "virtualni stroj. Moj posao poslužitelj kontrole će biti moj glavni stroj koji traje Fedora 11 .

To je ni na koji način značilo da pokažu potpuno radni robustan sustav, njegova je značilo više od demonstracija i opisala pokazuju da se takve stvari se može postići u relativno kratkom vremenu i uz male troškove. Molimo, budite slobodni poslati mi komentare, ispravke ili poboljšanja i ja ću obaviti moj najbolji to držati ovaj članak ažurirati kako bi se slagala.

Sljedeći put

U dijelu 2 ću početi gledanjem na sustav za kontrolu, i gledati kako u posao bi trebao biti konfiguriran kako bi se postigla najveća količina prerade, dok bi se osiguralo da svaki posao obrađuje bez iznimke.

Ured Grid Computinga koristeći virtualnim okruženjima - dio 2

Do , petak 4. prosinac 2009 11:23

Uvod

Radim u tvrtki gdje smo pokrenuti mnoge skupne poslove obrade milijune zapisa podataka svaki dan i Razmišljao sam nedavno o svim strojevima koji sjede oko svaki dan radiš ništa za nekoliko sati. Ne bi li bilo dobro ako bismo mogli koristiti one strojeva za poticanje obrade snagu naših sustava? U taj skup članaka idem gledati na potencijalne koristi od zapošljavanja ureda mrežu koristeći virtualiziranog okruženja.

U 1. dio sam dao pregled sustava i tehnologija ću koristiti kao i objašnjeno neke od potencijalnih razloga zašto bi želite napraviti ureda mrežu.

Upravljanje poslom

Ako tvoj 'idući u biti pokrenut radnih mjesta onda idete da je potrebno na neki način upravljati njima. Vaš posao sustav upravljanja (na svom poslu poslužitelj) treba se stvarno dobro osmišljenog prije nego pokušate pokrenuti ureda mrežu. Dakle prvo, što su zadaci za sustav upravljanja posao:

  • Podijelite posao na zahtjev radnika
  • Recite radnici koju vrstu radnih mjesta za pokretanje
  • Praćenje radnih mjesta
  • Osigurati da radna mjesta samo pokrenuti jednom
  • Osigurati posao podatke radnika, ili ih barem reći gdje da biste dobili Internet

Sustav također mora biti proširiv, rješenje koje radi za sada u jednom slučaju može se produljiti za pokretanje nekoliko tipova radnih mjesta kao poslovni vidi vrijednost u mrežu rješenje. Na primjer, radna mjesta mogu dobiti prioritete, više od jednog posla vrste mogu postojati (tj. više kod baze), na kraju vi svibanj čak i pokrenuti nekoliko različitih radnik strojeve koji su optimizirani za svaku vrstu posla (iako to ne odmaknuti od "generičkih radnika 'ideju). Uvijek pokušajte razmišljati o budućnosti, kada razvoja sustava, kratak viziju pojam može dovesti do dugoročno frustracije i povećanje vremena razvoja.

Posao poslužitelja

Idemo na potrebu negdje kontrolirati poslove iz, to bi trebao biti jedini sustav u mrežu koja ima fiksni Resource Locator, biti da se IP adresa, ime hosta, URL (koristeći interni DNS), itd. To je zato što radnici moraju znati gdje se mogu pogledati za radna mjesta, radnici moraju pronaći sustav za kontrolu (ne sustav za upravljanje naći radnika).

Posao poslužitelju koji se ne stvarno imati komplicirano zadatak (u svakom slučaju osnovni sustav), to treba pohraniti popis radnih mjesta, iz ruke posla, dobiti rezultate, i nakon toga ih spremiti za kasnije pretraživanje. Kako tih dijelova (kao što je "iz ruke posla ') su definirane može biti vrlo osnovni. Kasnije možemo proširiti sustav uključuje administracijsko sučelje za dodavanje, uređivanje, brisanje, obustaviti radnih mjesta ali to je izvan ove vježbe.

Nema razloga onda da vaš posao poslužitelj ne može biti virtualni stroj radi u svoju glavnu obradu poslužitelj pod uvjetom da ne odvoditi previše sredstava iz njega. Poslužitelj posao, međutim ne treba visoku dostupnost, ako se ide dolje u petak navečer ćete izgubiti cijeli vikend obrade, potencijalno troška vam nekoliko tjedana u vrijednosti od procesorskog vremena (u odnosu na svoje glavne obradu server sami) . Vi svibanj ištanje to uzeti u obzir stavljajući svoj posao poslužitelj na teret uravnoteženom okruženje za visoku dostupnost.

Basic Setup

Osnovne postavke za svoj ​​posao poslužitelj će se sastojati od onoga što sam poziv jedan od mojih Limp poslužitelja (koja je Li Nux, m ySql, P KS). Kod na Thea radnika će zapravo raditi koje poslove može raditi u interakciji s posla s bazama podataka sustav kontrole. Kasnije smo mogli stvoriti web servis i zapravo ruku radnih mjesta nego što radnici ne teško raditi sami, ali za sada ćemo nastaviti koristiti KISS princip (držati ga jednostavno, glupa!).

Dakle, omogućuje stvaranje tri MySQL tablice da se bave poslovima. To će biti 'radna mjesta', 'jobRecords `i` jobResults `.

radnih mjesta stol Ovdje Im 'koristeći SQL Prijatelj veliki mali alternativa phpMyAdmin samo jer je lakše instalirati na CentOS (za druge vidi: 10 Velika alternative phpMyAdmin )

Ova tablica se sastoji od 5 jednostavnih polja,

  • ID: jedinstveno identificiraju posao
  • Ime: Mogao bi biti referenca klijent, ili bilo koji broj ostalih identifikatora
  • Status: Morate znati gdje se posao na, primjerice,
    • 0: Nije počeo
    • 1: pokupila
    • 2: Završeni
  • started_by: Tko je počeo raditi posao? Ovo nije u potpunosti potrebna, ali je lijepo imati. Sugerirao bih praćenje radnika po njihovu IP adresu na mreži
  • started_at: Kada je radnik započeti posao? Praćenjem radna mjesta koja nisu završila u X iznos od vrijeme znamo trebamo pokupiti posao ponovno i započeti prerađivanja od strane drugog radnika. Radnici bi mogao zaustaviti obradu / go odsutan za bilo koji broj razloga, napajanja, sudara, mreža gubitak, itd.

Lako je kako ovoj tablici mogu se proširiti s nekoliko dodatnih polja kako bi se omogućilo za statistiku praćenje, stupac završiti na vrijeme da vidi koliko dugo taj posao je, brojač da vidim kako mnogi radnici pokupili posao (očito to treba da imaju tendenciju da 1), posao prioriteta, popis može ići na i na. U složenijim posao scenarija to će biti moguće odrediti koliko memorije radnik bi trebao pristup (i stoga koristiti samo prikladne radnika), ili čak i kakvu vrstu radnika će biti potrebna.

Omogućuje dodavanje nekoliko primjer radnih mjesta:

Primjerice radnih mjesta

Sljedeća tablica ponovno je prilično jednostavan za shvatiti, ovo su naš posao zapisa. Oni su povezani s glavnim radnih mjesta tablici stupac `jobs_id`. Čine ove tablice jako ovisi o podacima koje trebate dostaviti na radnike, omogućuje učiniti vrlo jednostavan primjer, gdje imamo četiri stupca:

  • ID: ID rekord
  • ime: Ime osobe
  • Adresa: Osoba adresu
  • jobs_id: posao ID da je ovaj zapis je povezan s

Treći i finalni stol sastoji se od tablice s rezultatima, ima mnogo isto čine kao naše evidencije stol, a uz dodatak nekih stupova može biti dio zapisa tablici:

  • job_record_id: Link rezultat na posao stol
  • Rezultat: Rezultat podataka

... I to je sve što je potrebno za posao kontrole! (Iako na vrlo osnovne razine) U mom slučaju ja sam ukazao na drugi stol, gdje moje podatke obraditi bila smještena, ali to bi moglo jednako lako je datoteka, parametri za pokretanje simulacije kod, ime ti je.

Odabir posla

Kao što je navedeno ranije, radnici će raditi svoj posao upravljanja za nas, za sada, tako da svi trebamo stvarno učiniti je pronaći posao koji treba obrada i dobiti informacije. Kako bismo to učinili? Pa pokupiti naše kriterije za odabir posao i tražiti poslove, u SQL sam sljedeće:

  1. Uzmite bilo koje poslove koji nisu označeni kao potpuni, ali od naših radnika i resetiranje ih (zamjena __ME__ s identifikatorom, najlakše bi se IP adresa):
      UPDATE `radnih mjesta` SET 'status' = 0 gdje 'status' = 1 i `started_by '= __ME__; 
  2. Koristeći naše kriterije odabira posla, odaberite posla i reći da je ovaj sustav kontrole radnik bavi se:
      UPDATE `radnih mjesta` SET 'status' = 1, 'started_by' = __ME__, `started_at '= NOW (), gdje' status '= 0 ili
     ('Status' = 1 i `started_at`> DATE_SUB (sada (), interval X HOUR)) ORDER BY `id` ASC; 

    Do grabbing radna mjesta koja nisu vratili rezultate u X količinu vremena koju bi se osiguralo da su svi poslovi izvoditi u slučaju radnika pad ili ide IZBEZUMILA.

  3. Sljedeća zgrabite posao detalja slijedi zapisa sami:
      SELECT * FROM `radnih mjesta 'gdje' started_by '= __ME__ LIMIT 1;
     SELECT * FROM `job_records 'Gdje' id '= __JOBID__; 

Po završetku posla mi umetnuti naš rezultat bilježi i označite posao završi. Sjetite se kao poslovi može obustaviti / nastaviti u bilo koje vrijeme dopustiti neke robusnosti u svom pismu. To bi moglo biti da je zadatak obustavlja pola puta kroz ažuriranje sustav za kontrolu, tako da provjere broj zapisa u posao i broj rezultata spremljene natrag u sustav za upravljanje bi mudar potez.

Osim toga, dok ovo pokazuje kako radna mjesta mogu se odabrati i upravlja iz SQL upita okvira te bi trebao stvarno biti sažetaka svoj ​​posao kontrole, tako da ako se odlučite prebaciti na korištenje web-usluge, datotečni sustav temeljen XML , ili bilo koje druge broj sustava neće utjecati na broj iznad njega.

Posao konfiguracije

Sljedeći aspekt razmotriti je posao veličine i konfiguracije. By igranje s posla konfiguracije možemo štrajk izvrsnu ravnotežu između brzine, proces replikacije i pouzdanost. Uzmi scenarija ofa par:

  1. Poslovi uzeti 1 dan svaki pokrenuti: To znači da radnici trebaju 15 dana za obradu svaki posao (sjetite se 10% snage za 2/3rds vremena). To očito nije mudar konfiguraciju, vaš posao je veličina način prevelika! To bi se barem dvostruko vrijeme da biste dobili posao obrađen treba početni radnik ide IZBEZUMILA (vrijeme pokupiti da ga nije vratio rezultat plus preradu vrijeme). U idealnom želite imati barem jedan puni posao jednostavno izbrisani do kraja svakog dugog mirovanja razdoblje, na taj način zadržite posao navlake preko au najgorem slučaju posao bi se dva dana postupak bi trebao ići prvi nedostaje.
  2. Poslovi uzeti 1 minutu za pokretanje: To znači da radnici potrajati oko 15 minuta pokrenuti svaki posao. Dok to u početku može činiti idealnim, dobit ćete dodatni posao za obradu vrijeme ručka, pauze za kavu, sastanci, itd. ovaj scenarij stavlja pritisak na drugim područjima vašeg sustava i uvodi svoje probleme. Na primjer, prvo svoj setup / vrijeme obrade omjer je ići desno dolje, dakle gubitka učinkovitosti sustava. Vaša mreža će biti stalno struji posao informacije raznih radnika frustrirajuće osoblje koji su dong svoje svakodnevnom radu. Također ćete uložiti više pritisak na vaš poslužitelj posao obrade kao što je na jelo na puno i puno malih komada rada na regularnoj osnovi. Na kraju, u ovoj situaciji ako je vaš posao poslužitelj odlazi dolje ćete stvoriti ogroman leđa dnevnik nedovršenog posla, dok veći radnih mjesta moglo bi za nastavak obrade blaženo nesvjestan da je posao poslužitelj poteškoća.

U stvarnosti neće biti nitko idealna konfiguracija za grid postava, puno ovisi o raspoloživim sredstvima, vrste posla, posao vrijeme obrta zahtjeve, mreže sposobnost, i tako dalje. No neke smjernice će biti:

  • Veličina radnih mjesta tako da svaki radnik može dobiti preko najmanje 3-4 novih radnih mjesta u roku od 15 sati (najduže vjerojatno mirovanja vremenskom razdoblju)
  • Igrajte se s posla veličine, tako da postava vrijeme postaje prilično beznačajan u odnosu na vrijeme obrade (imajući u vidu gore navedene točke).
  • Ako posao ne dovrši u dvokrevetnoj iznos od vrijeme (možda manje), možete očekivati ​​da će završiti to pretpostaviti da je njegov nestali IZBEZUMILA i početi obradu s drugim radnik. To znači da ćete možda morati pričekati i do tri puta normalne dužine posao za to dovršiti (moguće više, ako naknadno posao ne uspije). Vi svibanj želite smanjiti ovaj put, ali budite oprezni da ne previše smanjiti kao što svibanj početi umnožavanje prilagodbom na regularnoj osnovi.
  • Poslovi treba biti neovisna od vanjskih uvjeta koliko je god moguće. Posao poslužitelja, na primjer, samo treba kontaktirati na početku i na kraju svaki posao.
  • Ne prožeti vaše mreže, to će imati dvije negativne posljedice, vaše dnevne osoblje će pronaći putem mreže frustrirajuće i problemi mogu biti iskusni sa vezama iz vremena problem koji će se samo pogoršavati kao što skali vaše mreže.
  • Osigurati radna mjesta mogu se izvoditi na svojim radnicima. Ako poslovi postaju previše memorije intenzivne, odnosno prostor na disku intenzivne poslove će početi prekidanja i jedina stvar koju ćete primijetiti je pad broja radnih mjesta obrađuju bez pravi razlog zašto.

Podnošenje Rezultati posao

Prilikom podnošenja rezultate posao važno je da provjerite da rezultati nisu poslali drugi radnik, pogotovo ako je trenutna radnik je bio uspavan za neko vrijeme.

Kada se rezultati dostavljaju se osiguralo da se broj rezultata utakmica broj zapisa u posao.

Kao što je navedeno ranije, i ne može se više istaknuo, graditi tolerancija kvarova u posao pretraživanja i rezultati podnošenje. Radnici mogu (i najvjerojatnije će se) otići u suspend modu u većini nezgodno puta i to treba biti catered za. Također još jednom sažetaka daleko rezultata podnošenje pomoći će razonoditi za buduće promjene u sustavu kontrole posao puno lakše da se bave.

Rezime

U ovom section smo gledali na ono što poslužitelju posao kontrole treba učiniti i kako da biste dobili vrlo osnovni sustav postavljen. Razgovarali smo o tome kako da biste preuzeli posao iz sustava kontrole i kako najbolje konfigurirati radnih mjesta da biste dobili najviše naš vašeg sustava Office mrežu. Da biste završili, odlomak ili dva o podnošenju rezultata natrag poslužitelju posao nadzora je predstavljena.

  • Poslužitelj posao kontrole upravlja radna mjesta i osigurava da su sve radne jedinice dovršen
  • Do sažetaka odaberite svoj posao / rezultat podnošenje možemo promijeniti tehnologiju kontrole poslužitelja bez puno problema
  • Konfigurirajte svoj posao kako bi se osiguralo da su pokrenuti brzo i učinkovito, bez stavljanjem previše pritisak na svoje mrežne infrastrukture, a bez umnožavanje prilagodbom na regularnoj osnovi.
  • Uvjerite se da ste izgraditi tolerancija kvarova i pogreške checking u svoje rutine, radnici mogu suspendirati i nastaviti, a najviše nezgodne puta. Ne zaboravite da provjerite je li rezultati već podnio drugi radnik.

Sljedeći put

U dijelu 3 ćemo stvoriti naš virtualni stroj za obradu i postavljanje naših prozora strojevi postati mirovanja radnog vremena radnika.

Ured Grid Computinga koristeći virtualnim okruženjima - dio 5

Do , petak 4. prosinac 2009 11:03

Uvod

Radim u tvrtki gdje smo pokrenuti mnoge skupne poslove obrade milijune zapisa podataka svaki dan i Razmišljao sam nedavno o svim strojevima koji sjede oko svaki dan radiš ništa za nekoliko sati. Ne bi li bilo dobro ako bismo mogli koristiti one strojeva za poticanje obrade snagu naših sustava? U taj skup članaka idem gledati na potencijalne koristi od zapošljavanja ureda mrežu koristeći virtualiziranog okruženja.

U 4. dio smo pogledali pomoću alata kako bi se osiguralo da ste mi trčanje najnoviju verziju koda i izvora podataka tako da se dobiveni rezultati su uvijek up-to-date s najnovijim poslovnih informacija i logike.

Prije raspoređivanja

Prije implementacije svoj ​​grid sustav ako postoji jedna stvar koju rade i jednu stvar sam da je mjerilo vaš trenutni sustav! Bez obzira što vam kolege o tome koliko dodatnog rada je vaš sustav će učiniti ako imate brojeve natrag ovaj svoj jamstva ništa. Dakle,

  • koliko zapisa možete procesa trenutno? Dnevno? Po satu?
  • Koliko je obično potrebno da se okrene poslu?
  • Koliko više kapaciteta imate?

Tu je i dodatna pitanja:

  • Ako je Vaš obradu poslužitelja (ili jedan od vaših poslužitelja obrade) ide prema dolje kako će to utjecati na vaše sposobnosti, će vam biti osakaćen?
  • Koje prednosti se nadate / očekivati ​​da će dobiti od grid sustav?
  • Jesu li vaše uredskih strojeva sposoban za izvođenje radnih mjesta?
  • Jesu li vaše (ili možete poslovi pretvaraju) da rade u ovom stilu trčanje?

Posljednji veliki točka je da se svoje vrijeme na neke veće promjene kao što je ovaj. Ažurirajte svoj kod obrade za rad pomoću nove metodologije, mjerilo ponovno. Možda postavite vaš poslužitelj za obradu pokrenuti virtualni stroj, nakon što je sve svoje obrade poslužitelja samo će biti još jedan radnik (samo jedan vrlo moćan relativno). Dopusti novi proces za podmirenje.

Razvoj

Moj prijedlog bi bio da pop u ured jedan vikend provesti sve instalacije i za postavljanje. Učinite to prije dva tjedna za odmor i ostaviti tako da drugi siromašan čovjek se nositi s posljedicama ... možda i ne ...

Implementacija sustava za kao što je ovaj treba spor. Unatoč što je to relativno jednostavno postavljanje ovog sustava će utjecati na cijeli ured infrastrukture (i digitalni jedan). Prvo, razvaljajte na nekoliko strojeva na vrijeme, pratiti mrežnog prometa, kako radnik domaćini izvode na dan-to-day osnovi. Možda ćete morati promijeniti svoj posao konfiguracije u odgovoru na nalaz.

Nakon što je sustav nastanio s nekoliko strojeva (recimo 10% svih uredskih strojeva, odnosno 5) zadržati nadzor mrežnog prometa i domaćin stroj performance. Dalje mjerilo opet, sada bi trebao biti za obradu 33% više radnih mjesta nego vaš prvi mjerila. Check this is so, or that you're at least in this ballpark. If not, investigate what is going on before moving on. Repeat this cycle until you happily have all office machines running without killing individual machine performance or grinding your network to a standstill.

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

Stani!

What if you want to stop your workers from running at some time? They are all out there running, regenerating, and trying their best to process data like hungry insects. The answer may seem obvious but its worth adding just in case its overlooked. Simply edit your processing script with an exit(0) or die() or some other statement to kill your processing job. An important reason why we always try to update to the latest processing script before any run!

Demonstration System

In order to write this set of short articles I created a very small grid to demonstrate the technologies and methodologies. I read lots of articles, tutorials, and used various tools to setup and monitor what was going on. By no means have I gone out and saturated a whole office with traffic and nor have I had access to a regular staff members PC to see how host performance was affected.

My demonstration system was very humble indeed. I used my regular desktop set up as a job control server. On this I had installed mySQL server installed set up as a master in replication, PHP , and SVN linked through apache (for access via worker VM).

I then created a centOS worker machine on VirtualBox on a 6 year old windows XP laptop. I setup scheduled tasks as specified after copying the VM onto the machine and let it go.

The virtual machine was set up with PHP, subversion, and mySQL. I checked out a branch named 'worker' from my job control servers repository and made sure it could be updated using 'svn update'. Next I setup mySQL as a slave and checked that data was replicating from mySQL on the job control server down to the worker VM. After all this I setup the bash script and the cron job.

My processing script basically went along the lines of this (very simple stuff):

  • Read in the name field
  • Counted the number of similar names in a table from the data source held on the VM
  • Counted the number of names as above but splitting the name by spaces (ie forename, middle, surname)
  • Repeated this process 1,000 times

Each job took approximately 20 minutes to run. At one point I opened several copies of the worker VM on the windows laptop and watched the jobs be checked off by each of the worker IP addresses. At this point I also confirmed that replication automatically restarted.

Leaving the laptop to idle resulted in a worker starting to process jobs from the job control server. When resuming laptop usage there was a delay of about 30-60 seconds, this is a fair amount of time and staff would need to be made aware that their machine may pause for a short while when returning to the machine. Newer machines may not have a pause of this long. The benefit of the amount of processing performed by these machines during idle periods would more that outweigh staff members having to wait a short period (say 1 minute) on arriving at their machines of a morning (I frequently wait longer that this for a Windows Defender update to take place) provided they were made aware of this (useful time to grab a morning coffee!).

Overall I feel confident that I have demonstrated the technologies that could be used to create such a system. I have shown that such a system does work on a (very) small scale and with some more experimenting could be scaled up utilise the resources of an office's machines. If I don't get to the point of doing this I would be very interested to know/see when someone else does.

Conclusions / Evaluation

Sljedeći očiti korak će biti da se zapravo dobili stvarnom svijetu primjer i početi implementaciju sustava kao što je to u uredima i vidjeti što se događa. Postavljanje poslovne obvezati na to bez stazom plamen tvrtka dokazati tehnologiju i učinkovitost može biti malo teško. Grid / distribuiranog računarstva je vrlo popularan je nekim krugovima i ima neke velike aplikacije (BIONC, SETI @ home, Folding @ home, itd.). Nisam, međutim, naći manjem opsegu i jednostavan sustav kao što je ovaj u mom pretraživanja koji bi mogao biti namotan vanjska strana u uredima.

Sam stvorio osnovi free sustav koristi uglavnom open source softver i alate dostupne u gotovo bilo kojem uredu. Tehnologije u osnovi su pokazali i pokazuju da obave i rade kako treba. Nadam se da sam pokazati da je s ne puno rada i sa vrlo jednostavan za postavljanje možete implementirati računalni sustav ured mreže koji je moćan, jeftin, A i skalabilna sve u isto vrijeme.

Nakon što sustav gore i trčanje gotovo da i nema kraja u iznosu od prilagodbe i poboljšanja možete učiniti. Na primjer statistika / usporedbe mogu se jednostavno dodati prikazuje vrijednost takvog sustava svaki dan. Novi strojevi mogu biti dodane brzo i jednostavno kao i kada stignu u nadogradnji postojeće hardver jačanje svoje procesorskom snagom.

Nadam se da ste uživali čitajući ovaj niz članaka i dao hranu za misli na trčanje sustava Office mrežu. Rješenje su ovdje prikazani neće nužno raditi u svim situacijama, ali treba biti prilagodljiv kako bi se omogućilo da se vaše obradu podataka obavlja putem svoje rješenje.

Molimo, budite slobodni poslati mi komentare, ispravke ili poboljšanja i ja ću obaviti moj najbolji to držati ovaj članak ažurirati kako bi se slagala.













Panorama Theme by Themocracy

8 posjetitelja online sada
6 guests, 2 bots, 0 members
Max posjetitelja danas: 11 u 12:43 UTC
Ovaj mjesec: 17 godina 2011/01/09 11:27 UTC
Ove godine: 130 u 28-03-2011 10:40 UTC
Sva vremena: 130 u 28-03-2011 10:40 UTC