Úvod
Pracujem vo firme, kde sme sa spustiť mnoho dávkových úloh spracovanie milióny záznamov dát, a každý deň som premýšľal poslednej dobe o všetkých strojov, ktoré sedieť každý deň robiť nič, po dobu niekoľkých hodín. Nebolo by dobré, keby sme mohli používať tieto stroje k posilneniu výpočtového výkonu našich systémov? V tomto súbore článkov budem sa pozerať na možné prínosy zamestnávanie Office siete prostredníctvom virtualizovaných prostrediach.
V časti 1 som dal prehľad o systéme a technológií budem používať, rovnako ako diskutoval niektoré z možných dôvodov, prečo by ste chceli vytvoriť kanceláriu siete.
Riadenie práce
Ak sa chystáte byť spustená práce potom budete potrebovať nejaký spôsob, ako riadiť. Vašou úlohou riadiaceho systému (na svoju prácu serveru) musí byť naozaj dobre premyslené ešte predtým, než pokusom o spustenie aplikácie balíka Office siete. Tak za prvé, aké sú úlohy, systém kontroly práce:
- Pracovných miest ruku na žiadosť zamestnanca
- Povedz pracovníkov, aký typ úloh spustiť
- Sledovanie úloh
- Uistite sa, že pracovné miesta sú poháňané iba raz
- Poskytujú prácu dát pre pracovníkov, alebo aspoň povedať, kde si to
Systém tiež musí byť rozšíriteľné riešenie, ktoré funguje zatiaľ v jednom prípade môže byť predĺžená spustiť niekoľko typov pracovných miest a podnikanie vidí hodnotu v tabuľke riešení. Napríklad môže získať zamestnanie priority, viac ako jeden typ úlohy môže existovať (tj niekoľko základní kód), prípadne môžete dokonca spustiť niekoľko rôznych pracovníkov stroje, ktoré sú optimalizované pre každý typ zamestnania (aj keď to nie je odklon od "všeobecnej pracovník "nápad). Vždy sa snažím premýšľať o budúcnosti pri vývoji systémov, môžu krátkodobo viesť k víziu dlhodobej frustrácii a väčší čas na vývoj.
Pracovné server
Budeme potrebovať niekam riadiť našu prácu od, malo by to byť jediný systém vo svojej sieti, ktorá má pevnú Resource Locator, je to IP adresa, meno počítača, URL (pomocou interné DNS), atď To je preto, že pracovníci potrebujú vedieť, kde hľadať prácu, pracovníci musia nájsť prácu a kontrolný systém (ne práce riadiaceho systému nájsť zamestnanca).
Úloha server sám o sebe nie je naozaj zložitá úloha (v základnom systéme, rovnako), je potrebné uložiť zoznam miest, ruku zamestnania, dostane výsledky, a následne ich uložiť pre neskoršie. Ako sa tieto časti (napr. "rozdávať prácu"), sú definované môžu byť pomerne jednoduchý. Neskôr sa môže rozšíriť systém zahŕňa administračné rozhranie môžete pridávať, upravovať, mazať, pozastaviť pracovných miest, ale to je za toto cvičenie.
Neexistuje žiadny dôvod potom, že vaša práca serveru nebolo možné virtuálny stroj, ktorý funguje v rámci svojej hlavnej server, spracovanie, za predpokladu, že nie je kanalizácia príliš veľa prostriedkov z nej. Server práce však potrebuje vysokú dostupnosť, pokiaľ to ide dole v piatok večer budete strácať celý víkend spracovania, prípadne vás to stálo za pár týždňov za spracovanie času (v porovnaní s hlavným serverom pre spracovanie sám) . Možno budete chcieť, aby zvážila svoju prácu na serveri zaťaženie vyvážené prostredie pre vysokú dostupnosť.
Základné nastavenie
Základné nastavenia pre server, naša práca sa bude skladať z toho, čo mi volá jeden z mojich Limp serverov (to je Li Nux, ySql m, P HP). Kód bežiaci na pracovníkov Thea bude skutočne fungovať, aké zamestnanie je možné spustiť v interakcii s databázami práca s riadiacim systémom. Neskôr by sme mohli vytvoriť webové služby, a v skutočnosti ruku pracovných miest skôr než mať pracovníci tvrdú prácu sám, ale teraz budeme pokračovať v používaní princípe KISS (Keep It Simple, Stupid!).
Takže, umožňuje vytvoriť tri mySQL tabuľky vysporiadať s pracovnými miestami. Tieto práce budú ``, `jobRecords` a `` jobResults.
Tu som pomocou SQL Buddy Výborný alternatívu k phpMyAdmin len preto, že jeho ľahšiu inštaláciu na CentOS (ďalšie pozri: 10 Veľké alternatívy k phpMyAdmin )
Táto tabuľka sa skladá z 5 jednoduchých polí,
- ID: Jedinečná identifikácia prácu
- Meno: Môže to byť klient odkaz, alebo ľubovoľný počet ďalších identifikátorov
- Stav: Musíte vedieť, kde je práca na napr
- 0: nie je zahájená
- 1: vyzdvihli sme
- 2: Dokončené
- started_by: Kto začal robiť prácu? To nie je úplne nutné, ale je príjemné mať. Ja by som navrhnúť sledovanie zamestnancov podľa ich IP adresy v sieti
- started_at: Kedy sa pracovník začať prácu? Sledovaním práce, ktoré neboli dokončené v množstve X dobu vieme, že je potrebné vyzdvihnúť prácu znovu a začať spracovávať iný pracovník. Pracovníci môžu zastaviť spracovanie / go offline ľubovoľný počet dôvodov, výpadku napájania, havárie, strata siete, atď
Je to jednoduché, ako by táto tabuľka rozšíriť o niekoľko ďalších oblastiach s cieľom umožniť sledovanie štatistík, konečný čas stĺpce, ako dlho si prácu, počítadlo, koľko pracovníkov zdvihol práci (zrejme to musí obvykle 1), pracovné priority, zoznam pokračovať ďalej a ďalej. V zložitejších pracovných scenárov, že by bolo možné určiť, koľko pamäte by pracovník musí mať prístup k (a preto používajte vhodné pracovníkov), alebo dokonca aký typ pracovníka, by bolo potrebné.
Umožňuje pridať niekoľko príklad práce:
V nasledujúcej tabuľke je opäť veľmi jednoduchý na pochopenie, to sú naše pracovné knižky. Sú spojené s hlavným zamestnania tabuľky stĺpec `` jobs_id. Značka sa v tejto tabuľke veľmi záleží na dáta, ktoré potrebujete dodávky vašich pracovníkov, umožňuje robiť veľmi jednoduchý príklad, kde máme štyri stĺpce:
- ID: ID záznamu
- Meno: Meno
- Adresa: Osoba na adresu
- jobs_id: ID úlohy, že tento záznam je spojená
Tretí a posledný stôl sa skladá z výsledkov tabuľky, má podobne ako tvorí naše záznamy tabuľky, a pridaním niektorých stĺpcov môže byť súčasťou záznamov tabuľky:
- job_record_id: Odkaz výsledok do tabuľky zákaziek
- Výsledok: Výsledok dát
... A to je všetko, čo potrebujete pre prácu kontrolou! (Aj keď na veľmi základnej úrovni) V mojom prípade ma upozornil na iný stôl, kde sa nachádza moje osobné údaje spracovávať, ale to by mohlo rovnako dobre byť súbor parametrov, spustiť simuláciu kód, čo si len spomeniete.
Výber práce
Ako už bolo uvedené, budú pracovníci robiť svoju prácu manažmentu pre nás, takže všetko, čo potrebujeme urobiť, je naozaj nájsť si prácu, ktorá potrebuje spracovanie a získať informácie. Ako by sme to? Dobre vybrať naše kritériá výberu zamestnania a hľadať prácu v SQL som nasledovné:
- Prijať akékoľvek zamestnanie, ktoré nie sú označené ako kompletné, ale z našich pracovníkov a resetovať (náhradné __ME__ s identifikátorom, že najjednoduchšie bude IP adresa):
UPDATE `` SET `zamestnanie status` = 0, kde `status` = 1 AND `` = started_by __ME__;
- Pomocou našich kritérií pre výber úlohy, vyberte si prácu a povedať, že tento systém riadenia pracovník zaoberajúci sa, že:
UPDATE `` SET `zamestnanie status = 1`, `=` started_by __ME__, `started_at` = Now (), kde `status` = 0 alebo
(`Status` = 1 AND `` started_at> DATE_SUB (NOW (), interval X HOUR)) ORDER BY `id` ASC;
Tým, že chytí práce, ktoré neboli vrátené výsledky v množstve X sme zaistiť, že všetky úlohy sú spúšťané v prípade pracovníka zhadzovať, alebo ísť neospravedlnenú absenciu.
- Ďalšie detaily uchopiť práci nasleduje záznamov sami:
SELECT * FROM `pracovných miest: Kam started_by` `= __ME__ LIMIT 1;
SELECT * FROM `job_records: Kam` id `= __JOBID__;
Po dokončení práce vložíme náš výsledok záznamy a označiť prácu dokončiť. Pamätajte si, ako je možné prácu prerušiť / obnoviť kedykoľvek počítať s nejakou robustnosť v skripte. To by mohlo byť, že úloha pozastaví polovici aktualizácie práce kontrolného systému, takže kontrola počtu záznamov v zamestnaní a počet výsledkov uloží späť do systému kontroly práce by múdre.
Navyše, keď to ukazuje, ako je možné prácu vyberať a riadené z SQL dotazu rámec, ktorý by mal byť naozaj oddeľovať vaša práca ovládať tak, že ak sa rozhodnete prejsť na používanie webovej služby, súbor založený systém, XML , alebo akékoľvek iné počet systémov, nebude mať vplyv na kód, nad ním.
Pracovné konfigurácie
Ďalším aspektom je, aby zvážila veľkosti úlohy a konfigurácie. Tým, že hrá s prácou konfiguráciou môžeme zasiahnuť vynikajúcu rovnováhu medzi rýchlosťou, proces replikácie a spoľahlivosť. Urobte si pár scenárov OFA:
- Práca trvať 1 deň každý spustiť: To znamená, že pracovníci musia 15 dní spracovanie každého zamestnania (pamätajte 10% energie pre 2/3rds času). To zjavne nie je múdre konfiguráciu, vaša práca je veľkosť príliš veľké! To by trvalo minimálne dvakrát čas na spracovanie úlohy by mal ísť prvý zamestnanec neospravedlnenú absenciu (čas vyzdvihnúť, že sa nevráti výsledok prepracovanie a čas). V ideálnom prípade by ste mať aspoň jeden plný pracovný ľahko vymazaná na konci každého obdobia dlhej nečinnosti, tak budete mať prácu beží znovu a v najhoršom prípade zamestnania trvalo dva dni, proces by mal prvý stratí.
- Pracovných miest sa 1 minútu plynúť: To znamená, že pracovníci trvať asi 15 minút bežať každú prácu. Aj keď to spočiatku môže zdať ideálne, môžete získať ďalšiu prácu pre spracovanie v čase obeda, občerstvenie, stretnutia, atď tomto prípade kladie nároky na ďalšie oblasti vášho systému a uvádza svoje vlastné problémy. Napríklad, najprv si setup / doba spracovania je pomer pôjde vpravo dole, a preto stráca účinnosť systému. Vaša sieť bude neustále streaming práce informácie k jednotlivým pracovníkom frustrujúce zamestnanci, ktorí sú Dong ich každodennú prácu. Vy ste tiež bude klásť väčšie nároky na serveri spracovanie zákaziek, pretože má rozdávať veľa malých kúskov práce na pravidelnom základe. Napokon, v tejto situácii, ak vaša práca server zlyhá budete vytvárať veľké zadné protokol nedokončenú prácu zatiaľ čo väčšie pracovné miesta, by na pokračovanie v konaní blaženej nevedomosti, že práca server problémy.
V skutočnosti tam bude nikto ideálne nastavenie pre nastavenie siete, veľa závisí na dostupné zdroje, druhy práce, pracovné podmienky dobu návratnosti, sieťové schopnosti, a tak ďalej. Avšak niektoré pokyny by mali mať:
- Veľkosť pracovných miest tak, aby každý pracovník môže prejsť aspoň 3-4 pracovných miest v období 15 hodín (pravdepodobne najdlhšiu dobu nečinnosti)
- Hrajte s veľkosti úlohy tak, aby nastavenie času stáva celkom zanedbateľné v porovnaní s dobu spracovania (s ohľadom na vyššie uvedený bod).
- Ak je práca nie je kompletný dvojnásobné množstvo času (možno aj menej), môžete očakávať, že na jeho dokončenie predpokladať, že už dezertoval a začať spracovávať s iným pracovníkom. To znamená, že budete musieť počkať až na trojnásobok normálnej dĺžka práce na dokončení (možno aj dlhšie, ak následné prácu zlyhá). Možno budete chcieť znížiť tomto okamihu, ale dávajte pozor, aby ho znížiť príliš veľa, ako môžete začať duplikácie spracovanie úloh v pravidelných intervaloch.
- Práce by mali byť nezávislé na externé požiadavky, čo najviac. Pracovný server, napríklad, by malo byť kontaktovaný na začiatku a na konci každej práci.
- Nepoužívajte nasýtenia siete, bude to mať dva negatívne dôsledky, bude váš denný zamestnanca nájsť pomocou siete frustrujúce a problémy môžu nastať s pripojením časového limitu problém, ktorý sa bude len zhoršovať, zatiaľ čo budete svojej siete.
- Uistite sa, práca môže bežať na vašich zamestnancov. Ak je práca príliš náročné na pamäť a diskový priestor intenzívnej práce začne potratenia a jediné, čo si všimnete, je pokles počtu pracovných miest spracovaná žiadny skutočný dôvod.
Predkladanie výsledkov zamestnania
Pri predkladaní výsledkov práce je dôležité skontrolovať, že výsledky neboli predložené iným pracovníkom, a to najmä v prípade, že súčasný pracovník bol spiace na nejakú dobu.
Ak nie sú predložené výsledky zabezpečiť, aby počet výsledkov zodpovedá počtu záznamov v práci.
Ako už bolo povedané, a nemôže byť viac než zdôrazniť, budovanie tolerancie chýb v práci a výsledky vyhľadávania podania. Pracovníci môžu (a pravdepodobne bude) ísť do režimu spánku v najnevhodnejšej dobu a na to je potrebné pre zaistený. Tiež ešte raz oddeľovať preč svoje výsledky podanie pomôže zamerať na budúce zmeny systému kontroly práce oveľa jednoduchšie riešenie.
Prehľad
V tomto section sme sa zamerali na to, čo práca Control Server je potrebné urobiť a ako sa dostať veľmi základné nastavenie systému. Diskutovali sme o tom, ako získať prácu z riadiaceho systému a ako najlepšie nastaviť pracovné miesta, aby čo najviac využiť vášho systému Office siete. Na záver bol prezentovaný jeden alebo dva odseky na predkladanie výsledkov späť na server kontroly práce.
- Ovládanie úloh server spravuje pracovné miesta a zabezpečia, že všetky pracovné jednotky sú dokončené
- Tým, že odstráni svoje práce Zvoliť / odovzdania výsledkov môžeme zmeniť technológiu ovládania serveru bez veľké problémy
- Zostavte si svoj pracovných miest, aby sa zabezpečilo, že sú prevádzkované rýchlo a efektívne, bez príliš veľký tlak na vašej sieťovej infraštruktúry, a bez zdvojovanie spracovania úloh v pravidelných intervaloch.
- Uistite sa, že budovanie tolerancie chýb a omylov checking do rutiny, môžu pracovníci pozastaviť a obnoviť a najnevhodnejšej časov. Nezabudnite skontrolovať, či výsledky už boli predložené iným pracovníkom.
Nabudúce
V časti 3 sa budeme vytvárať virtuálne spracovanie a nastavenie našich počítačoch so systémom Windows, aby sa stal Idle-úväzok.