Categorie: Linux

Office Grid Computing folosind medii virtuale - Partea 4

Prin Watkin Lloyd Steven , vineri 04 decembrie 2009 11:59

Introducere

Lucrez într-o companie unde vom rula lot multe locuri de muncă prelucrarea milioane de înregistrări de date în fiecare zi şi m-am gândit recent la toate maşinile care stau in fiecare zi nu face nimic pentru mai multe ore. Nu ar fi bine dacă am putea folosi aceste maşini să consolideze puterea de procesare a sistemelor noastre? În acest set de articole am de gând să se uite la beneficiile potenţiale ale angajarea unui birou grilă utilizând medii virtualizate.

În partea a 3- am creat Virtual Machine de prelucrare a noastră şi a înfiinţat maşini de ferestre pentru a deveni, timp lucrătorii inactiv.

Rularea mai recente codul

Inevitabil, după crearea muncitorii de afaceri logica ta se va schimba, bug-uri va fi găsit, mai eficiente codul de mai rapid va fi produs lăsând muncitorii aşezat în jurul prelucrarea datelor folosind mirositor codul vechi . Cum apoi să ne asigurăm că suntem folosind întotdeauna ultima versiune şi cea mai mare de scripturi noastre de prelucrare?

Exista cateva metode simple foarte uşor am putea face acest lucru, truc, cu toate acestea, este de a reduce puterea de procesare şi traficul din reţea în realizarea acestui lucru. Sa incepem cu cele mai simple de soluţii şi îmbunătăţi-l lent, pe o pereche de iteraţii.

Prima metodă ar fi pur şi simplu pentru a conecta la serverul nostru de control de locuri de muncă (prin samba, FTP, sau similar) şi trage în jos cea mai recentă versiune a codului. Nu sunt foarte eficiente, dar va face treaba. Permite îmbunătăţirea pe care oarecum, cum despre crearea unui script rsync şi folosind faptul că de fiecare dată în schimb? Alternativ, ceea ce despre punerea ultimele noastre scriptul care procesează în subversiune verificarea codul iniţial şi apoi actualizarea doar codul nostru pe fiecare rula ( svn update )?

În final am putea termina cu un script bash (numit de către cron la fiecare 10 minute), care arată la fel de simplu ca acest lucru:

  #! / Bin / sh
 dacă topor ps | grep-v grep | grep php > / dev / null
 apoi
     echo "de locuri de muncă este în prezent de procesare, ieşire"
 altfel
     echo "Iov nu se execută, începe acum"
     cd / cale / către / de lucru / copiere
     svn update
     php yourJobProcessingScript.php
 Fi 

Acum putem fi siguri că cu fiecare rula suntem rulează cu siguranta cel mai nou cod. Suntem asigura acest lucru prin actualizarea bazei noastre de cod fiecare şi de fiecare dată vom efectua un a alerga şi reducerea traficului în reţea prin transferarea doar diferenţele fişier în reţeaua noastră.

În setup demonstraţie mea, am făcut exact ca mai sus. Subversion a fost instalat pe serverul meu de prelucrare de locuri de muncă şi am tras pur şi simplu cel mai nou cod de la sucursala "lucrător" folosind 'svn update ". Am adăugat, de asemenea, o etichetă număr de versiune a script-ul meu de procesare, care a fost returnat în baza de date ca parte a returna rezultate. În acest fel am putut vedea că codul meu a fost în curs de actualizare de fiecare dată am copiat în trunchiul meu şi anume ramura lucrător că am fost cu siguranta rulează script-ul mai recente de prelucrare.

Folosind cele mai recente date

Dacă procesarea dvs. de locuri de muncă face ca utilizarea de surse de date, apoi la un moment dat acestea vor fi actualizate prea. Excepţia cazului în care suni sursele de date pe o bază foarte rare ai de gând să inundaţii reţea cu trafic de îndată ce muncitorii dumneavoastră începe să fie difuzate aducand totul într-un impas. Pentru soluţie mea am decis că aş dori să se mute sursele mele de date cu VMS în jurul meu.

Ţineţi esti cai acolo! Ce se întâmplă dacă datele sursele mele sunt enorme? Ei bine, aceasta este într-adevăr un caz de cât de mult sunt date vorbim? Acesta poate fi mai rentabilă de a instala un hard disk mai mare suplimentare în fiecare maşină decât să achiziţioneze un server de prelucrare suplimentară. Aceasta este o chestiune de buget şi este de până la afaceri pentru a decide. Se poate că sursele de date dvs. sunt atât de mari încât doar sa imposibil să se păstreze această sumă de date în maşinile lucrător dumneavoastră. În acest caz, ce aţi face? Ei bine, am putea uita la a apela la un server de date locale, dar acest lucru ar putea cauza probleme cu reţeaua. În acest caz, un sistem de reţea, cum ar fi acest lucru poate deveni nerealist să includă în mediul de birou. Acesta poate fi, de asemenea, ca poti sa te uiti în care rulează strategii alternative, de exemplu de asteptare numai muncitorii între 20 şi 6 dimineaţa în fiecare noapte şi / sau date throttling sursă de cereri.

Mutarea de pe vă permite să spun suma noastre de sursele de date la 100GB de date. Ei bine, da asta e destul de un pic de date pentru a vă deplasa în jurul reţea pe o actualizare. Cum ne-am asigura că avem cea mai recentă copie a datelor în acest caz? Rsync este o posibilitate, dar personal cred că prin rularea ta sursa de cele mai recente date pe server-ul dvs. de prelucrare de locuri de muncă şi înfiinţarea asta ca un maestru în replicare (cu un jurnal frumos bin lung) ar putea fi mod de a merge:

replicare Prin setarea fiecare dintre muncitorii sus ca un sclav la actualizări server de locuri de muncă de control la surse de date dvs. va prelinge în jos frumos pentru lucrători, fără o creştere uriaşă în activitatea de reţea (cu excepţia cazului în care este să efectuaţi o actualizare de date uriaşă şi toate lucrătorii lovi cu piciorul în la o dată). Acest lucru are avantaje faţă de rsync în care nu ar lua o pauză lungă înainte de fiecare loc de muncă; ca actualizările bazei de date, mysql daemon pe lucrător dvs. se va actualiza continuu datele sale, în timp ce de prelucrare continuă.

Acest lucru este cum am înfiinţat serverul meu demonstrative. Pentru a configura replicare am urmat ghidul de pe site-ul mySQL ( Înfiinţarea replicare ) şi în 20 de minute am avut inital asistentul meu replicarea controlul setul de date de locuri de muncă servere. Pentru fiecare lucrător suplimentar setările şi procesul de replicare a lucrat de fiecare dată când VM a fost copiat.

Rezumatul

În această secţiune din articol ne-am uitat la cât de uşor şi fără durere este de a menţine codul de prelucrare până la data de rsync using sau subverion (SVN) pentru a face munca şi pentru a reduce traficul de reţea în acelaşi time. Am discutat, de asemenea, modul în care pentru a păstra informaţiile dvs. sursă de date de până-la-la data de permiţându-i să curgă în jos pentru fiecare dintre muncitorii. Astfel, am zona asigurându-se că ne ţine pasul cu logica de afaceri şi de informaţii în sistemul nostru de reţea de birou. Nu va fi, evident, nenumărate alternative pentru efectuarea acestor sarcini, dar aici au fost două exemple simple pentru a arăta cât de uşor o soluţie este de a veni cu.

Următorul timp

În partea finală a acestei serii, aptly numit Partea 5 , vom discuta despre implementarea acestui sistem. Voi rezuma ceea ce a fost învăţat şi ceea ce am reuşit să creeze.

Office Grid Computing folosind medii virtuale - Partea 3

Prin Watkin Lloyd Steven , vineri 04 decembrie 2009 23:37

Introducere

Lucrez într-o companie unde vom rula lot multe locuri de muncă prelucrarea milioane de înregistrări de date în fiecare zi şi m-am gândit recent la toate maşinile care stau in fiecare zi nu face nimic pentru mai multe ore. Nu ar fi bine dacă am putea folosi aceste maşini să consolideze puterea de procesare a sistemelor noastre? În acest set de articole am de gând să se uite la beneficiile potenţiale ale angajarea unui birou grilă utilizând medii virtualizate.

În partea a 2- am uitat la un server de locuri de muncă va rula, şi cum de locuri de muncă ar trebui să fie configurat pentru a realiza cea mai mare cantitate de prelucrare în acelaşi timp asigurându-se că fiecare loc de muncă este procesat fără a eşua.

Configurarea lucrător dumneavoastră - sau server Limp

Următorul pas în acest proces este de a configura muncitorii virtual. Pentru acest lucru am de gând să utilizeze o instalare a CentOS folosind VirtualBox. Am de gând să instaleze MySQL şi PHP pe server, de asemenea, cunoscut ca un Limp (Li vomica, m ySQL, P HP) Server (poate am făcut ca numele sus).

  • Instala VirtualBox pe maşinii dvs. cu Windows (urmaţi link)
  • Descărcaţi şi instalaţi CentOS (versiunea curenta 5.3) într-o maşină virtuală creată

Nu există nici un punct de gând să-mi acest acolo, probabil e 1.000 de tutoriale mare acolo (ok, aici e unul: Crearea şi Managing maşină virtuală CentOS sub virtualbox ). Punct important de notat este faptul că Cred că i-am sunat virtual GridMachine masina mea.

În ceea ce priveşte opţiunile mele de client virtualizare şi sistemul de operare merge nu există nici un motiv de mare convingător pentru fiecare alegere. VirtualBox este ceva Eu folosesc pe maşina de casa mea şi este susţinută de cele trei sisteme de operare majore. Am ales ca CentOS sale un sistem de operare stabil si bun sa-l folosesc pe serverul de web. Eu sunt un mare credincios în instrumentele potrivite pentru locul de muncă (deşi eu sunt aplicabile "utilizarea mai rapidă şi mai uşoară pentru tine" mentalitatea aici), aşa că, dacă sistemul de operare X ruleaza cod mai repede şi mai eficient utilizarea că, în loc:)

Important, asiguraţi-vă că VM dvs. utilizează DHCP, altfel pentru fiecare noua maşină virtuală ar trebui să fie configurat separat, care este ceva ce noi nu face folosind want.By DHCP nu avem nevoie pentru a configura setările de reţea individual pentru maşini de lucrător, DHCP va înmâna la IP-uri pentru tine. Prin urmare, puteţi copia maşina virtuală despre biroul fără a se preocupa de stabilire fiecare up (acest îmbunătăţeşte scalabilitatea şi reduce administrare lucrător).

Procesul ar trebui să vizeze obţinerea ar fi pentru a obţine o nouă maşină fizică, instala VirtualBox, şi apoi destul de mult de mobilizare a imagine virtuală, fără nimic altceva. Ar putea fi înţelept să setup toate lucrătorii pe o altă subreţea, astfel încât să puteţi cel puţin vedea cât de multe masini sunt difuzate. Veţi avea nevoie, de asemenea, pentru a configura masini pe un închiriere pe termen lung sau DHCP leasing nelimitat.

Cum de a rula locuri de muncă pe lucrător

Acesta este un domeniu interesant şi există mai multe metode de locuri de muncă valabile pentru prelucrare pe muncitor. Aici voi discuta doar doua dintre cele mai evidente:

  • rularea script mereu: Un scenariu, fie el un script de shell, sau un script PHP este executat o singură dată pe muncitor si ruleaza ca parte dintr-o buclă infinită. Am actualizat această metodă ca fiind unul accident de script-ul şi potenţial muncitorii dvs. va înceta să ruleze fără un fel de intervenţie.
  • executarea Cron script bazat: la fiecare X minute daemon cron începe un apel la script-ul dvs. pentru a obţine lucrurile sa mearga. Fără unele verificarea acest lucru ar putea duce la mai multe copii multe dintre script-lucrător pe care rulează.

Decizia mea a fost să meargă cu cron, care incepe un script de shell la fiecare 10 minutes. shell script-ul meu îndeplineşte următoarele atribuţii:

  1. Obţine o listă şi grep acest proces pentru "php". În cazul în care nu a fost găsit apoi se continuă.
  2. Apel codul de locuri de muncă, în cazul meu, acest lucru ar fi ceva PHP bazate pe
  3. script de munca completeaza rula sale
  4. Gata să meargă din nou la apel corespunzătoare următoarea

bash script-ul meu arata ceva de genul următor:

  #! / Bin / sh
 dacă topor ps | grep-v grep |> grep php / dev / null
 apoi
     echo "de locuri de muncă este în prezent de procesare, ieşire"
 altfel
     echo "Iov nu se execută, începe acum"
     php yourJobProcessingScript.php
 Fi 

Notă: ecou sunt aproape complet inutil, dar poate ajuta la următoarea persoană care vine de-a lungul pentru a încerca şi să le editaţi.

Concluzionează că înfiinţarea a maşinii virtuale lucrătorului, rapid, simplu şi uşor de a copia la fiecare nouă piesă de hardware, care este primit. "Inteligenţa" a sistemului de reţea într-adevăr nu este vizualizat în sistemul de operare, de-a face cu codul creat pentru a procesului de locuri de muncă, configuraţia de locuri de muncă, şi în asigurându-se că locul de muncă se execută atunci când este cazul (adică atunci când gazda este inactiv ).

Configurarea Windows pentru a iniţializa Lucrătorii

Prima sarcină este de a lucra la comanda, necesare pentru funcţionarea maşinii virtuale din linia de comandă Windows. Dacă aţi instalat VirtualBox în locaţia implicită şi aţi numit lucrător GridMachine comanda dvs., atunci trebuie să încărcaţi până lucrător dumneavoastră este:

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

Cu toate acestea pentru a rula script-ul într-un "cap" de stat avem nevoie pentru a utiliza:

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

Aceasta va porni maşina virtuală, fără GUI şi lăsaţi-o pentru a salva de stat cu graţie. Al doilea argument se opreşte RDP aşa că nu intră în conflict cu ferestre RDP, sau vă dau un mesaj despre ascultare pe portul 3389. Numele maşinii virtuale este sensibil caz!

Apoi, va trebui să setaţi Windows până la a lovi cu piciorul off VM nostru lucrător de îndată ce aparatul a fost inactiv. Pentru a face acest lucru (pe Windows XP), veţi avea nevoie pentru a merge Start -> All Programs -> Accesorii -> System Tools -> Scheduled Tasks ca de mai jos:

sarcinilor planificate

faceţi clic pe Următorul pe "Add Scheduled Task", urmată de a căuta pentru a adăuga un program personalizat. Navigaţi la script-ul dvs. VBoxManage şi faceţi clic pe OK. Programul de activitate pentru oricare dintre opţiunile (vom schimba această intr-un minut) şi a continua. După sărind peste ferestrele urmatorul ecran vă va întreba cine doriţi să executaţi această sarcină, aş sugera fie "administrator" sau de a crea un nou utilizator privilegiat. Amintiţi-vă noi nu vrem să se amestece cu personalul cont standard pe masina de la orice punct. Faceţi clic pe opţiunile următoare şi verificaţi arată avansate pentru această sarcină.

La sfârşitul casuta alerga adăuga şir "GridMachine startvm" noastre şi să se asigure că rula numai atunci când este conectat în stânga unticked. Vizitaţi sarcina programul următor şi de a schimba programul drop jos la opţiunea "atunci când idle", alege suma de timp doriţi ca aparatul să fie inactiv înainte de a trece la următoarea filă.

Pînă la urmă opţiunea care statele opri activitatea dacă a fost difuzate suma X de timp, dar nu bifaţi opţiunea de a opri sarcina dacă maşina nu mai este inactiv.

program

Asta e, atunci pentru configurare gazdă ferestrele!

Rezumatul

În această parte ne-am înfiinţat-o maşină virtuală să acţioneze ca un lucrător, precum şi modul în care noi o numim si executa script-urile noastre de locuri de muncă de prelucrare (pentru mine un script PHP). De aici ne uităm la cum să înfiinţeze copii noastre de Windows pentru a porni o maşină virtuală, în modul de cap atunci când calculatorul devine inactiv, şi de a salva starea sa atunci când utilizatorul reia de utilizare a maşinii. Sperăm că în acest moment vedeţi cât de simplu este de a înfiinţa un astfel de sistem şi sunt mâncărime pentru a obţine unele experimente tine merge!

Următorul timp

În partea 4 , vom fi uitat la utilizarea instrumentelor pentru a se asigura că rulaţi cea mai recentă versiune a datelor şi sursele de cod, astfel încât rezultatele obţinute sunt intotdeauna la curent cu cele mai recente informaţii de afaceri şi de logică.

Office Grid Computing folosind medii virtuale - Partea 1

Prin Watkin Lloyd Steven , vineri 04 decembrie 2009 11:23

Introducere

Lucrez într-o companie unde vom rula lot multe locuri de muncă prelucrarea milioane de înregistrări de date în fiecare zi şi m-am gândit recent la toate maşinile care stau in fiecare zi nu face nimic pentru mai multe ore. Nu ar fi bine dacă am putea folosi aceste maşini să consolideze puterea de procesare a sistemelor noastre? În acest set de articole am de gând să se uite la beneficiile potenţiale ale angajarea unui birou grilă utilizând medii virtualizate.

Ca un PHP developer am de gând să utilizeze instrumentele pe care am folosi în fiecare zi şi anume, Linux, mySQL , PHP, VirtualBox şi Subversion (SVN). Cu toate acestea Sper ca acest ghid va adapta la alte limbi şi tehnologii la fel de bine.

Soluţia pe care o oferă va fi foarte vag în funcţie de tipul de prelucrare am fi avut nevoie pentru a realiza toate acestea, acest lucru nu poate fi adevarat prin tot articolul ca voi schimba lucrurile spre simplitate, sau pentru a produce scenarii mult mai interesante de utilizare.

Aceste medii virtualizate va rula pe maşini Windows, deoarece aceasta este ceea ce majoritatea birourilor alerga. Prelucrarea ca maşini de birou nu ar trebui să interfereze cu personalul care utilizează aceste maşini, ar trebui să nu necesită întreţinere la maşină, şi să fie uşor dislocabile pentru maşini noi ca acestea vor deveni disponibile. De asemenea, noi maşini virtuale nu ar trebui să necesită nici o configurare suplimentare, deoarece aceasta reduce foarte mult scalabilitatea şi uşurinţa la care reţeaua poate fi extins.

De ce Implementaţi un Grid Computing Office?

În primul rând poate te gandesti, de ce nu se utiliza doar o resursă cloud computing, cum ar fi Amazon EC2 platforma lui ? Ei bine, motive ar putea fi mai multe, de exemplu:

  • Tu nu va încredinţa anumite date la un mediu de cloud computing
  • Nu poţi pune anumite date într-un mediu de cloud computing pentru motive juridice (de exemplu, date ieşirea din ţară), potenţial pentru motive legale, de exemplu, înregistrări NHS.
  • Doriţi să păstraţi unităţile de procesare şi aproape au control deplin asupra hardware prea
  • Nu aveţi fonduri proiectul de a executa instanţe nor
  • biroului tău nu are o conexiune la internet şi, prin urmare, ei nu este posibil de a utiliza o resursă nor
  • Tu nu-mi place ploaia, norii sugerează ploaia, prin urmare, vă păstraţi bine departe

Sunt sigur că lista ar putea continua, dar cred că e suficient pentru acum.

Avantajele unui Grid Computing Office

Ei bine, vă permite să faceţi unele matematică (şi în stil fizica adevărat vă permite să facă unele presupuneri zdrobitoare). Imaginaţi-vă ce aţi server mare de prelucrare musculos rulează sute de locuri de muncă pe zi. În biroul dumneavoastră aveţi 50 de maşini care sunt inactive 16 ore pe zi, fiecare dintre aceste masini este de 10%, la fel de puternic ca procesare musculos Sever. (Toate rezultatele aici sunt rotunjite pentru a creşte performanţele subestima).

Deci, o masina * 10% * putere 2 / 3 timp = 0.067 adică 1 prelucrare desktop în timp inactiv ar putea plin proces de 6 locuri de muncă pe zi.

Dacă scară acum asta este nevoie de 15 desktop-uri inactiv la proces ca multe locuri de muncă pe zi, ca principal server prelucrare dvs. nu.

Deci, în pretinde biroul nostru de 50 de masini noi ar putea creşte puterea de procesare nostru de la 1 server până la 4 servere de prelucrare complet, sau am putea fi de prelucrare a 400 locuri de muncă pe zi in loc de 100.

Observaţi, nu pentru investiţii în hardware nou compania ta tocmai a crescut capacitatea de prelucrare a lot de 4 ori! Potenţial ai de gând să crească de utilizare dvs. de putere, dar de cele mai multe medii de birou am fost la maşini sunt, în general, pe stânga peste noapte, oricum, asa ca ai putea vedea acest lucru ca pe o iniţiativă verde.

Alte avantaje înseamnă, de asemenea, că investiţiile în noi (sau actualizate), serverele de procesare poate fi amânată în cazul în care maşinile de birou sunt suficiente şi că, după cum sa va imbunatatiti puterea de maşini de birou grila de la birou devine mai puternic în mod automat.

Tehnologii

Ce ai nevoie? (Sau, mai corect ceea ce am folosit):

  • Idle echipamente de birou (in cazul meu un laptop Windows XP vechi de rezervă)
  • VirtualBox (sau un alt client software de virtualizare)
  • O maşină virtuală cu PHP, mySQL running execută o tăietură în jos sistem de operare, eu sunt de asteptare aceste Limp serverele mele:)
  • Locuri de muncă pentru a rula
  • server de locuri de muncă (poate fi o altă maşină virtuală undeva)

Locuri de munca tipice

Tipurile de locuri de muncă că acest sistem este proiectat pentru a rula este după cum urmează:

  • Sistem primeşte o listă de date pe care avem nevoie pentru a se potrivi şi a reveni rezultate
  • Potrivire constă în verificarea / cauta mai multe (destul de statică) surse de date
  • Rezultate din sursele de date poate necesita mai mult de validare, care fuzionează, verificarea de surse de date suplimentare ca răspuns la rezultatele
  • De date este returnat cu înregistrări de potrivire, complet validate şi prelucrate
  • Fiecare înregistrare în termen de un loc de muncă este independent de restul

Deci, practic suntem în căutarea la rularea de locuri de muncă care necesită un amestec de căutări de baze de date şi unele ronţăit număr, un scenariu destul de tipic într-un mediu de afaceri.

Grila de soluţii nu sunt numai avantajoase pentru prelucrarea de locuri de muncă de acest tip. Practic, orice proces care poate fi împărţită în unităţi independente pot fi rulate în paralel. Consultaţi acest wikipedia pentru exemple şi mai multe informaţii: Grid Computing , dar o serie de exemple celebre sunt Seti @ Home şi BIONC . Există cadre pentru rularea grile de calcul, iar acestea sunt bine în valoare de căutaţi în.

Ceea ce vom realiza?

Până la sfârşitul acestor articole sper să demonstreze că implementarea unei grile de birou nu trebuie să fie extrem de scumpe sau consumatoare de timp. Am de gând, pentru a discuta:

  • Configurarea sistemului de control de locuri de muncă, de configurare de locuri de muncă
  • Crearea o maşină corespunzătoare de procesare virtuală
  • Cum sa configuram sistemul de pe o maşină Windows
  • Asigurarea pe care îl utilizaţi cel mai nou cod şi de date
  • Desfăşurare şi benchmarking
  • Privind în perspectivă

Voi fi de constructii (ok am construit, scris atunci acest lucru) o cerere de exemplu pentru a testa conceptele pe o maşină locală utilizând Windows XP şi maşină "GridMachine" meu virtual. Serverul de locuri de muncă de control mea va fi principalul masina mea care ruleaza Fedora 11 .

Acest lucru este în nici un fel menite să demonstreze existenţa unui sistem complet de lucru robust, sa însemnat mai mult de o demonstraţie şi discutarea care arată că aceste lucruri pot fi realizate într-un spaţiu destul de scurtă de timp şi la costuri mici. Vă rugăm să nu ezitaţi să trimiteţi-mi orice comentarii, corecturi sau îmbunătăţiri şi voi face meu cel mai bun pentru a menţine acest articol actualizate pentru a se potrivi.

Următorul timp

În partea a 2- I va începe căutarea de la sistemul de control de locuri de muncă, şi uită-te în modul de locuri de muncă ar trebui să fie configurat pentru a realiza cea mai mare cantitate de prelucrare în acelaşi timp asigurându-se că fiecare loc de muncă este procesat, fără a eşua.

Office Grid Computing folosind medii virtuale - Partea 2

Prin Watkin Lloyd Steven , vineri 04 decembrie 2009 11:23

Introducere

Lucrez într-o companie unde vom rula lot multe locuri de muncă prelucrarea milioane de înregistrări de date în fiecare zi şi m-am gândit recent la toate maşinile care stau in fiecare zi nu face nimic pentru mai multe ore. Nu ar fi bine dacă am putea folosi aceste maşini să consolideze puterea de procesare a sistemelor noastre? În acest set de articole am de gând să se uite la beneficiile potenţiale ale angajarea unui birou grilă utilizând medii virtualizate.

În partea 1 I-am dat o imagine de ansamblu a sistemului şi tehnologii Eu voi fi folosind, precum şi discutat ca unele dintre motivele potenţialului de ce v-ar doriţi să creaţi o grilă de birou.

De locuri de muncă de control

Dacă aveţi de gând să fie difuzate de locuri de muncă, atunci ai de gând să nevoie de o modalitate de a le gestiona. Sistemul dvs. de control de locuri de muncă (pe serverul dvs. de locuri de muncă) trebuie să fie foarte bine gandit, chiar înainte de a încerca pentru a rula o grilă de birou. Deci, în primul rând, care sunt sarcinile pentru un sistem de control de locuri de muncă:

  • O parte din locuri de muncă la cererea lucrătorilor
  • Spune-lucrătorilor ce tip de locuri de muncă pentru a rula
  • Track locuri de muncă
  • Asiguraţi-vă că locurile de muncă sunt doar rula o singură dată
  • Furnizeze date de locuri de muncă pentru lucrători, sau cel puţin să le spună unde să-l

De asemenea, sistemul trebuie să fie extensibila, o soluţie care funcţionează de acum într-un singur caz poate fi extinsă pentru a rula mai multe tipuri de locuri de muncă, de afaceri vede în valoare într-o soluţie de reţea. De exemplu, locuri de muncă poate câştiga priorităţile, mai mult de un tip de loc de muncă ar putea exista (de exemplu, mai multe baze de cod), în cele din urmă s-ar putea rula chiar mai multe maşini diferite lucrător care sunt optimizate pentru fiecare tip de loc de muncă (cu toate că se mişcă departe de "lucrător generic "idee). Încercaţi întotdeauna să ne gândim la viitor, atunci când sistemele de dezvoltare, o viziune pe termen scurt poate duce la frustrare pe termen lung şi timpul de dezvoltare a crescut.

Server de locuri de muncă

Vom avea nevoie de undeva de locuri de muncă pentru a controla noastre din, acest lucru ar trebui să fie singurul sistem în grila de dvs., care are o adresă pentru localizarea resurselor fix, să fie ca o adresa IP, numele gazdei, URL-ul (folosind DNS intern), etc Acest lucru se datorează faptului că lucrătorii trebuie să ştie unde să caute locuri de muncă, muncitorii au nevoie pentru a găsi sistemul de control de locuri de muncă (nu sistemul de control al găsi locuri de muncă a lucrătorilor).

Serverul de locuri de muncă în sine nu are într-adevăr o sarcină complicată (într-un sistem de bază oricum), are nevoie pentru a stoca o listă de locuri de muncă, o parte din locuri de muncă, de a primi rezultatele, şi, ulterior, le stoca pentru regasirea ulterioara. Modul în care aceste părţi ("mână în locuri de muncă", cum ar fi) sunt definite poate fi foarte de bază. Mai tarziu ne putem extinde sistemul pentru a include o interfata de administrare pentru a adăuga, edita, şterge, suspenda locuri de munca dar acest lucru este dincolo de acest exerciţiu.

Nu există nici un motiv apoi că serverul dvs. de locuri de muncă nu ar putea fi o maşină virtuală care rulează în cadrul server-ul dvs. principală de procesare cu condiţia ca aceasta să nu scurgere prea multe resurse de la ea. Serverul de locuri de muncă are nevoie de toate acestea, disponibilitate ridicată, dacă se duce în jos pe o vineri seara ai de gând să-şi piardă un weekend întreg de procesare, potenţial vă costă câteva săptămâni în valoare de timp de prelucrare (în comparaţie cu server-ul dvs. principală de procesare numai) . Poate doriţi să ia în considerare punerea server-ul dvs. loc de muncă la un mediu echilibrat de încărcare pentru disponibilitate ridicată.

Basic Setup

Configurare de bază pentru serverul de locuri de muncă noastră va consta din ceea ce am apeland unul de la Limp serverele mele (care este vomica Li, ySql m, P HP). Codul se execută pe lucrători Thea va funcţiona efectiv de locuri de muncă ce se poate rula prin interactiunea cu bazele de date de locuri de muncă, cu sistem de control. Mai târziu am putea crea un serviciu web şi de fapt mână în locuri de muncă, mai degrabă decât cu muncitorii face munca grea ei înşişi, dar de acum vom continua folosind principiul KISS (Păstraţi-l simplu, prost!).

Deci, vă permite să creaţi trei mySQL tabele să se ocupe de locuri de muncă. Acestea vor fi locuri de muncă "`, `jobRecords`, `şi` jobResults.

locuri de muncă de masă Aici Sunt folosind SQL Buddy un pic mai mare alternativă la phpMyAdmin doar pentru că sa mai uşor de instalat pe CentOS (pentru alţii a se vedea: 10 alternative Mare la phpMyAdmin )

Acest tabel este format din 5 domenii simple,

  • id: identifica în mod unic de locuri de muncă
  • Numele: Ar putea fi o referinţă client, sau orice număr de alţi identificatori
  • Status: Ai nevoie să ştie unde se află la locul de muncă, de exemplu,
    • 0: Nu a început
    • 1: a crescut
    • 2: Finalizat
  • started_by: Cine a inceput sa faca treaba? This nu este în totalitate necesar, dar este un frumos de a avea. Aş sugera de urmărire lucrătorilor prin adresa IP din reţea
  • started_at: Când a început lucrătorul de locuri de muncă? De urmărire de locuri de muncă care nu au finalizat în termen de suma X de timp, ştim că avem nevoie pentru a ridica de locuri de muncă, din nou, şi începe de prelucrare de către un alt muncitor. Lucrătorii ar putea opri de prelucrare / go offline pentru orice număr de motive, pene de curent, accident, pierdere de reţea, etc

Este usor de modul în care acest tabel poate fi extins cu câteva câmpuri suplimentare pentru a permite urmărirea statisticilor, o coloană de timp finisaj pentru a vedea cât de mult a luat loc de muncă, un contor pentru a vedea cât de mulţi lucrători ridicat de locuri de muncă (evident, acest lucru trebuie să tind să 1), prioritate de locuri de muncă, lista poate merge pe şi de pe. În mai multe scenarii complexe de locuri de muncă ar fi posibil să se precizeze cât de mult memorie lucrătorul ar fi nevoie de acces la (şi, prin urmare, utilizarea numai de către lucrători potrivit), sau chiar ce tip de lucrător ar fi necesare.

Să adăugăm câteva locuri de muncă de exemplu:

exemplu de locuri de muncă

Tabelul următor din nou, este destul de simplu de înţeles, aceste înregistrări sunt noastre de locuri de muncă. Ele sunt legate de tabel principalele locuri de muncă de către o coloană `jobs_id`. Alcătuiesc din acest tabel depinde foarte mult de datele de care aveţi nevoie să furnizeze lucrătorilor dumneavoastră, vă permite să fac un exemplu foarte simplu în cazul în care avem patru coloane:

  • id: ID-ul de înregistrare
  • Numele: Numele Persoana
  • Adresa: adresa Persoana
  • jobs_id: ID-ul de locuri de muncă că acest record este legat de

Tabelul de a treia şi ultima constă într-un tabel de rezultate, aceasta are cam la fel alcătuiesc ca masa noastră înregistrări, şi cu adăugarea unor coloane ar putea face parte din tabelul de înregistrări:

  • job_record_id: Link rezultatul la masa de locuri de muncă
  • Rezultatul: date de rezultat

... Şi asta e tot ce ai nevoie pentru control de locuri de muncă! (Deşi la un nivel de bază) În cazul meu am arătat într-un alt tabel în cazul în care datele mele pentru a procesa a fost localizat, dar acest lucru ar putea la fel de usor a fost un fişier, parametri pentru a rula cod de simulare, îl nume.

Selectarea unui loc de muncă

După cum sa menţionat anterior, muncitorii vor face noastre de management de locuri de muncă pentru noi, pentru acum, deci tot ce trebuie să facem este într-adevăr găsi un loc de muncă, care are nevoie de prelucrare şi pentru a obţine informaţii. Cum ne-am face asta? Ei bine alege criteriile noastre de locuri de muncă de selecţie şi caute locuri de muncă, în SQL am făcut următoarele:

  1. Luaţi orice locuri de muncă care nu sunt marcate ca fiind complet, dar de la muncitor noastre şi le reseta (__ME__ substitui cu un identificator cel mai simplu, ar fi adresa IP):
      UPDATE `de locuri de muncă` SET `statutul` = 0, unde "starea = 1` si `started_by" = __ME__; 
  2. Folosind criteriile noastre de locuri de muncă de selecţie, selectaţi un loc de muncă şi sistemul de control spune că acest lucrător se ocupă cu ea:
      UPDATE `de locuri de muncă` SET `statutul` = 1, "started_by = __ME__`, `started_at` = NOW (), unde "starea" = 0 sau
     (`Statutul` = 1 si `started_at`> DATE_SUB (NOW (), INTERVAL X HOUR)) ORDER BY `id` ASC; 

    Hapsân de locuri de muncă care nu s-au întors rezultate în suma X de timp, ne asigurăm că toate locurile de muncă sunt difuzate în eventualitatea unui lucrător crashing sau merge AWOL.

  3. Next apuca detaliile de locuri de muncă, urmată de înregistrări înşişi:
      SELECT * FROM `de locuri de muncă` WHERE `started_by` = __ME__ LIMIT 1;
     SELECT * FROM `job_records` WHERE `id` = __JOBID__; 

La finalizarea de locuri de muncă ne introduce înregistrările noastre rezultat şi marca de locuri de muncă ca fiind completă. Amintiţi-vă de locuri de muncă se poate suspenda / relua în orice moment, pentru a permite unele robusteţe în script-ul dvs.. S-ar putea ca sarcina suspendă jumătate prin actualizarea sistemului de control de locuri de muncă, astfel încât verificarea numărului de înregistrări într-un loc de muncă şi numărul de rezultate salvate înapoi la sistemul de control de locuri de muncă ar fi o mişcare înţeleaptă.

În plus, în timp ce acest lucru demonstrează cât de locuri de muncă pot fi selectate şi gestionate dintr-o-cadru interogare SQL ar trebui să fie într-adevăr abstractizare de locuri de muncă de control al dvs., astfel că, dacă vă hotărâţi să treceţi la utilizarea unui serviciu web, un bazate pe sistemul de fişiere, XML , sau orice alt numărul de sisteme de aceasta nu va afecta codul de mai sus ea.

De locuri de muncă de configurare

Aspectul următoare să ia în considerare este dimensiunea de locuri de muncă şi de configurare. De joc cu o configuraţie de locuri de muncă, putem asigura un echilibru excelent între viteză, procesul de replicare, şi fiabilitate. Ia un cuplu denota scenarii:

  1. Ocuparea forţei de muncă o zi fiecare pentru a rula: Acest lucru înseamnă că muncitorii nevoie de 15 zile pentru a procesa fiecare loc de muncă (amintesc 10% din puterea de 2/3rds din timp). Acest lucru nu este în mod clar o configuraţie înţelept, dimensiunea de locuri de muncă este mult prea mare! Ar fi nevoie de cel puţin dublu faţă de timp pentru a obţine un loc de muncă prelucrate în cazul în care lucrătorul iniţială merge AWOL (timp pentru a ridica că nu a returnat un rezultat plus timp reprelucrare). Într-un ideal ai avea cel puţin un loc de muncă plin cu uşurinţă eliminat de la sfârşitul fiecărei perioade de ralanti de lungă, în acest fel vă păstraţi de locuri de muncă peste bifând şi în cel mai rău caz, un loc de muncă ar dura două zile pentru a procesului ar trebui să meargă primul lipsesc.
  2. Ocuparea forţei de muncă 1 minut pentru a rula: Acest lucru înseamnă că muncitorii dura aproximativ 15 minute pentru a rula fiecare loc de muncă. Deşi acest lucru poate părea iniţial ideal, puteţi câştiga de prelucrare de muncă suplimentare în timpul prânz, pauzele de cafea, întâlniri, etc acest scenariu pune presiune pe alte zone ale sistemului dvs. şi introduce propriile sale probleme. De exemplu, în primul rând de instalare / raportul timpului de procesare este de gând să merg dreapta jos, a pierde, prin urmare, eficienţa sistemului. Reteaua ta va fi de streaming constant informaţii de locuri de muncă pentru lucrătorii în diferitele personalului frustrante care sunt dong lor de zi cu munca de zi. Eşti de asemenea, va pune presiune mai mult pe serverul dvs. de prelucrare de locuri de muncă, deoarece trebuie să antena afară o mulţime şi o mulţime de piese mici de lucru în mod regulat. În sfârşit, în această situaţie dacă serverul dvs. de locuri de muncă se duce în jos ai de gând să creaţi un jurnal imens din spate de sarcini neîndeplinite în timp ce mai mare de locuri de muncă ar putea de prelucrare a continuat blissfully cunoştinţă faptul că serverul de locuri de muncă a fost confruntă cu dificultăţi.

În realitate, nu va fi nici o configurare ideal pentru configurarea reţelei dumneavoastră, mult depinde de resursele disponibile, tipuri de locuri de muncă, cerinţele de timp de răspuns de locuri de muncă, capacitatea de reţea, şi aşa mai departe. Toate acestea, unele linii directoare ar fi:

  • Dimensiune de locuri de muncă, astfel încât fiecare lucrător poate obţine prin intermediul a cel puţin 3-4 locuri de muncă într-o perioadă de 15 ore (cea mai lunga perioada de timp probabil mers în gol)
  • Joaca-te cu dimensiunea de locuri de muncă, astfel încât timpul de setare devine destul de nesemnificative în comparaţie cu timpul de prelucrare (ţinând cont de punctul de mai sus).
  • În cazul în care un loc de muncă nu este complet în dubla cantitatea de timp (poate mai puţin), vă aşteptaţi să completeze aceasta presupune că sa AWOL plecat şi de prelucrare a începe cu un alt muncitor. Aceasta înseamnă că va trebui să aşteptaţi până la de trei ori lungimea normala a unui loc de muncă pentru ca acesta să completeze (eventual mai mult în cazul în care nu reuşeşte de locuri de muncă ulterioare). Este posibil să doriţi pentru a reduce acest timp, dar aveţi grijă să nu-l reduce prea mult, ca s-ar putea începe duplicarea sarcinilor de prelucrare în mod regulat.
  • De locuri de muncă ar trebui să fie independentă de cerinţe în afara cât mai mult posibil. Serverul de locuri de muncă, de exemplu, ar trebui să fie contactat doar la începutul şi sfârşitul fiecărui loc de muncă.
  • Nu satura reţeaua dvs., aceasta va avea două efecte negative, personalul zi va găsi utilizând reţeaua frustrant şi probleme pot fi cu experienţă, cu conexiuni calendarul o problema care va primi doar mai rau ca tine scara grila dumneavoastră.
  • Asiguraţi-vă de locuri de muncă poate rula pe muncitorii. În cazul în care locurile de muncă devin prea memorie de locuri de muncă intensivă sau spaţiul de pe disc intensiv va începe întreruperea şi singurul lucru veţi observa este o scădere a numărului de locuri de muncă prelucrate cu nici un motiv real de ce.

Rezultatele Trimiterea unui loc de muncă

Atunci când prezintă rezultatele unui loc de muncă, este important să verificaţi că rezultatele nu au fost prezentate de către un alt lucrător, mai ales în cazul în care lucrătorul curent a fost adormit de ceva timp.

Atunci când rezultatele sunt transmise asigura că numărul de rezultatele meciurilor numărul de înregistrări în locuri de muncă.

După cum sa menţionat anterior, şi nu poate fi peste accentuat, construi toleranta la defecte în extragerea de locuri de muncă şi prezentarea rezultatelor. Lucrătorii pot (şi cel mai probabil vor) intra în modul de suspendare la incomod de cele mai multe ori şi acest lucru trebuie să fie satisfăcute. De asemenea, încă o dată abstractizare departe depunerea dvs. rezultatele vor ajuta pentru a satisface modificări viitoare a sistemului de control de locuri de muncă mult mai uşor pentru a face faţă.

Rezumatul

În acest section am uitat la ceea ce un server de control loc de muncă trebuie să facă şi cum să obţineţi un sistem foarte de bază stabilit. Am discutat despre modul în care pentru a prelua un loc de muncă din sistemul de control şi de modul în care cel mai bine pentru a configura de locuri de muncă pentru a obţine cele mai multe nostru de sistemul dvs. reţea de birou. Pentru a termina, un paragraf sau două pe prezenta rezultatele inapoi la server de control de locuri de muncă a fost prezentat.

  • Un server de control de locuri de muncă gestionează locurile de muncă şi se asigură că toate unităţile de muncă sunt completate
  • Prin abstractizare locul de muncă selectaţi / prezentarea rezultatelor putem schimba tehnologia de server de control fără probleme de mult
  • Configuraţi-vă de locuri de muncă pentru a se asigura că acestea sunt conduse rapid şi eficient, fără a pune presiune prea mare pe infrastructura de reţea, şi fără duplicarea sarcinilor de prelucrare în mod regulat.
  • Asiguraţi-vă că construi toleranţa la erori şi checking eroare în rutine, lucrătorii pot suspenda şi relua şi incomod de cele mai multe ori. Amintiţi-vă pentru a verifica dacă rezultatele au fost deja prezentate de către un alt muncitor.

Următorul timp

În partea 3 vom crea noastre de procesare maşină virtuală şi să configuraţi Windows maşinile noastre de a deveni în timp lucrătorii inactiv.

Office Grid Computing folosind medii virtuale - Partea 5

Prin Watkin Lloyd Steven , vineri 04 decembrie 2009 11:03

Introducere

Lucrez într-o companie unde vom rula lot multe locuri de muncă prelucrarea milioane de înregistrări de date în fiecare zi şi m-am gândit recent la toate maşinile care stau in fiecare zi nu face nimic pentru mai multe ore. Nu ar fi bine dacă am putea folosi aceste maşini să consolideze puterea de procesare a sistemelor noastre? În acest set de articole am de gând să se uite la beneficiile potenţiale ale angajarea unui birou grilă utilizând medii virtualizate.

În Partea 4 ne-am uitat la utilizarea instrumentelor pentru a ne asigura că rulaţi cea mai recentă versiune a datelor şi sursele de cod, astfel încât rezultatele obţinute sunt intotdeauna la curent cu cele mai recente informaţii de afaceri şi de logică.

Pre-Deployment

Înainte de implementarea sistemului de reţea dumneavoastră dacă există un lucru pe care il faci si un singur lucru este de referinţă actual sistemul dvs.! Indiferent de ceea ce spun colegii despre cât de mult de lucru suplimentar sistemul dvs. este de gând să faci dacă nu aveţi numere pentru a sprijini această garanteaza dvs. nu sunt nimic. Deci,

  • câte înregistrări puteţi proces în prezent? Pe zi? Per ore?
  • Cât timp durează de obicei, la rândul său, în jurul unui loc de muncă?
  • Cât de mult mai mult capacitatea de ai?

Există, de asemenea întrebări suplimentare:

  • Dacă serverul dvs. de prelucrare (sau unul dintre serverele de procesare a) se duce în jos cum va afecta acest lucru capacităţile dumneavoastră, vă va fi paralizat?
  • Ce avantaje speraţi / asteptati pentru a obţine de la un sistem de reţea?
  • Sunt maşini de birou capabil să ruleze de locuri de muncă?
  • Sunt dumneavoastră (sau poate fi convertit locuri de munca) pentru a lucra în acest stil de a rula?

Ultimul punct major este de a avea nevoie de timp pe orice schimbare majoră ca aceasta. Actualizaţi codul de prelucrare pentru a lucra cu ajutorul noii metodologii, de referinţă din nou. Posibil configura server-ul dvs. de procesare pentru a rula o masina virtuala, după ce toate server de procesare va fi doar un alt muncitor (doar unul foarte puternic relativ). Permite noului proces să se stabilească.

Deployment

Sugestia mea ar fi să pop în birou un week-end efectua toate instalaţiile şi configurare. Face acest lucru doar două săptămâni înainte de vacanţă şi se lasă un alt băiat sărac ca să se ocupe cu consecinţe ... poate nu ...

De implementare pentru un sistem ca acest lucru trebuie să fie lentă. În ciuda fiind relativ simplu pentru a configura acest sistem va afecta intreaga infrastructura de birou (bine unul digital). În primul rând, pentru a lansa o pereche de maşini la un moment dat, să monitorizeze traficul de reţea, modul în care gazdele lucrător efectua pe o bază de zi cu zi. Posibil să aveţi nevoie să-şi modifice configuraţia de locuri de muncă ca răspuns la constatările dumneavoastră.

Odată ce sistemul a stabilit cu câteva maşini de (sa zicem 10% din totalul maşinilor de birou, adică 5) să ţină de monitorizare a traficului în reţea şi maşina gazdă de referinţă următoare performance. din nou, ar trebui să fie acum de prelucrare de locuri de muncă cu 33% mai mult decât prima dvs. de referinţă. Verificaţi acest lucru este atât de, sau ca esti cel puţin în acest ballpark. Dacă nu, a investiga ce se întâmplă înainte de a trece mai departe. Se repetă acest ciclu până când fericit au toate maşinile de birou care rulează fără a ucide performanţele individuale de maşină sau de rectificat de reţea într-un impas.

În orice moment să păstreze benchmarking, chiar şi după toate implementarile sunt realizate. Verifica modul în care noi actualizări cod afecta viteza sistemului dvs., verificaţi toţi lucrătorii sunt de raportare în locuri de muncă şi de prelucrare. Lent (foarte lent) increment dvs. de configurare de locuri de muncă pentru a obţine cele mai bune din partea lucrătorilor şi de reţea.

Stop!

Ce se întâmplă dacă doriţi să opriţi muncitorii de la care rulează la un moment dat? Acestea sunt toate acolo de funcţionare, regenerare, şi încearcă cele mai bune lor de a prelucra date, cum ar insecte foame. Răspunsul poate părea evident, dar merita sa adăugând doar în cazul în care sa trecut cu vederea. Pur şi simplu să editaţi script-ul dvs. de procesare cu o ieşire (0) or die () sau a unor alte declaratii de a ucide munca ta de prelucrare. Un motiv important de ce mereu am încerca să actualizeze la cea mai recentă scriptul de prelucrare înainte de a fugi!

Sistemul de demonstraţie

În scopul de a scrie acest set de articole scurte Am creat o grilă foarte mic pentru a demonstra tehnologii şi metodologii. Am citit o mulţime de articole, tutoriale, şi utilizat diverse instrumente pentru instalare şi să monitorizeze ce se întâmplă. Prin nici un mijloc am ieşit şi saturate un birou întreg cu trafic si nici nu am avut acces la un PC regulat membrii personalului pentru a vedea modul în care performanţa gazdă a fost afectată.

Sistemul meu demonstraţie a fost într-adevăr foarte umil. Am folosit meu pupitru regulate constituit ca un server de control de locuri de muncă. Pe aceasta am avut instalat MySQL server instalat configurat ca un maestru în replicare, PHP , Â şi SVN legate prin Apache (pentru acces prin lucrător VM).

Am creat apoi o maşină lucrător CentOS pe VirtualBox pe un vechi de şase ani Windows XP laptop. Am setup sarcini planificate după cum se specifică după copierea VM pe maşină şi lăsaţi-o să meargă.

Maşina virtuală a fost înfiinţat cu PHP, subversiune, si MySQL. Am verificat-o sucursală numit "lucrător" de la serverele mele de control depozit de locuri de muncă şi a făcut-vă că ar putea fi actualizată folosind 'svn update ". Apoi am mySQL ca un sclav şi verificat că datele au fost reproduce de la mySQL de pe serverul de control de locuri de muncă până la VM lucrătorului de configurare. După toată această configurare am script-ul bash şi cron de locuri de muncă.

script-ul meu de prelucrare practic a mers de-a lungul liniilor de acest lucru (chestii foarte simple):

  • Citiţi în câmpul Nume
  • Numărat numărul de nume similare, într-un tabel de la sursa de date a avut loc pe VM
  • Numărat numărul de nume de mai sus, dar impartirea numele de spatii (de exemplu, prenume, mijloc, prenume)
  • Repetat acest proces de 1.000 de ori

Fiecare loc de muncă a avut aproximativ 20 de minute pentru a rula. La un moment dat am deschis mai multe exemplare ale VM lucrător pe laptop Windows şi privit de locuri de muncă să fie verificate în afara de fiecare dintre adresele IP lucrătorului. La acest punct am confirmat, de asemenea, că replicarea repornit automat.

Părăsirea laptop la ralanti a dus la un lucrător de plecare pentru procesul de locuri de muncă de la serverul de control de locuri de muncă. Când reluarea Utilizarea laptop a existat o întârziere de aproximativ 30-60 de secunde, aceasta este o sumă semnificativă de timp şi a personalului ar trebui să fie conştienţi de faptul că maşina lor se poate opri pentru o scurtă perioadă de timp atunci când se întorc la maşină. Maşini mai noi nu pot avea o pauza de atât de mult. A beneficia de suma de prelucrare efectuate de către aceste utilaje în timpul perioadelor de ralanti care ar fi mai mari decât membrii personalului a fi nevoie să aştepte o perioadă scurtă de timp (să zicem 1 minut) pe care sosesc la maşinile lor de o dimineaţă (astept mai frecvent că acest lucru pentru un Windows Defender actualizare să aibă loc), cu condiţia ca acestea s-au făcut conştienţi de acest timp (util pentru a apuca o cafea dimineata!).

În general mă simt încrezător că am demonstrat tehnologii care ar putea fi utilizate pentru a crea un astfel de sistem. Am arătat că un astfel de sistem nu funcţionează pe o scară (foarte) mici şi cu ceva mai mult experimente ar putea fi extinse până utilizeze resursele de maşini de un birou lui. Dacă eu nu ajung la punctul de a face acest lucru, aş fi foarte interesat să ştiu / vedea când altcineva nu.

Concluzii / evaluare

Următorul pas ar fi evident pentru a obţine de fapt, un exemplu din lumea reală şi să înceapă să implementeze un sistem, cum ar fi acest lucru într-un mediu de birou şi a vedea ce se întâmplă. Solicitarea o afacere să se angajeze la acest lucru fără o companie traseu aprins pentru a dovedi tehnologia şi eficienţa poate fi un pic dificil. Grid / Calcul distribuit este foarte popular este unele cercuri şi a unor aplicatii mari (BIONC, SETI @ Home, Folding @ Home, etc). Nu am, totuşi, găsi o scară mai mică şi sistem simplu ca acest lucru în căutările mele, care ar putea fi lansate într-un mediu de birou.

Am creat un sistem practic gratuit, folosind software-ul open source cea mai mare parte şi instrumentele disponibile în aproape orice birou. Tehnologiile au fost în esenţă demonstrat şi spectacol pentru a efectua şi să lucreze cum era de aşteptat. Sperăm că am arăta că nu cu multă muncă şi cu o configurare foarte simplu se poate implementa un sistem de grid computing de birou, care este puternic, ieftin, Â şi scalabilă toate în acelaşi timp.

Odată ce un sistem este sus şi să fie difuzate nu există aproape nici un capăt la suma de personalizare şi îmbunătăţirile pe care le pot face. De exemplu, statisticile / benchmarking pot fi uşor adăugate arată în valoare de un astfel de sistem în fiecare zi. Maşini noi pot fi adăugate rapid şi uşor ca şi atunci când sosesc cu upgrade-uri la hardware-ul existent susţinerea puterea de procesare.

Sper că v-aţi bucurat de lectură această serie de articole şi sa dat hrană pentru gândire pe care rulează un sistem de reţea de birou. Soluţia prezentată aici nu va funcţiona în mod necesar în toate situaţiile, dar ar trebui să fie adaptabile pentru a vă permite pentru a obţine datele de prelucrare a face folosind soluţia ta.

Vă rugăm să nu ezitaţi să trimiteţi-mi orice comentarii, corecturi sau îmbunătăţiri şi voi face meu cel mai bun pentru a menţine acest articol actualizate pentru a se potrivi.

[Notă] copil pid XXXX semnal de ieşire Segmentation fault (11)

Prin Watkin Lloyd Steven , 11 octombrie 2009 Duminica 06:09

Dacă aţi actualizat recent PHP sau Apache poate vă vine împotriva problema de serverul Web, se întorc pagini goale, şi aruncându mesaje de eroare în jurnalele dvs. cu nici o idee de ce, aici e un mod posibil pentru a remedia problema ...

Am avut această problemă de cateva ori recent, după actualizarea Apache sau PHP pe o maşină virtuală. Prima dată când am observat eroare pur si simplu am revenit la o copie de rezervă de VM mea, dar a doua oară am realizat aş fi să se uite în această problemă.

Prima dată când am observat problema unele dintre paginile web mele au fost servit ca fişiere gol, în timp ce alţii au lucrat absolut fin. După unele investigaţii am observat că a fost scris în apache la / var / log / http / error_log cu următorul mesaj repeatidly:

[Notă] copil pid XXXX semnal de ieşire Segmentation fault (11)

Nu e aloca pentru a merge de on-line, şi de cele mai multe pagini despre el de pe traseu la nimic. Asta a spus, am redus în jos problema la PHP crashing atunci când încearcă să biblioteci dinamice care nu sunt necesare.

Privind at php.ini mea (/ etc / php.ini) am comentat toate din bibliotecile dinamice încărcate de planificare pe commenting-le înapoi în ca este necesar. Cei doi am avut de a scoate în cazul în care pdo.so şi mysql . aşa.

Odată ce acestea au fost eliminate toate paginile mele de web au fost servit bine, la fel ca înainte PHP / Apache actualizare.

Wireless pe Acer 5002 WLMi pe Linux (Fedora 11)

Prin Watkin Lloyd Steven , sâmbătă 11 iulie 2009 09:48

Aşa cum am petrecut un alt câteva ore astăzi fără acces la internet m-am gândit mai bine acest lucru în scris în jos, astfel încât data viitoare am mizerie laptop-ul meu până informaţia este uşor să se stabilească.

Practic pentru a obţine drivere wireless de lucru pentru un Acer 5002 WLMi va trebui să utilizaţi B43-fwcutter. Instrucţiunile pot fi găsite aici: Linux Wireless B43 .

Uşor momentul în care informaţiile se află.













Panorama Tematica de Themocracy

5 vizitatori acum online
4 vizitatori, 1 roboţii, 0 membrii
Vizitatori astăzi Max: 9 la 01:00 UTC
În această lună: 26 la 07-05-2011 12:35 UTC
În acest an: 130 la 28-03-2011 22:40 UTC
Tot timpul: 130 la 28-03-2011 10:40 UTC