Inngangur
Ég vinn í fyrirtæki þar sem við hlaupum mörg störf runuvinnsla milljóna færslur af gögnum á hverjum degi og ég hef verið að hugsa undanfarið um allar vélar sem sitja í kring á hverjum degi að gera ekki neitt í nokkrar klukkustundir. Væri ekki gott ef við gætum notað þær vélar til að styrkja vinnslu mátt kerfi okkar? Í þennan hóp greinar sem ég ætla að líta á hugsanlegum ávinningi af ráða skrifstofu rist með virtualised umhverfi.
Í Part 1 Ég gaf yfirlit yfir kerfinu og tækni Ég ætla að nota eins og heilbrigður eins og fjallað er sumir af the möguleiki ástæður hvers vegna þú vilt að búa til skrifstofu rist.
Job Control
Ef þú ætlar að vera í gangi störf þá þú ert að fara að þurfa einhvern hátt að stjórna þeim. Starf stjórna vélinni þinni (á vefþjóninum starf þitt) þarf að vera vel hugsað út áður jafnvel að reyna að hlaupa skrifstofu rist. Svo fyrst, hvað er verkefni fyrir stjórn starf kerfi:
- Hand út störf samkvæmt beiðni frá starfsmönnum
- Segðu starfsmenn hvers konar störf til að keyra
- Track störf
- Tryggja að störf eru aðeins keyra einu sinni
- Veita starf gögn til starfsmanna, eða að minnsta kosti segja þeim hvar best er að fá það
Kerfið þarf einnig að vera teygjanlegur, lausn sem virkar fyrir nú í einum tilviki má framlengja til að keyra nokkrar gerðir af störfum sem fyrirtækið sér virði í töflu lausn. Til dæmis, störf getur fengið forgang, fleiri en einu starfi tegund getur verið (þ.e. margar undirstöður code), loksins þú getur jafnvel hlaupa nokkrar mismunandi vélar starfsmanni sem eru bjartsýni fyrir hverja tegund vinnu (þó það þýðir að hverfa frá "almenna starfsmann "hugmynd). Alltaf að reyna að hugsa um framtíðina þegar þróa kerfi, á stuttum tíma sýn getur leitt til lengri tíma gremju og aukin þróun tíma.
Job Server
Við erum að fara að þurfa eitthvað að stjórna störfum okkar, ætti þetta að vera eina kerfið á rist þínu sem hefur fasta Resource Locator, að IP tölu, gestgjafi nafn, URL (með innri DNS), o.fl. Þetta er vegna þess að starfsmenn þurfa að vita hvar á að leita störf, þurfa starfsmenn að finna stjórna starfi kerfi (ekki stjórn starf kerfi finna starfsmenn).
Starfið þjóninum sjálfum er í raun ekki hafa flókið verkefni (í grunn kerfi einhvern veginn), þarf það að geyma lista af störfum, hönd út störf, fá niðurstöður, og síðan geyma þá þar til seinna sókn. Hvernig þessir hlutir ('vegar út störf "ss) er skilgreind getur verið mjög einfalt. Seinna getum við lengja kerfið til að fela stjórnsýslu tengi til að bæta við, breyta, eyða, hengja störf en það sem er handan þessa æfingu.
Það er engin ástæða alls þá að starf netþjóninn gæti ekki verið raunverulegur vél í gangi í helstu vinnslu miðlara enda er ekki holræsi of margar auðlindir af því. Starfið Miðlarinn þó er þörf hár framboð, ef það fer niður á föstudagskvöldi þú ert að fara að missa alla helgina vinnslu, hugsanlega kosta þig nokkrar vikur virði af tíma vinnslu (í samanburði við helstu vinnslu miðlara eitt sér) . Þú vilt kannski íhuga að setja vinnu miðlara á hlaða jafnvægi umhverfi fyrir mikið framboð.
Basic Setup
Grunn skipulag fyrir miðlara starf okkar mun samanstanda af því sem ég er að kalla eitt af haltur netþjónum minn (sem er Li nux, m ySql, P HP). The merkjamál birtast á Thea starfsmenn vilja raunverulega vinna að því hvað störf það getur keyrt í gegnum samskipti við með starfið eftirlitskerfi gagnagrunna. Síðar gætum við búið til vefþjónustu og í raun vegar út störf frekar en að þurfa starfsmenn eiga erfitt verk sín, en nú munum við halda áfram að nota KISS reglan (Hafðu það einfalt, Stupid!).
Svo leyfir, að búa til þrjú mySQL töflur til að takast á við störf. Þetta mun vera `störf`, `jobRecords` og `jobResults`.
Hér ég er að nota SQL Buddy a mikill lítill val til phpMyAdmin bara vegna þess að auðveldara þess að setja á CentOS (fyrir aðra sjá: 10 Great val til phpMyAdmin )
Þessi tafla inniheldur 5 einföld sviðum,
- id: einstaklega finna starf
- Notendanafn: Gæti verið viðskiptavinur tilvísun, eða fjölda annarra heiti
- Staða: Þú þarft að vita hvar starfið er á, td
- 0: Ekki byrjað
- 1: sóttir
- 2: Lokið
- started_by: Hver byrjaði að gera starfið? Þetta er ekki alveg nauðsynlegt en er gott að hafa. Ég myndi stinga upp mælingar starfsmenn með IP tölu þeirra á netinu þínu
- started_at: Hvenær var starfsmaður hefja starf? Með því að fylgjast með störfum sem ekki hafa lokið innan X tíma við vitum að við þurfum að taka upp vinnu aftur og byrja vinnslu hjá öðru starfsmanns. Starfsmenn gætu hætt vinnslu / go offline fyrir allir tala af ástæða, máttur bilun, hrun, net tap, o.fl.
Það er auðvelt hvernig þetta borð gæti verið framlengdur með nokkrum fleiri sviðum til að leyfa fyrir tölfræði rekja spor einhvers, tími ljúka dálki til að sjá hversu lengi starf tók, gegn til að sjá hversu margir starfsmenn teknir upp starf (augljóslega þetta þarf að hafa tilhneigingu til að 1), starf forgang, lista getur farið á og á. Í flóknari starf atburðarás það væri hægt að tilgreina hversu mikið minni starfsmaður þyrfti aðgang að (og því aðeins nota viðeigandi starfsmenn), eða jafnvel hvaða gerð af starfsmanni væri nauðsynleg.
Lets bæta við nokkrum störf dæmi:
Næsta borðið aftur er alveg einfalt að skilja, eru þessi störf skrám okkar. Þau eru tengd helstu störf borð með dálk `jobs_id`. The gera upp þessa töflu mjög mikið veltur á þau gögn sem þú þarft að láta starfsmenn þína, við skulum gera mjög einfalt dæmi þar sem við höfum fjóra dálka:
- id: ID á hreinu
- Nafn: Einstaklingur Nafn
- heimilisfang: netfang viðkomandi
- jobs_id: Starfið ID að þetta met er tengd
Þriðja og síðasta borð samanstendur af niðurstöðum borð, hefur það mikill the sami gera upp sem skrár borð okkar, og með því að bæta við nokkrum dálkum gæti verið hluti af gögnum töflu:
- job_record_id: Link niðurstöður til vinnu borðið
- niðurstaða: Niðurstaðan gögn
... Og það er allt sem þú þarft að stjórna vinnu! (Að vísu á mjög undirstöðu-láréttur flötur) Í mínu tilfelli er ég benti á annað borð þar sem gögn til að vinna var staðsett, en þetta gæti alveg eins auðveldlega verið skrá, breytur til að keyra uppgerð kóða, þú nafn það.
Val á starfi
Eins og áður sagði, að starfsmenn vilja gera starf stjórnun okkar fyrir okkur nú, svo það eina sem við þurfum að virkilega finna starf sem þarf úrvinnslu og fá upplýsingar. Hvernig myndum við gera þetta? Jæja velja starf valforsendur okkar og leita störf í SQL ég gerði eftirfarandi:
- Taka hvaða störf sem eru ekki merkt sem lokið en frá starfsmanni okkar og endurstilla þá (í staðinn __ME__ með auðkenni, auðveldlega væri IP heimilisfang):
UPDATE `störf` SET `Staða` = 0 þar `Staða` = 1 AND `started_by` = __ME__;
- Using starf valviðmið okkar, velja vinnu og segja eftirlitskerfi sem þessi starfsmaður er að fást við það:
UPDATE `störf` SET `Staða` = 1, `started_by` = __ME__, `started_at` = NOW () HVAR `Staða` = 0 OR
(`Staða` = 1 AND `started_at`> DATE_SUB (NOW (), bil X klukkustund)) Raða eftir `id` ASC;
Með því að grabbing störf sem ekki hafa skilað árangri í X tíma við að tryggja að öll störf eru rekin í the atburður af a verkamaður hrun eða fara awol.
- Next grípa störf smáatriði á eftir færslur sig:
SELECT * FROM `störf` WHERE `started_by` = __ME__ LIMIT 1;
SELECT * FROM `job_records` WHERE `id` = __JOBID__;
Að loknu starfi við setja inn úrslit skrám okkar og merkja starf sem lokið. Muna eins og störf getur stöðvað / byrja aftur hvenær sem gera ráð fyrir sumir robustness í handritið. Það gæti verið að verkefni frestar helmingur vegur í gegnum að uppfæra stjórna starfi kerfi, svo haka við fjölda gagna í vinnu og margar niðurstöður vistað aftur til að stjórna vinnu kerfi myndi vera vitur hreyfa.
Þar að auki, á meðan þetta sýnir hvernig störf er hægt að velja og stjórna frá SQL-fyrirspurn ramma þú ættir virkilega að vera abstracting starf stjórna þannig að ef þú ákveður að skipta yfir í vefþjónustu, skrá undirstaða kerfi, XML , eða önnur Fjöldi kerfa það mun ekki hafa áhrif á kóðann fyrir ofan hann.
Atvinna Stillingar
Næsta þáttur til íhuga er starf stærð og stillingar. Með því að leika með stillingar starf við getum slá mjög gott jafnvægi milli hraða, ferli afritunar og áreiðanleika. Taktu of núna aðstæður:
- Jobs taka 1 dag hvern til að keyra: Þetta þýðir að starfsmönnum þínum þarf 15 daga til að vinna hvert starf (man 10% af orku fyrir 2/3rds af tímanum). Þetta er greinilega ekki vitur stillingar, starf stærð er alltof stór! Það myndi taka að minnsta kosti tvöfalt tíma til að fá starf unnið að fyrstu starfsmaður fara awol (tími til að ná sér að það hefur ekki skilað þeim sökum auk endurvinnslu tíma). Í fullkominni þú vilt hafa að minnsta kosti eitt vinnu auðveldlega eytt í lok hvers lengi aðgerðalaus tíma, þannig að þú halda störfum tjalddúkur yfir og í versta falli starf myndi taka tvo daga til að ganga ber að fara fyrst vantar.
- Jobs taka 1 mínútu til að hlaupa: Þetta þýðir að starfsmönnum þínum tekur um 15 mínútur að keyra hvert starf. Þó að þetta kann að upphaflega virðist hugsjón, þú færð fleiri vinna vinnsla á tíma hádegismat, kaffihlé, fundi, etc þessari atburðarás setur álag á öðrum sviðum kerfisins og kynnir eigin vandamál hennar. Til dæmis, í fyrsta lagi skipulag / afgreiðslutíma hlutfall er að fara að fara rétt niður, því að tapa kerfi skilvirkni. Netið er að fara að vera stöðugt á vinnu upplýsingum til ýmissa starfsmanna svekkjandi starfsmanna sem eru Dong þeirra dagur í dag vinna. Þú ert líka að fara að setja meira álag á vinnu vinnslu þinn framreiðslumaður eins og það hefur að fat út fullt og fullt af litlum stykki af vinna með reglulegu millibili. Loksins, í þessu ástandi ef starf miðlara fer niður þú ert að fara að búa til mikið aftur skrá þig inn á uncompleted vinnu en stærri störf gætu áframhaldandi vinnslu sátt og samlyndi ókunnugt um að starfið þjóninum var að upplifa erfiðleika.
Í raun og veru verður enginn tilvalið stillingar fyrir uppsetningu rist þína, mikið veltur á fyrirliggjandi úrræði, gerðir af starfi, starf afgreiðslutími kröfur, net hæfileiki, og svo framvegis. Þó nokkrar leiðbeiningar myndi vera:
- Stærð störf þannig að hver starfsmaður getur fengið í gegnum að minnsta kosti 3-4 störf á tímabili 15 tímar (lengst líklega aðgerðalaus tímabil)
- Leika við starfið stærð þannig að skipulag tíma verður nokkuð óveruleg í samanburði við vinnslu tíma (með það í huga að ofan benda).
- Ef starf er ekki lokið í tvöfalda tíma (kannski minna) sem þú búast við það til að ljúka verkinu ætla að farið awol og byrja vinnslu það með öðrum starfsmanni. Þetta þýðir að þú gætir þurft að bíða í allt að þrisvar sinnum eðlileg lengd vinnu fyrir það að ljúka (hugsanlega lengur ef síðari starf mistakast). Þú vilt kannski til að draga úr þessum tíma, en vera varkár ekki til að draga það of mikið og þú getur byrjað endurtekning vinnslu verkefna með reglulegu millibili.
- Störf skal vera óháð utanaðkomandi kröfur eins mikið og mögulegt er. Starfið miðlara, til dæmis, ætti aðeins að hafa samband í upphafi og lok hvers starf.
- Ekki saturate ekki netið, þetta mun hafa tveir neikvæð áhrif, daginn starfsfólk finnur að nota netið pirrandi og vandamál geta komið fram við tengingar tímasetning út vandamál sem mun aðeins versna eins og þú mælikvarði rist þinn.
- Tryggja störf geta keyrt á starfsmönnum þínum. Ef störf verða of minni ákafur eða diskur rúm ákafur störf hefst hætti við og það eina sem þú munt taka eftir er dropi í fjölda starfa unnum með enginn raunverulegur ástæða.
Sendi Niðurstöður um starf
Þegar að senda niðurstöður starf er mikilvægt að athuga að árangur hefur ekki verið lögð fram af öðrum starfsmanni, sérstaklega ef núverandi starfsmaður hefur verið sofandi um nokkurt skeið.
Þegar niðurstöður eru lagðar tryggja að margar niðurstöður samsvarar fjölda gagna innan starf.
Eins og áður sagði, og geta ekki verið yfir áherslu, byggja kenna umburðarlyndi í sókn starf og árangur uppgjöf. Starfsmenn geta (og líklega vilja) að fara inn fresta ham í mesta óþægilegur sinnum og þetta þarf að vera veitingamaður fyrir. Einnig aftur abstracting burt niðurstöður senda inn mun hjálpa koma til móts við um breytingar á starf stjórna vélinni þinni miklu auðveldara að takast á við.
Yfirlit
Í þessu section höfum við litið á það sem stjórna vinnu miðlara þarf að gera og hvernig á að fá mjög einfalt kerfi sett upp. Við ræddum hvernig á að sækja vinnu frá eftirlitskerfi og hvernig best sé að stilla störf til að fá sem mest okkar skrifstofu rist kerfinu þínu. Til að ljúka, var málsgrein, eða tveir á senda niðurstöður aftur til að stjórna vinnu miðlara kynnt.
- A stjórna starf miðlara stýrir störfum og tryggir að öll vinna einingar eru lokið
- Með abstracting starf þitt select / niðurstöður uppgjöf við getum breytt tækni af the stjórna framreiðslumaður án mikillar vandræðum
- Stilla störf til að tryggja að þeir eru að keyra hratt og vel án þess að setja of mikið álag á innviði net, og án þess að endurtaka vinnslu verkefna með reglulegu millibili.
- Gakktu úr skugga um að þú byggir kenna umburðarlyndi og villa checking inn venjur þínar, starfsmenn geti stöðvað og haldið áfram og mest óþægilegur sinnum. Mundu að athuga hvort árangur hefur þegar verið lögð fram af öðrum starfsmanni.
Næst þegar
Í hluta 3 við munum skapa raunverulegur vinnsla vél og setja upp Windows vélum okkar að verða aðgerðalaus tíma starfsmanna.