Predstavitev
Delam v podjetju, kjer deluje veliko delovnih mest paketno obdelavo milijone zapisov podatkov vsak dan in sem pred kratkim razmišljal o vseh naprav, ki sedijo okrog vsak dan nič ne delaš več ur. Ali ne bi bilo dobro, če bi lahko uporaba teh strojev za okrepitev procesorske moči naših sistemov? V tem sklopu člankov bom pogled na možne koristi zaposlovanja za pisarniško omrežje z uporabo virtualiziranih okolij.
V delu 1 sem dal pregled sistema in tehnologij bom uporabo kot tudi obravnavali nekaj možnih razlogov, zakaj bi si želeli ustanoviti Urad za mrežo.
Služba za nadzor
Če boste za vodenje delovnih mest, potem boste morali na nek način, da jih upravljajo. Vaša naloga nadzorni sistem (na vašem delovnem mestu strežnik), je treba res dobro premišljena, še preden poskušate zagnati pisarniško omrežje. Torej, najprej, kaj so naloge za sistem za nadzor delovnih mest:
- Izročiti delovnih mest na zahtevo delavcev
- Povej delavcem, kakšne vrste delovnih mest za vodenje
- Track delovna mesta
- Zagotoviti, da so delovna mesta teči šele, ko
- Zagotavljanje delovnih mest za delavce, podatke, ali pa vsaj jim povej, kje naj dobim
Sistem mora biti tudi razširljiv, rešitev, ki deluje za zdaj v enem primeru se lahko podaljša za zagon več vrst delovnih mest, kot so podjetja vidi vrednost v mreži rešitev. Na primer, delovna mesta pridobiti prednostne naloge, več kot eno opravilo Tip lahko obstajajo (torej več kod baze), na koncu lahko celo deluje več različnih strojev delavca, ki so optimizirane za vsako vrsto dela (čeprav to ne odmakne od To generično delavca "ideja). Vedno poskušajo, da razmišljajo o prihodnosti pri razvoju sistemov, lahko kratek čas vizija vodi k dolgoročno frustracije in povečano razvojno časa.
Job Server
Bomo nekje morali nadzirati naša delovna mesta iz, naj bo to edini sistem v vaši mreži, ki ima stalno Resource Locator, da je IP naslov, ime gostitelja, URL (z uporabo notranjega DNS), itd To je zato, ker delavci morajo vedeti, kje iskati za delovna mesta, delavci morali najti sistem za nadzor delovnih mest (ni naloga nadzorni sistem našli delavce).
Naloga strežnika sama po sebi ne res zapletena naloga (v osnovni sistem tako ali tako), ki jih potrebuje za shranjevanje seznam delovnih mest, ročno iz delovnih mest, prejeli rezultate, nato pa jih shranite za kasnejše iskanje. Kako so opredeljene ti deli (kot so "roko ven delovna mesta"), je lahko zelo osnovne. Kasneje lahko razširiti sistem za vključitev uprave vmesnik za dodajanje, urejanje, brisanje, začasno delo, ampak to je izven te vaje.
Nobenega razloga ni, sploh pa, da je vaša naloga strežnik ne more biti stvaren stroj teče v vaš glavni strežnik za obdelavo, pod pogojem, da ne odteče preveč sredstev iz nje. Naloga strežnika pa ne potrebujemo visoko razpoložljivost, če zaide na petek zvečer si boš izgubil cel vikend obdelave, lahko stanejo nekaj tednov vredno časa za obdelavo (v primerjavi s vaš glavni strežnik za obdelavo samo) . Morda boste želeli, da razmisli svoje delo strežnik na obremenitve okolja za uravnotežen visoke razpoložljivosti.
Osnovna nastavitev
Osnovne nastavitve za naš strežnik delovnih mest bo sestavljen iz kaj sem pozval eno od mojih mlačni strežnikov (to je Li nux, m ySql, P KM). Kodeks deluje na delavce Thea bo dejansko delajo, kaj delovnih mest lahko vodijo v stiku z z delovnih zbirk nadzornega sistema. Kasneje bi lahko ustvarili spletno storitev in pravzaprav bi jih izdala delovna mesta bolj kot da bi delavci ne trdega dela sami, vendar za zdaj bomo še naprej uporabljati načelo KISS (Keep it Simple, Stupid!).
Torej, omogoča ustvarjanje tri MySQL tabel za reševanje delovnih mest. To bo `delovna mesta ',' jobRecords` in `jobResults`.
Tukaj sem z SQL Buddy veliko malo alternativa phpMyAdmin samo zato, ker njegov lažje namestiti na CentOS (na drugi strani: 10 Velika alternativa phpMyAdmin )
Ta tabela je sestavljena iz 5 preprostih področjih,
- id: enolično identifikacijo delo
- Ime: Bi lahko naročnik reference, ali poljubno število drugih identifikatorjev
- Status: Moraš vedeti, kje naloga je, na, na primer
- 0: Se ne izvaja
- 1: Pobral
- 2: Zaključen
- started_by: Kdo je začel delamo? To ni povsem potrebna, vendar je lepo imeti. Želel predlagam sledenje delavce po svoji IP naslov v omrežju
- started_at: Kdaj je delavec začel svoje delo? S sledenjem delovnih mest, ki se niso zaključile v višini X časa vemo, moramo pobrati svoje delo še enkrat in začeti predelave s strani drugega delavca. Delavci se lahko ustavite obdelavo / go offline za poljubno število razlogov, izpad električne energije, crash, omrežja izgube, itd
To je enostavno, kako bi se to lahko tabela razširi z nekaj dodatnih področjih, da omogočajo sledenje statistika, obdelava čas stolpca, kako dolgo naj delo je, v nasprotju z vidite, koliko delavcev je pobral svoje delo (seveda to moramo ponavadi 1), delo prednostna naloga, se lahko seznam gre naprej in naprej. V bolj zapletenih scenarijev delovnih mest bi bilo mogoče določiti, koliko pomnilnika bo delavec potrebujejo dostop do (in zato uporabljajte le primerne delavcev), ali pa bi celo kakšen tip delavca zahteva.
Lets dodati nekaj delovnih mest primere:
Naslednji table spet je zelo preprost za razumevanje, da so to naše delo zapisov. Te so povezane z glavno tabelo delovnih mest s kolono 'jobs_id `. Make up te tabele zelo odvisna od podatkov, ki jih morate posredovati svojim delavcem, da omogoča zelo enostaven primer, kjer imamo štiri stolpce:
- id: ID zapisa
- Ime: ime osebe
- Naslov: oseba, naslov
- jobs_id: Naloga ID, ki je ta zapis povezan
Tretja in zadnja tabela je sestavljena iz tabele rezultatov, je zelo podobno make up, kot je naš tabeli evidence in z dodatkom nekaterih stolpcev je lahko del tabele zapisov:
- job_record_id: Povezava rezultat na delovnem mizi
- Rezultat: Rezultat podatki
... In to je vse, kar potrebujete za nadzor delovnih mest! (Čeprav na zelo osnovni ravni) V mojem primeru sem opozoril na drugo mizo, kjer je sedež moje podatkov za obdelavo, vendar je to lahko prav tako enostavno ni pila, parametri za zagon simulacije kodo, kar hočete.
Izbira službo
Kot je bilo že omenjeno, bodo delavci narediti svoje delo upravljanja za nas, za zdaj, tako da vse, kar morate storiti, je res našel delo, ki potrebuje obdelavo in dobili informacije. Kako bi to naredil? No kramp naše merila za izbor delovnih mest in iščejo zaposlitev, v SQL sem storil naslednje:
- Bodite vsakega delovnega mesta, ki niso označena kot popolna, ampak iz našega delavca in ga ponastavi (nadomestiti __ ME__ z identifikacijsko bi najlažje je IP naslov):
UPDATE `delovna mesta 'SET' stanje '= 0 WHERE` stanja `= 1 in` started_by' = __ ME__;
- Uporaba naših merila za izbor delovnih mest, izberite delovno mesto in povedal, nadzornega sistema, da ta delavec, ki se ukvarjajo z njim:
UPDATE `delovna mesta 'SET' stanje '= 1,` started_by' = __ ME__, `started_at '= NOW () WHERE` stanja `= 0 ali
('Stanje' = 1 in `started_at`> DATE_SUB (NOW (), INTERVAL X URA)) ORDER BY `id` ASC; Z oprijemalne delovnih mest, ki se niso vrnili rezultate v višini X časa bomo zagotovili, da so vsa delovna mesta vodijo v primeru delavca, treskav ali gredo AWOL.
- Naslednja zgrabi delovnih mest podrobnosti sledi evidenc sami:
SELECT * FROM `delovnih mest 'WHERE` started_by' = __ ME__ LIMIT 1;
SELECT * FROM `job_records` WHERE `id` = __ JOBID__;
Po končanem delovnem mestu smo vstavili naše rezultat evidence in označite delo kot popolna. Ne pozabite, saj lahko delovna mesta prekinitev / nadaljevanje kadarkoli omogočila določena robustnosti v vašem scenariju. Mogoče je, da je naloga prekine na polovici posodobiti sistem za nadzor delovnih mest, tako da preverjanje število zapisov v službo in število rezultatov shranjenih nazaj v sistem za nadzor delovnih mest bi bila pametna poteza.
Poleg tega, medtem ko se to kaže, kako se lahko delovna mesta izbrani in vodi iz SQL poizvedb posnetku, ki ga je treba res abstrahiranja svoje delo nadzor, tako da če se odločite za prehod na uporabo spletnega storitev, datotečni sistem, ki temelji XML ali katero koli drugo število sistemov, to ne bo vplivalo na kodo nad njo.
Job Nastavitve
Naslednji vidik, ki menijo, naloga velikost in konfiguracijo. Z igranjem s konfiguracijo delovnih mest lahko udari odlično razmerje med hitrostjo, procesne replikacijo in zanesljivost. Vzemite si nekaj scenarijev OFA:
- Delovna mesta se 1 dan vsak teči: To pomeni, da bodo vaši delavci potrebujejo 15 dni za obdelavo vsako delo (ne pozabite 10% moči za 2/3rds tistega časa). To seveda ni pametno konfiguracijo, vaša naloga je velikost tako prevelika! Zato bi potrebovali vsaj dvakrat časa, da bi dobili delo predela mora začetna delavec šel AWOL (čas, da se poberem, da je ne vrne rezultat plus ponovno predelavo čas). V idealnem želite imeti vsaj eno polno delovno mesto z lahkoto odstranjujeta koncu vsakega prostega teka dolgo, da način, kako ohraniti delovna mesta teče čez in v najslabšem primeru delo bi potrebovali dva dni, da se proces mora najprej iti manjka.
- Delovna mesta se 1 minuto teči: To pomeni, da bodo vaši delavci traja približno 15 minut teči vsako delo. Čeprav se to sprva zdi idealno, boste pridobili dodatno delo obdelavo v času kosila, kava odmori, sestanki, itd Ta scenarij postavlja pritisk na druga področja vašega sistema in uvaja svoje težave. Na primer, najprej vaš setup / čas obdelave razmerje bo šel desno navzdol, zato izgubljajo učinkovitost sistema. Omrežje se bo nenehno pretakanje delo informacije na različnih delavcev frustrirajuće osebja, ki so dong svoj dan na delo podnevi. Ste tudi dogaja, da se bolj obremenjuje strežnika delovnih mest za obdelavo, saj ima jed iz veliko in veliko manjših kosov dela redno. Nazadnje je v tem primeru, če vaša naloga strežnik gre dol boste ustvarili ogromen dnevnik zadnji nedokončanega dela medtem ko večjih delovnih mest bi lahko v njem naprej obdelavo Blaženo vedela, da je delo strežnik je bil v težavah.
V resnici ne bo nihče idealna konfiguracija za vaše omrežje setup, veliko je odvisno od razpoložljivih sredstev, vrste delovnih mest in delovnih zahtev čas preobrat, mrežo zmogljivosti in tako naprej. Vendar pa bi nekaj smernic so:
- Velikost delovnih mest, tako da lahko vsak delavec priti skozi vsaj 3-4 delovnih mest v roku 15 ur (najdaljša verjetno idle časovno obdobje)
- Igrajte se z velikostjo dela, tako da nastavitev časa postane precej nepomemben v primerjavi z obdelavo času (ob upoštevanju zgoraj točko).
- Če delo ni končano dvojno količino časa (morda manj), ki jih pričakujete, da za dokončanje je domnevati, da je njena šel AWOL in začeli z drugo obdelavo delavca. To pomeni, da boste morda morali počakati do trikrat normalno dolžino delovnega mesta za to izpolniti (lahko več, če naknadno delo ne uspe). Morda boste želeli zmanjšati ta čas, vendar bodite previdni, da se ne zmanjša preveč, saj lahko začnete podvajanja nalog za obdelavo na redni osnovi.
- Delovna mesta morajo biti neodvisni od zunanjih zahtev, kolikor je to mogoče. Naloga strežnika, na primer, le da me kontaktirajo na začetku in koncu vsakega delovnega mesta.
- Ne nasičena vaše omrežje, bo to imelo dve negativni učinki, bo vaše dnevne osebje našli uporabo omrežja frustrirajuće in težave se lahko pojavili pri določanju časa povezave ven problem, ki bo le še slabše, kot ste lestvici svoje omrežje.
- Zagotoviti delovna mesta se lahko izvaja na vaših delavcev. Če delovnih mest preveč pomnilnika bo intenzivni ali disku intenzivnih delovnih mest začeli z zaustavitvijo in edina stvar, ki jo boste opazili, je zmanjšanje števila delovnih mest, ki se obdelujejo brez pravi razlog, zakaj.
Predložijo Rezultati Job
Ob predložitvi rezultatov delo je pomembno, da preveri, ali so rezultati niso bili predloženi drug delavec, še posebej, če je bil delavec trenutno miruje, za nekaj časa.
Ko so rezultati predloženi zagotoviti, da število rezultatov ustreza številu zapisov v službo.
Kot je navedeno prej, in ne more biti več kot je poudaril, zgraditi toleranco napak v iskanje novih delovnih mest in predložitev rezultatov. Delavci se lahko (in verjetno bo) šel v način mirovanja na najbolj neprijetno, kolikokrat in to je treba poskrbljeno za. Prav tako še enkrat abstrahiranja proč svoje rezultate vloge bodo pomagali poskrbeti za bodoče spremembe v sistemu nadzora opravil veliko lažje reševanje.
Povzetek
V tem section smo pogledal kaj nadzor opravil strežnik mora storiti in kako priti zelo osnovni sistem, vzpostavljen. Razpravljali smo o tem, kako pridobiti opravilo iz sistema nadzora in kako najbolje oblikovati delovna mesta, da bi dobili večino naših vašega sistema pisarniškega omrežja. Do konca, je bil predstavljen odstavek ali dva na oddajo rezultate nazaj na strežnik delovnih mest nadzora.
- Nadzor opravil strežnik upravlja delovnih mest in zagotavlja, da so zaključeni vsi delovne enote
- Z abstrahiranja svoje delo izberite / rezultati predložitev lahko spremenimo tehnologijo nadzorni strežnik brez veliko težav
- Nastaviti svoje delo, da se zagotovi, da so teči hitro in učinkovito, ne da bi preveč pritiska na vaše omrežne infrastrukture in brez podvajanja nalog za obdelavo na redni osnovi.
- Prepričajte se, da si zgraditi toleranco napak in napak checking v svoje rutine, lahko delavci prekine in nadaljuje, najbolj neprijetno krat. Ne pozabite preveriti, če so rezultati že predložil drug delavec.
Naslednjič
V delu 3 se bomo ustvarili našo stvaren stroj za obdelavo in vzpostaviti naše okno stroje, da postane idle delovnim časom.