Bevezetés
Dolgozom a vállalatnál, ahol sok fut kötegelt feladatok feldolgozására millió nyilvántartást adatok minden nap, és Gondolkodtam az utóbbi időben az összes a gépeket, hogy ülnek minden egyes nap semmit sem több órán át. Nem lenne jó, ha tudnánk használni az olyan berendezést is, hogy erősítsék meg a feldolgozási teljesítmény a mi rendszerek? Ebben meg a cikkek fogom nézni a potenciális előnyei foglalkoztató iroda rács segítségével virtualizált környezetben.
Az 1. rész adtam áttekintést a rendszer és technológiák fogom használni, valamint tárgyalt néhány a lehetséges okok, hogy miért szeretne létrehozni egy irodai hálózatba.
Állás vezérlés
Ha lesz futás munkahely, akkor fogsz kell valamilyen módon kezelni őket. Az Ön feladata ellenőrzési rendszer (a munka szerveren) kell igazán jól átgondolt, mielőtt még megpróbál futtatni egy irodai hálózatba. Tehát először is, mik a feladatai a munka rendszer:
- Osszuk ki állások kérésére dolgozók
- Mondd el a munkavállalók milyen típusú feladatok futtatására
- A pálya munkahelyek
- Ügyeljen arra, hogy a feladatok csak akkor fut, ha
- Adjon munkát az adatok a munkavállalók, vagy legalább mondd meg nekik, hogy hol kap ez
A rendszer is kell bővíthető, a megoldás, ami most egy esetben meghosszabbítható futtatni többféle munkahelyet teremteni, mint az üzleti látja érdemes egy hálózati megoldás. Például, a munkahelyek nyerhetnek prioritásokat, több munkahely típus létezik (azaz több kód bázisok), végül akkor is futhat több különböző munkavállalók a gépeket, amelyek optimalizálva minden típusú feladat (bár ez eltávolodni az "általános munkás "ötlet). Mindig próbáljuk gondolni a jövőben, amikor rendszereket fejleszt, a rövid távú jövőkép vezethet hosszú távon frusztrációt és a megnövekedett fejlesztési időt.
Állás Server
Mi lesz szüksége valahol ellenőrizni munkánkat az, ez az egyetlen rendszer a rács, hogy van egy fix Resource Locator, lehet, hogy egy IP-cím, host név, URL (a belső DNS), stb azért van, mert A munkavállalóknak tudniuk kell, hol keresse a munkahelyek, a munkavállalók meg kell találni a munka ellenőrzési rendszer (nem a munka ellenőrzési rendszer megtalálja a munkavállaló).
A munka szerver maga nem igazán bonyolult feladat (egy alap rendszer egyébként), akkor kell tárolni egy listát a munkahelyek kezet munkahelyek, megkapja eredményeket, majd tárolja azokat a későbbi visszakeresés. Hogy ezeket a részeket (például a "kezet munkahelyek") meghatározása is nagyon egyszerű. Később tudjuk kiterjeszteni a rendszer tartalmaz egy adminisztrációs felület felvenni, szerkeszteni, törölni, felfüggeszteni munkahely de ez túl ez a gyakorlat.
Nincs ok nélkül, majd, hogy a munkát kiszolgáló nem egy virtuális gépen belül futó a fő feldolgozási szerver, feltéve, hogy nem drain túl sok erőforrást belőle. A munka azonban nem szükséges kiszolgáló nagy rendelkezésre állású, ha lemegy egy péntek este fogsz veszíteni egy egész hétvégét a feldolgozás, esetleg olcsóbb akkor egy pár hétig értékű feldolgozási idő (összehasonlítva a fő feldolgozás szerver egyedül) . Ha akarod, fontolja meg a munkádat szerver terhelés kiegyensúlyozott környezetben a magas rendelkezésre állás.
Alapvető beállítások
Az alap beállítás munkánk szerver áll, amit hívom az egyik sántítás szerverek (azaz Li Nux, m ySql, P LE). A kód fut Thea munkavállalókat ténylegesen dolgozzanak ki, milyen feladatok is futtatható, kölcsönhatásban áll a munka rendszer adatbázisok. Később sikerült létrehozni egy webes szolgáltatás és valóban kezet munkahelyek ahelyett a dolgozók a kemény munkát maguknak, de most mi is használja a KISS elv (Keep it Simple, Stupid!).
Így lehetővé létre három mySQL táblákat kezelni munkahely. Ezeket `munkahelyek`, `jobRecords` és `jobResults`.
Itt vagyok használ SQL Buddy egy remek kis alternatíva a phpMyAdmin , csak mert az egyszerűbb telepíteni a CentOS (mások lásd: 10 Nagy alternatívái phpMyAdmin )
Ez a táblázat tartalmaz 5 egyszerű mezők
- id: egyedi azonosítására a munka
- név: Lehet egy ügyfél hivatkozás, vagy akárhány más azonosítók
- Állapot: Tudnod kell, ahol a munka van, például a
- 0: nem indult
- 1: felvette
- 2: Kész
- started_by: Ki elkezdtem a munkát? Ez nem teljesen szükséges, de a szép, hogy. Én azt követő munkavállalók IP-címet a hálózat
- started_at: Mikor a munkavállaló elindítani a munkát? A követési feladatok, amelyek nem fejeződik be X ideig tudjuk kell, hogy vegye fel a munkát újra és indítsa el feldolgozás egy másik munkás. Munkavállalók tudta megállítani feldolgozása / offline tetszőleges számú oka, áramkimaradás, összeomlás, hálózati veszteség, stb
Könnyen, hogy ez a táblát ki lehetne terjeszteni néhány további mezőket, hogy a statisztikai követés, a befejezni időben oszlopot, hogy mennyi ideig tartott a munka, egy számláló, hogy hány munkavállaló felvette a munkát (nyilván ez kell inkább 1), munka prioritás, a lista megy tovább és tovább. A bonyolultabb feladat forgatókönyvek lehetséges lenne, hogy meghatározza, hogy mennyi memóriát a munkavállaló számára hozzáférést kell biztosítani (és ezért csak akkor használja alkalmas munkavállalók), vagy akár milyen munkavállalónak lenne szükség.
Lehetővé teszi, hogy adjunk néhány példát munkahelyek:
A következő táblázat ismét nagyon egyszerű megérteni, ezek munkánk rekordokat. Ezek kapcsolódnak a fő feladatok tábla oszlop `jobs_id`. Az alkotó az ebben a táblázatban nagyon sok múlik az adatokat, hogy meg kell szolgáltatni a munkások, lehetővé teszi, hogy egy nagyon egyszerű példát, ahol négy oszlop:
- id: Azonosító a rekord
- név: személy neve
- cím: személy címe
- jobs_id: A munka ID, hogy ez a rekord kapcsolódik
A harmadik és egyben utolsó asztalon áll egy eredmény táblázat, sokkal ugyanolyan alkotják, mint a mi rekordok asztalra, és azzal a kiegészítéssel, néhány oszlop része lehetne a rekordok táblázat:
- job_record_id: Link az eredmény a munkát asztalra
- Eredmény: Az eredmény adatok
... És ez minden, amire szükség van feladatvezérlő! (Bár ez egy nagyon alap szinten) Az én esetemben vagyok arra, hogy egy másik asztalhoz, ahol az adataim feldolgozása volt található, de ez ugyanúgy nem egy fájlt, paraméterek futtatni szimuláció kódot, akkor nevezd meg.
Kiválasztása a munka
Mint azt korábban jeleztük, a munkavállalók a dolgunkat menedzsment nekünk most, tehát minden, amit meg kell tennie, hogy valóban munkát találni igénylő feldolgozása és az információt. Hogyan tudjuk ezt megtenni? Nos pick mi feladatunk, kiválasztási kritériumok és keresse meg a munkahelyek, az SQL tettem a következő:
- Megtesz minden munkahelyet, amelyek nem jelölt teljes, de a mi dolgozó és állítsa vissza őket (helyettesítheti __ME__ azonosítójával, legegyszerűbb lenne IP-cím):
UPDATE `` SET `munkahelyek status` = 0 WHERE `status` = 1 ÉS `started_by` = __ME__;
- Segítségével munkánk kiválasztási kritériumok, válasszon ki egy feladatot, és mondd el a rendszer, hogy ez a munkás foglalkozik vele:
UPDATE `` SET `munkahelyek status` = 1, `started_by` = __ME__, `started_at` = NOW () WHERE `status` = 0 vagy
(`Status` = 1 és a `` started_at> DATE_SUB (MOST (), intervallum X ÓRA)) ORDER BY `id` ASC;
A rángatás munkahelyek, amelyek nem tért vissza eredményeket X idő mi biztosítja, hogy minden munka futnak az esetre, ha a munkavállaló összetörő vagy megy AWOL.
- Következő megragad a munkahelyek részleteket, majd a rekordok magukat:
SELECT * FROM `munkahelyek` WHERE `started_by` = __ME__ LIMIT 1;
SELECT * FROM `job_records` WHERE `id` = __JOBID__;
Befejezése után a munka is helyezze el eredményt rögzíti és jelölje meg a munkát teljes. Ne feledje, a munkahelyek Suspend / Resume bármikor lehetővé teszi néhány robusztusság a script. Lehet, hogy a feladat felfüggeszti felénél frissítése a feladat ellenőrzési rendszer, így ellenőrzi a rekordok száma a munka, és a találatok számát mentette vissza a munka ellenőrzési rendszer lenne bölcs lépés.
Ezen kívül, míg a bemutatja, hogyan állások lehet kiválasztani és kezelni egy SQL-lekérdezést keret akkor tényleg referáló munkád szabályozás, hogy ha úgy dönt, hogy váltani egy webes szolgáltatás, a fájl alapú rendszer, XML , vagy bármely más rendszerek száma ez nem befolyásolja a fenti kódot is.
Állás Configuration
A következő szempont annak megállapítása, feladat nagysága és konfiguráció. A játék a munkát konfiguráció tudunk teremteni egy kiváló egyensúlyt sebesség, folyamat replikáció, és a megbízhatóság. Vegyünk egy pár OFA forgatókönyvek:
- Foglalkoztatáshoz 1 nap minden futtatni: Ez azt jelenti, hogy a dolgozók 15 napon belül kell feldolgozni minden munkát (emlékezzünk 10%-a hatalom 2/3-a az idő). Ez nyilvánvalóan nem egy okos konfigurációt, a feladat mérete túl nagy! Lenne szükség, legalább kétszer az idő, hogy munkát kell feldolgozni az első munkás megy AWOL (idő, hogy vegye fel, hogy nem tért vissza következtében plusz újrafeldolgozási idő). Egy ideális ha volna legalább egy teljes munkát, egyszerűen törli a végét a hosszú tétlen időszak, így tartsa a munkahelyek ketyeg újra és a legrosszabb esetben a munka lenne, hogy két napig folyamat első eltűnik.
- Foglalkoztatáshoz 1 perc futtatni: Ez azt jelenti, hogy a dolgozók körülbelül 15 percet futni minden munkát. Bár ez eleinte úgy tűnik, ideális, ha szert további munka során feldolgozásra ebédidőben, kávészünetek, találkozók, stb ez a forgatókönyv teszi törzs más területein a rendszer, és bemutatja a saját problémáit. Például, először a setup / feldolgozási idő arányt fog menni egészen, ezért elveszti a rendszer hatékonyságát. A hálózat lesz állandó folyamatos munka az információkat a különböző munkások idegesítő munkatársak, akik dong a napi munkát. Te is lesz, hogy nagyobb megterhelést jelent a feladat feldolgozását kiszolgáló, mivel az étel ki sok-sok apró munkát rendszeresen. Végül, ebben a helyzetben, ha a munkád szerver leáll fogsz létrehozni egy hatalmas hátsó napló befejezetlen munka míg nagyobb munkahely folyamatos feldolgozás szerencsére nincsenek tudatában, hogy a munka szerver nehézségekkel.
A valóságban nem lesz egy ideális konfiguráció a hálózat beállítása, sok múlik a rendelkezésre álló források típusú munka, munka átfutási idő követelmények, a hálózati képességek, és így tovább. Azonban néhány iránymutatást a következő lenne:
- Méret munkahelyet úgy, hogy minden munkavállaló kap a legalább 3-4 munkahely egy olyan időszakban, 15 óra (a leghosszabb várható készenléti időszak)
- Játssz a feladat méretének úgy, hogy a beállítási idő lesz elég jelentéktelen, mint a feldolgozási idő (figyelembe véve a fenti pont).
- Ha a munka nem teljes, kétszer annyi idő (talán kisebb), akkor elvárható, hogy kiegészíti azt feltételezni, hogy az elmúlt AWOL és elkezd feldolgozó másik munkás. Ez azt jelenti, lehet, hogy várni akár háromszor a szokásos ideje a feladatot, hogy a teljes (esetleg hosszabb ideig, ha a következő feladat sikertelen). Érdemes lehet csökkenteni ebben az időben, de vigyázzon, hogy ne csökkenjen túl nagy, mivel lehet kezdeni kétszeres feldolgozási feladatokat rendszeresen.
- Jobs függetlennek kell lennie a külső követelmények a lehető legnagyobb mértékben. A munka szerver, például, csak a kapcsolatot elején és végén minden munkát.
- Ne telített a hálózat, ez két negatív hatásai, a nappali személyzet fogja találni a hálózat használatáról és az idegesítő problémákat is tapasztalt kapcsolat időtúllépés a probléma, hogy csak rosszabb lesz, mint te skála a rács.
- Biztosítani feladatok futtathatók a munkavállalókat. Ha munkahelyet túl memória igényes vagy lemezterület intenzív munkahely indul megszakítása és az egyetlen dolog, észre fogod venni, van egy csepp a munkahelyek száma feldolgozott nincs igazi oka.
Benyújtása eredményei a Job
Benyújtásakor eredményeit munka fontos ellenőrizni, hogy eredményeket nem nyújtották be másik munkavállalót, különösen, ha a jelenlegi munkavállaló szunnyadó egy ideje.
Ha az eredmények be arról, hogy a találatok számát megegyezik a rekordok száma a munkát.
Mint azt korábban jeleztük, és nem lehet eléggé hangsúlyozni, építeni a hibatűrés a munkát visszakeresése és az eredmények benyújtását. A munkavállalók (és valószínűleg fog), bemegy pihenő módban a legkellemetlenebb az idők, és ez kell gondoskodjanak. Emellett ismét referáló el az eredményt benyújtási segít kielégíteni a jövőbeni változások a munka ellenőrzési rendszer sokkal könnyebb kezelni.
Összefoglalás
Ebben section kerestünk, hogy milyen munkát vezérlő szerver kell tennie, és hogyan lehet egy alap rendszert hozzanak létre. Megbeszéltük, hogyan lehet letölteni a feladatot a rendszer, és hogyan lehet a legjobban beállítani munkahelyeket, hogy a legtöbbet mi az irodai hálózati rendszer. A befejezéshez, egy vagy két bekezdést az eredmények közlésekor vissza a munkát vezérlő szerver került bemutatásra.
- A munka ellenőrzése szerver kezeli a munkahelyek és biztosítja, hogy minden szervezeti egységeinek elvégzése
- A referáló munkád select / eredmények benyújtását meg tudjuk változtatni a technológiát a vezérlő kiszolgáló nem sok probléma
- Állítsa be a munkahelyeket, hogy azok futnak gyorsan és hatékonyan anélkül, hogy túl nagy nyomás nehezedik a hálózati infrastruktúra, valamint megkettőzése nélkül feldolgozási feladatok rendszeresen.
- Győződjön meg arról, hogy építsenek a hibatűrés és hiba checking be a rutin, a munkavállalók is felfüggeszthetjük, illetve folytathatjuk, és a legkellemetlenebb alkalommal. Ne felejtsd el ellenőrizni, hogy az eredmények már benyújtott egy másik munkás.
Legközelebb
A 3. rész hozunk létre a virtuális géphez, és hozzanak létre a windowsos gépek lesz tétlen munkaidőben.