Úvod
Pracujem vo firme, kde sme sa spustiť mnoho dávkové spracovanie úlohy milióny záznamov dát každý deň a ja som v poslednej dobe premýšľal 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žiť tie stroje pre posilnenie výpočtového výkonu našich systémov? V tomto súbore článkov budem pozerať na potenciálne výhody 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ácu potom budete potrebovať nejaký spôsob, ako spravovať. Vašou úlohou riadiaceho systému (na svoju prácu serveru) musí byť veľmi dobre premyslené ešte predtým, než pokusom o spustenie programu 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ú zamestnanie 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 jedinom prípade môže byť rozšírená spustiť niekoľko typov pracovných miest a podnikanie vidí hodnotu v mriežke riešení. Napríklad môže získať zamestnanie priorít, viac ako jeden typ úlohy môže existovať (tj niekoľko základní kód), prípadne môžete dokonca prevádzkovať 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ôže krátkodobo viesť k vízii dlhodobej frustrácii a zvýšený dobu vývoja.
Server práce
Budeme potrebovať niekde ovládať našu prácu od, malo by to byť jediný systém vo svojej sieti, ktorá má pevnú Resource Locator, je, že IP adresa, meno počítača, URL (pomocou interné DNS), atď To je preto, že pracovníci musia vedieť, kde hľadať prácu, pracovníci musia nájsť prácu riadiaci systém (nie je práca riadiaceho systému nájsť zamestnanca).
Úloha server sám o sebe nemá naozaj zložitá úloha (v základnom systéme, rovnako), je potrebné uložiť zoznam miest, ruku pracovných miest, dostane výsledky, a následne ich uložiť pre neskoršie. Ako sa tieto časti (napr. "rozdávať prácu"), sú definované môže byť pomerne jednoduchý. Neskôr môžeme rozšíriť systém zahŕňa administračné rozhranie môžete pridávať, upravovať, mazať, pozastaviť pracovných miest, ale to je mimo toto cvičenie.
Neexistuje žiadny dôvod potom, že vaša práca serveru nebolo možné virtuálny stroj beží v rámci svojho hlavného spracovanie servera, ak to nie je kanalizácia príliš veľa prostriedkov z nej. Úloha serveru však potrebuje vysokú dostupnosť, pokiaľ to ide dole v piatok večer budete strácať celý víkend spracovanie, prípadne vás to stálo za pár týždňov v hodnote doba spracovania (v porovnaní s hlavným serverom pre spracovanie sám) . Môžete chcieť, aby zvážila svojej práci 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 som volať 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é úlohy môže bežať interakcií s databázou, 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, poďme vytvoriť tri mySQL tabuľky riešiť úlohy. Tieto práce budú ``, `jobRecords` a `` jobResults.
Tu som pomocou SQL Buddy Výborný alternatívu k phpMyAdmin len preto, že jeho jednoduchš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
- Názov: Môže to byť klientom odkaz, alebo ľubovoľný počet iný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 je začal robiť prácu? To nie je úplne nutné, ale je pekné 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ť ďalšie pracovník. Pracovníci by mohli zastaviť spracovávanie / go Offline pre množstvo dôvodov, výpadku napájania, havárie, strata siete, atď
Je to jednoduché, ako by táto tabuľka byť rozšírená o niekoľko ďalších oblastiach s cieľom umožniť sledovanie štatistík, konečný čas stĺpce, ako dlho zamestnanie trvalo, počítadlo, koľko pracovníkov zdvihol prácu (samozrejme 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 sa pracovník musí mať prístup k (a teda použiť len vhodných 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, sú to naše práce záznamov. Sú spojené s hlavným zamestnania tabuľky stĺpec `` jobs_id. Tvorí 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 tvoria naše záznamy tabuľky, a navyše niektoré stĺpce by mohlo byť súčasťou záznamov tabuľky:
- job_record_id: Odkaz výsledok práce stola
- 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 som ukázal som k ďalšiemu stolu, kde sa nachádza moje osobné údaje na spracovanie, ale toto mohlo práve ako ľahko sa súbor parametrov, spustiť simuláciu kód, čo si len spomeniete.
Výber práce
Ako bolo uvedené skôr, budú robotníci robiť svoju prácu managementu pre nás, takže všetko, čo potrebujete 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 sa 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 `a` started_by = __ME__;
- Pomocou našich kritérií pre výber úlohy, vyberte si prácu a povie riadiaceho systému, ktorý tento pracovník sa zaoberá sa:
UPDATE `` SET `zamestnanie status = 1`, `=` started_by __ME__, `started_at` = Now (), kde `status` = 0 alebo
(`Status` = 1 `a` started_at> DATE_SUB (NOW (), interval X HOUR)) ORDER BY `id` ASC;
Tým, že chytí práce, ktoré neboli vrátené výsledky vo výške X sme zaistiť, že všetky úlohy sú spúšťané v prípade, že zamestnanec bude zhadzovať alebo neospravedlnenú absenciu.
- Ďalšie uchopiť zamestnania podrobnosti nasledujú záznamy 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 práce môže pozastaviť / obnoviť kedykoľvek počítať s nejakou robustnosť v skripte. To by mohlo byť, že úloha pozastaví polovici aktualizácia prácu 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 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 procesu 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 potrebujú 15 dní na spracovanie každého zamestnania (pamätajte 10% energie pre 2/3rds času). To zjavne nie je múdre konfiguráciu, vašou úlohou veľkosť je 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 a výsledkom prepracovania času). V ideálnom prípade by ste mať aspoň jeden plný pracovný ľahko zrušené 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í.
- Práca 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álna, môžete získať ďalšiu prácu pre spracovanie v čase obeda, občerstvenie, stretnutia, atď tento scenár kladie nároky na ďalšie oblasti vášho systému a zavá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ť sa bude stále streaming práce informácie k jednotlivým pracovníkom frustrujúce zamestnanci, ktorí sú Dong ich každodennej práci. Vy ste tiež bude klásť väčšie nároky na serveri spracovanie zákaziek, pretože musí 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, záleží na dostupné zdroje, druhy práce, pracovné podmienky obrátky času, možnosť práce v sieti, a tak ďalej. Avšak niektoré zásady by bolo:
- Veľkosť pracovných miest tak, aby každý zamestnanec môže dostať do minimálne 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 sa o prácu nedokončí v 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ĺžku 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 jeho obmedzenie 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 vonkajšie podmienky čo najviac. Pracovný server, napríklad, by malo byť kontaktovaný na začiatku a na konci každé pracovné miesto.
- Nepoužívajte nasýtenia siete, bude to mať dva negatívne dôsledky, bude vaše 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ť, ako si škálovať sieť.
- Zabezpečiť pracovné miesta môže bežať na vašich zamestnancov. Ak sa práce príliš náročné na pamäť a diskový priestor intenzívnej práce začne potratenia a jediné, čo si všimnete, je zníženie počtu pracovných miest spracovaná žiadny skutočný dôvod, prečo.
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 po určitú dobu.
Ak nie sú predložené výsledky zabezpečí, že počet výsledkov zodpovedá počtu záznamov v práci.
Ako už bolo povedané, a nemôže byť viac ako zdôrazniť, budovať odolnosť proti chybám 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ž jednou preč oddeľovať svoje výsledky podanie pomôže uspokojiť 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ácu 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é
- Abstrahovaním svoju prácu vybrať / odovzdania výsledkov môžeme zmeniť technológiu ovládania serveru bez veľké problémy
- Nastavte si zamestnania, 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 strojoch s Windows, aby sa stal nečinnosti úväzok.