Uvod
Radim u tvrtki gdje smo pokrenuti mnoge skupne poslove obrade milijune zapisa podataka svaki dan i Razmišljao sam nedavno o svim strojevima koji sjede oko svaki dan radiš ništa za nekoliko sati. Ne bi li bilo dobro ako bismo mogli koristiti one strojeva za poticanje obrade snagu naših sustava? U taj skup članaka idem gledati na potencijalne koristi od zapošljavanja ureda mrežu koristeći virtualiziranog okruženja.
U 1. dio sam dao pregled sustava i tehnologija ću koristiti kao i objašnjeno neke od potencijalnih razloga zašto bi želite napraviti ureda mrežu.
Upravljanje poslom
Ako tvoj 'idući u biti pokrenut radnih mjesta onda idete da je potrebno na neki način upravljati njima. Vaš posao sustav upravljanja (na svom poslu poslužitelj) treba se stvarno dobro osmišljenog prije nego pokušate pokrenuti ureda mrežu. Dakle prvo, što su zadaci za sustav upravljanja posao:
- Podijelite posao na zahtjev radnika
- Recite radnici koju vrstu radnih mjesta za pokretanje
- Praćenje radnih mjesta
- Osigurati da radna mjesta samo pokrenuti jednom
- Osigurati posao podatke radnika, ili ih barem reći gdje da biste dobili Internet
Sustav također mora biti proširiv, rješenje koje radi za sada u jednom slučaju može se produljiti za pokretanje nekoliko tipova radnih mjesta kao poslovni vidi vrijednost u mrežu rješenje. Na primjer, radna mjesta mogu dobiti prioritete, više od jednog posla vrste mogu postojati (tj. više kod baze), na kraju vi svibanj čak i pokrenuti nekoliko različitih radnik strojeve koji su optimizirani za svaku vrstu posla (iako to ne odmaknuti od "generičkih radnika 'ideju). Uvijek pokušajte razmišljati o budućnosti, kada razvoja sustava, kratak viziju pojam može dovesti do dugoročno frustracije i povećanje vremena razvoja.
Posao poslužitelja
Idemo na potrebu negdje kontrolirati poslove iz, to bi trebao biti jedini sustav u mrežu koja ima fiksni Resource Locator, biti da se IP adresa, ime hosta, URL (koristeći interni DNS), itd. To je zato što radnici moraju znati gdje se mogu pogledati za radna mjesta, radnici moraju pronaći sustav za kontrolu (ne sustav za upravljanje naći radnika).
Posao poslužitelju koji se ne stvarno imati komplicirano zadatak (u svakom slučaju osnovni sustav), to treba pohraniti popis radnih mjesta, iz ruke posla, dobiti rezultate, i nakon toga ih spremiti za kasnije pretraživanje. Kako tih dijelova (kao što je "iz ruke posla ') su definirane može biti vrlo osnovni. Kasnije možemo proširiti sustav uključuje administracijsko sučelje za dodavanje, uređivanje, brisanje, obustaviti radnih mjesta ali to je izvan ove vježbe.
Nema razloga onda da vaš posao poslužitelj ne može biti virtualni stroj radi u svoju glavnu obradu poslužitelj pod uvjetom da ne odvoditi previše sredstava iz njega. Poslužitelj posao, međutim ne treba visoku dostupnost, ako se ide dolje u petak navečer ćete izgubiti cijeli vikend obrade, potencijalno troška vam nekoliko tjedana u vrijednosti od procesorskog vremena (u odnosu na svoje glavne obradu server sami) . Vi svibanj ištanje to uzeti u obzir stavljajući svoj posao poslužitelj na teret uravnoteženom okruženje za visoku dostupnost.
Basic Setup
Osnovna postava za naš posao poslužitelj će se sastojati od onoga što sam poziv jedan od mojih Limp poslužitelja (koja je Li Nux, m ySql, P KS). Kod na Thea radnika će zapravo raditi koje poslove može raditi u interakciji s posla s bazama podataka sustav kontrole. Kasnije smo mogli stvoriti web servis i zapravo ruke posla prije nego što su radnici raditi teško raditi sami, ali za sada ćemo nastaviti koristiti KISS princip (držati ga jednostavno, glupa!).
Dakle, omogućuje stvaranje tri MySQL tablice da se bave poslovima. To će biti 'radna mjesta', 'jobRecords `i` jobResults `.
Ovdje Im 'koristeći SQL Prijatelj veliki mali alternativa phpMyAdmin samo jer je lakše instalirati na CentOS (za druge vidi: 10 Velika alternative phpMyAdmin )
Ova tablica se sastoji od 5 jednostavnih polja,
- ID: jedinstveno identificiraju posao
- Ime: Mogao bi biti referenca klijent, ili bilo koji broj drugih identifikatora
- Status: Morate znati gdje se posao na, primjerice,
- 0: Nije počeo
- 1: pokupila
- 2: Završeni
- started_by: Tko je počeo raditi posao? Ovo nije u potpunosti potrebna, ali je lijepo imati. Sugerirao bih praćenje radnika po njihovu IP adresu na mreži
- started_at: Kada je radnik započeti posao? Praćenjem radna mjesta koja nisu završila u X iznos od vrijeme znamo trebamo pokupiti posao ponovno i započeti prerađivanja od strane drugog radnika. Radnici bi mogao zaustaviti obradu / go odsutan za bilo koji broj razloga, napajanja, sudara, mreža gubitak, itd.
Lako je kako je ove tablice može se proširiti sa nekoliko dodatnih polja kako bi se omogućilo za statistiku praćenje, stupac završiti na vrijeme da vidi koliko dugo taj posao je, brojač da vidim kako mnogi radnici pokupili posao (očito to treba da imaju tendenciju da 1), posao prioriteta, popis može ići na i na. U složenijim posao scenarija to će biti moguće odrediti koliko memorije radnik bi trebao pristup (i stoga koristiti samo prikladne radnika), ili čak kakvu vrstu radnika će biti potrebna.
Omogućuje dodavanje nekoliko primjer Poslovi u graditeljstvu:
Sljedeća tablica ponovno je prilično jednostavan za shvatiti, ovo su naš posao zapisa. Oni su povezani s glavnim radnih mjesta tablici stupac `jobs_id`. Make up ove tablice jako ovisi o podacima koje trebate dostaviti na radnike, omogućuje da vrlo jednostavan primjer, gdje imamo četiri stupca:
- ID: ID rekord
- ime: Ime osobe
- Adresa: Osoba adresu
- jobs_id: posao ID da je ovaj zapis je povezan s
Treći i finalni stol sastoji se od tablice s rezultatima, ima mnogo isto čine kao naše evidencije stol, a uz dodatak nekih stupova može biti dio zapisa tablici:
- job_record_id: Link rezultat na posao stol
- Rezultat: Rezultat podataka
... I to je sve što je potrebno za posao kontrole! (Iako na vrlo osnovne razine) U mom slučaju ja sam ukazao na drugi stol, gdje moje podatke obraditi bila smještena, ali to bi moglo jednako lako je datoteka, parametri za pokretanje simulacije kod, ime ti je.
Odabir posla
Kao što je navedeno ranije, radnici će raditi svoj posao upravljanja za nas, za sada, tako da svi trebamo stvarno učiniti je pronaći posao koji treba obrada i dobiti informacije. Kako bismo to učinili? Pa pokupiti naše kriterije za odabir posao i tražiti poslove, u SQL sam sljedeće:
- Uzmite bilo koje poslove koji nisu označeni kao potpuni, ali od naših radnika i resetiranje ih (zamjena __ME__ s identifikatorom, najlakše bi se IP adresa):
UPDATE `radnih mjesta` SET 'status' = 0 gdje 'status' = 1 i `started_by '= __ME__;
- Koristeći naše kriterije odabira posla, odaberite posla i reći da je ovaj sustav kontrole radnik bavi se:
UPDATE `radnih mjesta` SET 'status' = 1, 'started_by' = __ME__, `started_at '= NOW (), gdje' status '= 0 ili
('Status' = 1 i `started_at`> DATE_SUB (sada (), interval X HOUR)) ORDER BY `id` ASC; Do grabbing radna mjesta koja nisu vratili rezultate u X količinu vremena koju bi se osiguralo da su svi poslovi izvoditi u slučaju radnika pad ili ide IZBEZUMILA.
- Sljedeća zgrabite posao detalja slijedi zapisa sami:
SELECT * FROM `radnih mjesta 'gdje' started_by '= __ME__ LIMIT 1;
SELECT * FROM `job_records 'Gdje' id '= __JOBID__;
Po završetku posla mi umetnuti naš rezultat bilježi i označite posao završi. Sjetite se kao poslovi može obustaviti / nastaviti u bilo koje vrijeme dopustiti neke robusnosti u svom pismu. To bi moglo biti da je zadatak obustavlja pola puta kroz ažuriranje sustava upravljanje poslom, tako da provjere broj zapisa u posao i broj rezultata spremljene natrag u sustav za upravljanje bi mudar potez.
Osim toga, dok ovo pokazuje kako radna mjesta mogu se odabrati i upravlja iz SQL query okvira te bi trebao stvarno biti sažetaka svoj posao kontrole, tako da ako se odlučite prebaciti na korištenje web-usluge, datotečni sustav temeljen XML , ili bilo koje druge broj sustava neće utjecati na broj iznad njega.
Posao konfiguracije
Sljedeći aspekt razmotriti je posao veličine i konfiguracije. By igranje s posla konfiguracije možemo štrajk izvrsnu ravnotežu između brzine, proces replikacije i pouzdanost. Uzmi scenarija ofa par:
- Poslovi uzeti 1 dan svaki pokrenuti: To znači da radnici trebaju 15 dana za obradu svaki posao (sjetite se 10% snage za 2/3rds vremena). To očito nije mudar konfiguraciju, vaš posao je veličina način prevelika! To bi se barem dvostruko vrijeme da biste dobili posao obrađen treba početni radnik ide IZBEZUMILA (vrijeme pokupiti da ga nije vratio rezultat plus preradu vrijeme). U idealnom biste imati barem jedan puni posao jednostavno izbrisani do kraja svakog dugog mirovanja razdoblje, na taj način zadržite posao navlake preko au najgorem slučaju posao bi se dva dana postupak bi trebao ići prvi nedostaje.
- Poslovi uzeti 1 minutu za pokretanje: To znači da radnici potrajati oko 15 minuta pokrenuti svaki posao. Dok to u početku može činiti idealnim, dobit ćete dodatni posao za obradu vrijeme ručka, pauze za kavu, sastanci, itd. ovaj scenarij stavlja pritisak na drugim područjima vašeg sustava i uvodi svoje probleme. Na primjer, prvo svoj setup / vrijeme obrade omjer je ići desno dolje, dakle gubitka učinkovitosti sustava. Vaša mreža će biti stalno struji posao informacije raznih radnika frustrirajuće osoblje koji su dong svoje svakodnevnom radu. Također ćete uložiti više pritisak na vaš poslužitelj posao obrade kao što je na jelo na puno i puno malih komada rada na regularnoj osnovi. Na kraju, u ovoj situaciji ako je vaš posao poslužitelj odlazi dolje ćete stvoriti ogroman leđa dnevnik nedovršenog posla, dok veći radnih mjesta moglo bi za nastavak obrade blaženo nesvjestan da je posao poslužitelj poteškoća.
U stvarnosti neće biti nitko idealna konfiguracija za grid postava, puno ovisi o raspoloživim sredstvima, vrste posla, posao vrijeme obrta zahtjeve, mreže sposobnost, i tako dalje. No neke smjernice će biti:
- Veličina radnih mjesta tako da svaki radnik može dobiti preko najmanje 3-4 novih radnih mjesta u roku od 15 sati (najduže vjerojatno mirovanja vremenskom razdoblju)
- Igrajte se s posla veličine, tako da postava vrijeme postaje prilično beznačajan u odnosu na vrijeme obrade (imajući u vidu gore navedene točke).
- Ako posao ne dovrši u dvokrevetnoj iznos od vrijeme (možda manje), možete očekivati da će završiti to pretpostaviti da je njegov nestali IZBEZUMILA i početi obradu s drugim radnik. To znači da ćete možda morati pričekati i do tri puta normalne dužine posao za to dovršiti (moguće više, ako naknadno posao ne uspije). Vi svibanj želite smanjiti ovaj put, ali budite oprezni da ne previše smanjiti kao što svibanj početi umnožavanje prilagodbom na regularnoj osnovi.
- Poslovi treba biti neovisna od vanjskih uvjeta koliko je god moguće. Posao poslužitelja, na primjer, samo treba kontaktirati na početku i na kraju svaki posao.
- Ne prožeti vaše mreže, to će imati dvije negativne posljedice, vaše dnevne osoblje će pronaći putem mreže frustrirajuće i problemi mogu biti iskusni sa vezama iz vremena problem koji će se samo pogoršavati kao što skali vaše mreže.
- Osigurati radna mjesta mogu se izvoditi na svojim radnicima. Ako poslovi postaju previše memorije intenzivne, odnosno prostor na disku intenzivne poslove će početi prekidanja i jedina stvar koju ćete primijetiti je pad broja radnih mjesta obrađuju bez pravi razlog zašto.
Podnošenje Rezultati posao
Prilikom podnošenja rezultate posao važno je da provjerite da rezultati nisu poslali drugi radnik, pogotovo ako je trenutna radnik je bio uspavan za neko vrijeme.
Kada se rezultati dostavljaju se osiguralo da se broj rezultata utakmica broj zapisa u posao.
Kao što je navedeno ranije, i ne može se više istaknuo, graditi tolerancija kvarova u posao pretraživanja i rezultati podnošenje. Radnici mogu (i najvjerojatnije će se) otići u suspend modu u većini nezgodno puta i to treba biti catered za. Također još jednom sažetaka daleko rezultata podnošenje pomoći će razonoditi za buduće promjene u sustavu kontrole posao puno lakše da se bave.
Rezime
U ovom section smo gledali na ono što poslužitelju posao kontrole treba učiniti i kako da biste dobili vrlo osnovni sustav postavljen. Razgovarali smo o tome kako da biste preuzeli posao od sustava upravljanja i kako najbolje konfigurirati radnih mjesta da biste dobili najviše naš vašeg sustava Office mrežu. Da biste završili, odlomak ili dva o podnošenju rezultata natrag poslužitelju posao nadzora je predstavljena.
- Poslužitelj posao kontrole upravlja radna mjesta i osigurava da su sve radne jedinice dovršen
- Do sažetaka odaberite svoj posao / rezultat podnošenje možemo promijeniti tehnologiju kontrole poslužitelja bez puno problema
- Konfigurirajte svoj posao kako bi se osiguralo da su pokrenuti brzo i učinkovito, bez stavljanjem previše pritisak na svoje mrežne infrastrukture, a bez umnožavanje prilagodbom na regularnoj osnovi.
- Uvjerite se da ste izgraditi tolerancija kvarova i pogreške checking u svoje rutine, radnici mogu suspendirati i nastaviti, a najviše nezgodne puta. Ne zaboravite da provjerite je li rezultati već podnio drugi radnik.
Sljedeći put
U dijelu 3 ćemo stvoriti naš virtualni stroj za obradu i postavljanje naših prozora strojevi postati mirovanja radnog vremena radnika.