Κατηγορία: Grid Computing

Γραφείο Computing Grid χρησιμοποιώντας εικονικά περιβάλλοντα - Μέρος 4

Με , Παρασκευή 4 του Δεκέμβρη 2009 23:59

Εισαγωγή

Εργάζομαι σε μια εταιρεία όπου θα τρέξει πολλές θέσεις εργασίας παρτίδα επεξεργασία εκατομμύρια αρχεία με τα δεδομένα κάθε μέρα και έχω σκεφτεί πρόσφατα για όλες τις μηχανές που κάθονται κάθε μέρα να μην κάνουμε τίποτα για αρκετές ώρες. Δεν θα ήταν καλό αν μπορούσαμε να χρησιμοποιούν αυτές τις μηχανές για να ενισχύσει την επεξεργαστική ισχύ των συστημάτων μας; Σε αυτό το σύνολο των άρθρων Πάω να δούμε τα πιθανά οφέλη από την απασχόληση ενός γραφείου στο δίκτυο χρησιμοποιώντας εικονικοποιημένα περιβάλλοντα.

Στο μέρος 3 δημιουργήσαμε εικονική μηχανή επεξεργασίας μας και να εγκαταστήσετε τα Windows μηχανήματα για να τεθεί σε κατάσταση αδράνειας απασχολουμένων.

Τρέξιμο τις τελευταίες κώδικα

Αναπόφευκτα, μετά τη δημιουργία τους εργαζόμενους τη λογική σας επιχείρηση θα αλλάξει, bugs θα βρεθεί, πιο γρήγορη και αποδοτική κωδικός θα παραχθεί αφήνοντας έτσι τους εργαζόμενους σας καθίσαμε επεξεργασία δεδομένων με τη χρήση παλαιών δύσοσμα κωδικό . Πώς τότε θα εξασφαλίσουμε ότι είμαστε χρησιμοποιώντας πάντα την τελευταία και μεγαλύτερη έκδοση του scripts επεξεργασίας μας;

Υπάρχουν μερικές πολύ εύκολο απλούς τρόπους θα μπορούσαμε να το κάνετε αυτό, το τέχνασμα, ωστόσο, είναι να μειώσουν τη δύναμη επεξεργασίας και την κυκλοφορία του δικτύου για την επίτευξη αυτού. Ας ξεκινήσουμε με τα πιο απλά λύσεις και να βελτιωθεί το αργά πάνω από μια-δυο επαναλήψεις.

Η πρώτη μέθοδος θα ήταν να απλά να συνδεθεί με τη δουλειά μας διακομιστή ελέγχου (μέσω samba, FTP, ή κάτι παρόμοιο) και τραβήξτε προς τα κάτω την πιο πρόσφατη έκδοση του κώδικα. Όχι πολύ αποτελεσματικό, αλλά θα κάνει τη δουλειά. Αφήνει να βελτιωθούμε σε αυτό κάπως, πώς για τη δημιουργία μιας rsync σενάριο και τη χρήση που κάθε φορά αντ 'αυτού; Εναλλακτικά, τι γίνεται με την τοποθέτηση τελευταίες script επεξεργασίας μας σε ανατροπή ελέγξει έξω τον κωδικό αρχικά και στη συνέχεια μόνο ενημέρωση κώδικα μας σε κάθε κύκλο ( SVN ενημέρωση );

Στο τέλος θα μπορούσαμε να καταλήξουμε σε ένα bash script (που ονομάζεται από cron κάθε 10 λεπτά), το οποίο μοιάζει τόσο απλό όσο αυτό:

  #! / Bin / sh
 αν ps ax | grep-v grep | grep php > / dev / null
 τότε
     echo "θέσεων εργασίας είναι επί του παρόντος την επεξεργασία, την έξοδο"
 αλλού
     echo "Ιώβ δεν εκτελείται, ξεκινήστε τώρα"
     cd / path / to / εργασία / αντίγραφο
     svn ενημέρωση
     php yourJobProcessingScript.php
 fi 

Τώρα μπορούμε να είμαστε βέβαιοι ότι με κάθε εκτέλεση είμαστε τρέχει σίγουρα το πιο πρόσφατο κώδικα. Είμαστε διασφάλιση αυτής της βάσης, με την ενημέρωση κώδικα μας κάθε φορά που πραγματοποιείται μια λειτουργία και τη μείωση της κίνησης του δικτύου από μόνο μεταφέροντας τις διαφορές αρχείων στο δίκτυό μας.

Στο setup επίδειξη μου, έκανα ακριβώς όπως παραπάνω. Subversion είχε εγκατασταθεί στο server επεξεργασία της εργασίας μου και τράβηξα απλά το πιο πρόσφατο κώδικα από το «εργαζόμενος» υποκατάστημα που χρησιμοποιούν «svn update '. Πρόσθεσα επίσης μια ετικέτα αριθμό έκδοσης στο script επεξεργασία μου, η οποία επέστρεψε στη βάση δεδομένων ως μέρος της επιστροφής των αποτελεσμάτων. Με αυτό τον τρόπο θα μπορούσα να δω ότι ο κώδικας μου ήταν να ενημερώνονται κάθε φορά που έχω αντιγράψει κορμό μου στο υποκατάστημα, δηλαδή εργαζόμενο που έτρεχα σίγουρα το τελευταίο σενάριο επεξεργασία.

Χρησιμοποιώντας τα πιο πρόσφατα στοιχεία

Εάν η επεξεργασία της εργασίας σας κάνει χρήση των πηγών στοιχείων, στη συνέχεια, κάποια στιγμή αυτά θα πρέπει να ενημερώνονται επίσης. Εκτός αν σας καλέσει πηγές δεδομένων σας σε μια πολύ σπάνια βάση θα πάμε να κατακλύσουν το δίκτυο με την κυκλοφορία το συντομότερο εργαζομένων σας αρχίσουν να προβάλλονται φέρνοντας τα πάντα σε ακινησία. Για λύση μου, αποφάσισα ότι θα ήθελα να προχωρήσουμε πηγές δεδομένων γύρω μου με ΣΠΣ μου.

Κρατήστε είστε άλογα εκεί! Τι θα συμβεί εάν πηγές δεδομένων μου είναι ΤΕΡΑΣΤΙΑ; Λοιπόν αυτό είναι πραγματικά μια περίπτωση πόσα δεδομένα μιλάμε; Μπορεί να είναι πιο αποδοτικό να εγκαταστήσετε ένα επιπλέον μεγαλύτερο σκληρό δίσκο σε κάθε μηχάνημα από το να αγοράσει ένα πρόσθετο διακομιστή επεξεργασίας. Αυτό είναι ένα ζήτημα του προϋπολογισμού και μέχρι την επιχείρηση για να αποφασίσει. Είναι ίσως ότι οι πηγές των δεδομένων σας είναι τόσο μεγάλες που απλώς ανέφικτο να κρατήσει το ποσό των δεδομένων σε μηχανές των εργαζομένων σας. Του Σε αυτή την περίπτωση τι θα κάνατε; Καλά θα μπορούσαμε να εξετάσουμε καλώντας έναν τοπικό διακομιστή δεδομένων, αλλά αυτό θα μπορούσε να προκαλέσει προβλήματα με το δίκτυο. Σε αυτή την περίπτωση ένα σύστημα πλέγματος, όπως αυτό μπορεί να γίνει ρεαλιστικό να συμπεριλάβει στο περιβάλλον του γραφείου σας. Μπορεί επίσης να είναι ότι μπορείτε να εξετάσει εναλλακτικές στρατηγικές τρέξιμο, για παράδειγμα, καλώντας μόνο τους εργαζόμενους σας μεταξύ 20:00 και έξι κάθε βράδυ και / ή επιτάχυνσης αιτήματα πηγή δεδομένων.

Προχωρώντας ας πούμε δεδομένα ποσό μας πηγές για να 100GB δεδομένων. Λοιπόν ναι, αυτό είναι αρκετά ένα κομμάτι των δεδομένων για να κινηθεί γύρω από το δίκτυο για μια ενημέρωση. Πώς θα ήταν να διασφαλίσουμε ότι έχουμε το τελευταίο αντίγραφο των δεδομένων σε αυτή την περίπτωση; Rsync είναι μια πιθανότητα, αλλά προσωπικά πιστεύω ότι με το τρέξιμο τελευταία πηγή δεδομένων σας στο διακομιστή επεξεργασία της εργασίας σας και αυτήν τη ρύθμιση ως ένα master στην αντιγραφή του (με ένα ωραίο μεγάλο ημερολόγιο bin) μπορεί να είναι ο τρόπος να πάει:

αναπαραγωγή Με τον καθορισμό των εργαζομένων σε κάθε σας ως ένας σκλάβος για τις ενημερώσεις του διακομιστή δουλειά ελέγχου των πηγών δεδομένων σας θα φθάσουν τους όμορφα για τους εργαζομένους σας χωρίς μια τεράστια αύξηση της δραστηριότητας του δικτύου (δηλαδή, εκτός αν εκτελέσετε ένα τεράστιο ενημέρωση των δεδομένων και όλων των εργαζομένων σας λάκτισμα σε με τη μία). Αυτό έχει πλεονεκτήματα σε σχέση με το rsync στο ότι δεν θα πάρετε μια μεγάλη παύση πριν από κάθε εργασία? Ως τις ενημερώσεις της βάσης δεδομένων, η MySQL δαίμονα στις εργαζόμενος θα σας ενημερώνει διαρκώς τα δεδομένα της, ενώ η επεξεργασία συνεχίζεται.

Αυτό είναι το πώς μπορώ να ρυθμίσω το διακομιστή επίδειξη μου. Για να ρυθμίσετε την αναπαραγωγή Ακολούθησα τον οδηγό στη θέση mySQL ( Ρύθμιση αντιγραφής ) και μέσα σε 20 λεπτά είχα inital εργαζόμενος μου αναπαράγει τον έλεγχο servers σύνολο δεδομένων εργασίας. Για κάθε επιπλέον εργαζόμενο τις ρυθμίσεις αντιγραφής και της διαδικασίας εργαστεί κάθε φορά, όταν το VM έχει αντιγραφεί.

Περίληψη

Σε αυτό το τμήμα του άρθρου έχουμε δει πόσο εύκολο και ανώδυνο είναι να κρατήσει την επεξεργασία κωδικό σας ενημερωμένο με using rsync ή subverion (SVN) για να κάνει τη δουλειά και να μειώσει την κυκλοφορία του δικτύου με την ίδια time. Συζητήσαμε επίσης πώς να διατηρείτε τα δεδομένα σας πηγή πληροφοριών up-to-ημερομηνία, επιτρέποντάς της να φθάσουν τους σε κάθε ένα από τους εργαζομένους σας. Έτσι περιοχή εξασφαλίζοντας ότι θα συμβαδίσει με την επιχειρηματική λογική και τις πληροφορίες στο δίκτυο του γραφείου μας. Θα υπάρχει προφανώς αμέτρητες εναλλακτικές λύσεις για την εκτέλεση αυτών των καθηκόντων, αλλά εδώ ήταν δύο απλά παραδείγματα για να δείξει πόσο εύκολα μια λύση είναι να έρθει κοντά.

Την επόμενη φορά

Στο τελευταίο μέρος αυτής της σειράς, εύστοχα ονομάστηκε Μέρος 5 , θα συζητήσουμε την ανάπτυξη αυτού του συστήματος για. Θα συνοψίσω τι έχει μάθει και τι έχω καταφέρει να δημιουργήσουν.

Γραφείο Computing Grid χρησιμοποιώντας εικονικά περιβάλλοντα - Μέρος 1

Με , Παρασκευή 4 του Δεκέμβρη 2009 23:23

Εισαγωγή

Εργάζομαι σε μια εταιρεία όπου θα τρέξει πολλές θέσεις εργασίας παρτίδα επεξεργασία εκατομμύρια αρχεία με τα δεδομένα κάθε μέρα και έχω σκεφτεί πρόσφατα για όλες τις μηχανές που κάθονται κάθε μέρα να μην κάνουμε τίποτα για αρκετές ώρες. Δεν θα ήταν καλό αν μπορούσαμε να χρησιμοποιούν αυτές τις μηχανές για να ενισχύσει την επεξεργαστική ισχύ των συστημάτων μας; Σε αυτό το σύνολο των άρθρων Πάω να δούμε τα πιθανά οφέλη από την απασχόληση ενός γραφείου στο δίκτυο χρησιμοποιώντας εικονικοποιημένα περιβάλλοντα.

Ως PHP προγραμματιστής Πάω να χρησιμοποιούν εργαλεία που χρησιμοποιώ κάθε μέρα, δηλαδή το Linux, mySQL , PHP, το VirtualBox και το Subversion (SVN). Ωστόσο ελπίζω ότι αυτός ο οδηγός θα προσαρμοστεί και σε άλλες γλώσσες και τεχνολογίες το ίδιο καλά.

Η λύση που προσφέρει θα είναι πολύ χαλαρά με βάση το είδος της επεξεργασίας που θα πρέπει να επιτευχθεί όμως αυτό δεν μπορεί να ισχύει σε όλο το άρθρο, όπως θα αλλάξουμε τα πράγματα για την απλότητα, ή να παράγουν πιο ενδιαφέροντα σενάρια χρήσης.

Αυτά τα περιβάλλοντα εικονικοποιημένων θα τρέχει σε Windows μηχανήματα δεδομένου ότι αυτό είναι ό, τι η πλειονότητα των γραφείων τρέξει. Η επεξεργασία ότι οι μηχανές γραφείου, δεν πρέπει να παρεμβαίνει με το προσωπικό που χρησιμοποιούν τις μηχανές αυτές, θα πρέπει να απαιτεί καμία συντήρηση, με τη μηχανή, και είναι εύκολο να αναπτυχθούν σε νέα μηχανήματα, όπως αυτά θα είναι διαθέσιμα. Επίσης, οι νέες εικονικές μηχανές θα πρέπει να μην απαιτεί καμία πρόσθετη ρύθμιση, όπως αυτή μειώνει σημαντικά την επεκτασιμότητα και ευκολία με την οποία το δίκτυο μπορεί να επεκταθεί.

Γιατί Ανάπτυξη μιας Grid Computing του Office;

Πρώτον μπορεί να σκέφτεστε, γιατί να μην χρησιμοποιούν μόνο έναν πόρο το cloud computing, όπως η πλατφόρμα EC2 της Amazon ; Καλά τους λόγους που θα μπορούσαν να είναι πολλές, όπως για παράδειγμα:

  • Δεν θα αναθέσει ορισμένα δεδομένα σε ένα υπολογιστικό περιβάλλον σύννεφο
  • Δεν μπορείτε να θέσει ορισμένα δεδομένα σε ένα υπολογιστικό περιβάλλον σύννεφο για νομικούς λόγους (π.χ. δεδομένα που φεύγουν από τη χώρα), πιθανώς για νομικούς λόγους, π.χ. τα αρχεία του ΕΣΥ.
  • Θέλετε να κρατήσετε τις μονάδες επεξεργασίας σας κοντά και να έχουν τον πλήρη έλεγχο του υλικού πάρα πολύ
  • Δεν έχετε τα κεφάλαια του έργου για την εκτέλεση εμφανίσεων σύννεφο
  • Το γραφείο σας δεν διαθέτει σύνδεση στο διαδίκτυο και ως εκ τούτου της δεν είναι δυνατόν να χρησιμοποιήσει έναν πόρο σύννεφο
  • Δεν είναι όπως τη βροχή, τα σύννεφα βροχή προτείνουμε, ως εκ τούτου κρατάτε μακριά

Είμαι βέβαιος ότι ο κατάλογος θα μπορούσε να συνεχίσει, αλλά νομίζω ότι είναι αρκετό για τώρα.

Πλεονεκτήματα του Grid Computing Office

Λοιπόν, σας επιτρέπει να κάνετε κάποια μαθηματικά (και το αυθεντικό στυλ της φυσικής σας δίνει τη δυνατότητα να σαρώνει κάποιες υποθέσεις). Φανταστείτε ότι έχετε μεγάλη σωματώδης διακομιστή επεξεργασία τρέχει 100 θέσεις εργασίας ανά ημέρα. Στο γραφείο σας, έχετε 50 μηχανές που είναι σε αδράνεια 16 ώρες την ημέρα, κάθε ένα από αυτά τα μηχανήματα είναι 10% τόσο ισχυρό όσο σωματώδης κόβω την επεξεργασία σας. (Όλα τα αποτελέσματα εδώ στρογγυλοποιούνται να υποτιμήσουμε την αύξηση των επιδόσεων).

Έτσι, 1 μηχανή * 10% δύναμη * 2 / 3 του χρόνου = 0,067 δηλ. 1 επεξεργασία στην επιφάνεια εργασίας χρόνο αδράνειας θα μπορούσαν διαδικασία 6 θέσεις εργασίας πλήρους απασχόλησης ανά ημέρα.

Εάν κλίμακα μέχρι τώρα αυτό που χρειάζεται 15 ρελαντί επιτραπέζιους υπολογιστές να επεξεργάζονται τόσες θέσεις εργασίας ανά ημέρα ως κύριο διακομιστή επεξεργασία σας κάνει.

Έτσι στο γραφείο μας προσποιούνται των 50 μηχανές που θα μπορούσε να αυξήσει την επεξεργαστική ισχύ μας, από την 1η διακομιστή μέχρι και 4 servers πλήρη επεξεργασία, ή θα μπορούσαμε να είμαστε επεξεργασία 400 θέσεις εργασίας ανά ημέρα αντί για 100.

Ανακοίνωση, για καμία επένδυση σε νέο hardware της εταιρείας σας έχει αυξηθεί μόλις παρτίδα την ικανότητά της επεξεργασίας 4 φορές! Δυνητικά θα πάμε να αυξηθεί η χρήση δύναμή σας, αλλά από τα περισσότερα περιβάλλοντα γραφείου Έχω πάει σε μηχανές είναι γενικά μια μέρα στην άλλη αριστερά στην έτσι κι αλλιώς, έτσι θα μπορούσατε να δείτε αυτό ως μια πράσινη πρωτοβουλία.

Άλλα πλεονεκτήματα σημαίνει επίσης ότι οι επενδύσεις σε νέες (ή ενημέρωση) servers επεξεργασία μπορεί να καθυστερήσει εάν μηχανών γραφείου σας είναι επαρκείς και ότι, όπως να βελτιώσετε την ισχύ των μηχανών γραφείου σας στο δίκτυο του γραφείου σας γίνεται πιο ισχυρή αυτόματα.

Τεχνολογίες

Τι χρειάζεστε; (Ή πιο σωστά αυτό που έκανα χρήση):

  • Idle μηχανές γραφείου (στην περίπτωσή μου μια εφεδρική παλιά XP Windows laptop)
  • VirtualBox (ή άλλο λογισμικό του πελάτη εικονικοποίησης)
  • Μια εικονική μηχανή με την PHP, mySQL running τρέχει μια περικοπή κάτω OS, είμαι καλώντας αυτές τις έκτακτες περιπτώσεις servers μου:)
  • Θέσεις εργασίας για να τρέξει
  • Διακομιστή Job (μπορεί να είναι μια άλλη εικονική μηχανή κάπου)

Τυπικές θέσεις εργασίας

Τα είδη των θέσεων εργασίας που αυτό το σύστημα είναι σχεδιασμένο να λειτουργεί ως εξής:

  • Σύστημα λαμβάνει μια λίστα δεδομένων πάνω στην οποία πρέπει να ταιριάζει και να επιστρέψει τα αποτελέσματα
  • Συνδυάζοντας περιλάμβάνει τον έλεγχο / έρευνα πολλά (αρκετά στατική) των πηγών δεδομένων
  • Τα αποτελέσματα από τις πηγές δεδομένων που μπορούν να απαιτούν περαιτέρω επικύρωση, τη συγχώνευση, τον έλεγχο της συμπληρωματικές πηγές δεδομένων, για την αντιμετώπιση των αποτελεσμάτων
  • Τα δεδομένα επέστρεψε με αντίστοιχες εγγραφές, πλήρως επικυρωμένων και επεξεργασία
  • Κάθε εγγραφή σε μια θέση εργασίας είναι ανεξάρτητο από τα υπόλοιπα

Έτσι, ουσιαστικά ψάχνουμε στο τρέξιμο θέσεις εργασίας που απαιτούν ένα μίγμα αναζητήσεις βάση δεδομένων και μερικά τραγάνισμα αριθμό, ένα τυπικό σενάριο σε ένα επιχειρηματικό περιβάλλον.

Πλέγμα λύσεις δεν είναι μόνο επωφελής για την επεξεργασία θέσεων εργασίας αυτού του τύπου. Βασικά, κάθε διαδικασία που μπορεί να χωριστεί σε ανεξάρτητες μονάδες μπορούν να λειτουργούν παράλληλα. Δείτε αυτό το wikipedia για παραδείγματα και περισσότερες πληροφορίες: Grid Computing , αλλά μερικά διάσημα παραδείγματα είναι SETI @ home και BIONC . Υπάρχουν πλαισίων για τη λειτουργία των δικτύων υπολογιστών, και αυτά είναι καλά αξίζει περισσότερη μελέτη.

Τι θα πετύχουμε;

Μέχρι το τέλος αυτών των άρθρων ελπίζω να δείξει ότι αναπτύσσετε ένα δίκτυο γραφείων δεν χρειάζεται να είναι εξαιρετικά δαπανηρή και χρονοβόρα. Πάω να συζητήσουμε:

  • Ρύθμιση του συστήματος ελέγχου της εργασίας, τη διαμόρφωση θέσεων εργασίας
  • Δημιουργία κατάλληλης επεξεργασίας εικονική μηχανή
  • Πως να ρυθμίσετε το σύστημα σε μια μηχανή παραθύρων
  • Εξασφάλιση χρησιμοποιείτε το πιο πρόσφατο κώδικα και τα δεδομένα
  • Ανάπτυξη και συγκριτική αξιολόγηση
  • Κοιτώντας προς το μέλλον

Θα είμαι κτιρίου (ok έχτισα, τότε έγραψε αυτό) μια αίτηση παράδειγμα, να δοκιμαστούν οι έννοιες σε ένα τοπικό μηχάνημα με Windows XP και μου 'GridMachine «εικονική μηχανή. Δουλειά μου με το διακομιστή ελέγχου θα είναι το κύριο μηχάνημα μου που τρέχει Fedora 11 .

Αυτό σε καμία περίπτωση δεν προορίζεται να αποδείξει ένα πλήρως εργασίας ισχυρό σύστημα, σήμαινε της περισσότερο από μια επίδειξη και τη συζήτηση που δείχνουν ότι αυτά τα πράγματα μπορούν να επιτευχθούν μέσα σε λογικά σύντομο χρονικό διάστημα και με μικρό κόστος. Μη διστάσετε να μου στείλετε οποιαδήποτε σχόλια, διορθώσεις, ή βελτιώσεις και θα κάνω ότι καλύτερο μπορώ για να κρατήσει αυτό το άρθρο ενημερωθεί ώστε να ταιριάζουν.

Την επόμενη φορά

Στο μέρος 2 θα αρχίσω με την εξέταση του συστήματος ελέγχου της εργασίας, και να εξετάσει πώς θέσεις εργασίας θα πρέπει να ρυθμιστεί προκειμένου να επιτευχθεί μεγαλύτερη ποσότητα επεξεργασίας εξασφαλίζοντας ταυτόχρονα ότι κάθε θέση απασχόλησης που υποβάλλεται σε επεξεργασία χωρίς να αποτύχει.

Γραφείο Computing Grid χρησιμοποιώντας εικονικά περιβάλλοντα - Μέρος 2

Με , Παρασκευή 4 του Δεκέμβρη 2009 23:23

Εισαγωγή

Εργάζομαι σε μια εταιρεία όπου θα τρέξει πολλές θέσεις εργασίας παρτίδα επεξεργασία εκατομμύρια αρχεία με τα δεδομένα κάθε μέρα και έχω σκεφτεί πρόσφατα για όλες τις μηχανές που κάθονται κάθε μέρα να μην κάνουμε τίποτα για αρκετές ώρες. Δεν θα ήταν καλό αν μπορούσαμε να χρησιμοποιούν αυτές τις μηχανές για να ενισχύσει την επεξεργαστική ισχύ των συστημάτων μας; Σε αυτό το σύνολο των άρθρων Πάω να δούμε τα πιθανά οφέλη από την απασχόληση ενός γραφείου στο δίκτυο χρησιμοποιώντας εικονικοποιημένα περιβάλλοντα.

Στο μέρος 1 έδωσα μια γενική εικόνα του συστήματος και των τεχνολογιών θα είμαι χρησιμοποιώντας καθώς συζητηθεί ως μερικές από τις πιθανές λόγους για τους οποίους θα θέλατε να δημιουργήσετε ένα δίκτυο γραφείων.

Ελέγχου της εργασίας

Εάν πρόκειται να τρέχει θέσεις εργασίας στη συνέχεια θα πάμε να χρειαστεί κάποιο τρόπο για τη διαχείρισή τους. Δουλειά σας σύστημα ελέγχου (στο διακομιστή δουλειά σας) πρέπει να είναι πολύ καλά μελετημένη, πριν ακόμη προσπαθεί να τρέξει ένα δίκτυο γραφείων. Έτσι, πρώτον, ποια είναι τα καθήκοντα για ένα σύστημα ελέγχου της εργασίας:

  • Θέσεις εργασίας από το χέρι, μετά από αίτημα των εργαζομένων
  • Πείτε τους εργαζόμενους τι είδους θέσεις εργασίας για να τρέξει
  • Θέσεις εργασίας Track
  • Βεβαιωθείτε ότι οι θέσεις εργασίας είναι να εκτελεστεί μόνο μία φορά
  • Παροχή δεδομένων εργασίας για τους εργαζόμενους, ή τουλάχιστον να τους πει πού να το πάρει

Το σύστημα πρέπει επίσης να είναι επεκτάσιμο, μια λύση που θα λειτουργεί προς το παρόν σε μία μόνο περίπτωση μπορεί να επεκταθεί για να τρέξει διάφορα είδη των θέσεων εργασίας, όπως η επιχείρηση βλέπει την αξία σε μια λύση πλέγμα. Για παράδειγμα, οι θέσεις εργασίας μπορεί να κερδίσει τις προτεραιότητες, τους περισσότερους από έναν τύπους θέσεων εργασίας μπορεί να υπάρχουν (π.χ. διάφορες βάσεις κώδικα), τελικά μπορεί να τρέχει ακόμα και αρκετές διαφορετικές μηχανές των εργαζομένων που έχουν βελτιστοποιηθεί για κάθε τύπο εργασίας (αν και αυτό δεν μετακινείται μακριά από την «κοινόχρηστη εργαζόμενος «ιδέα). Πάντα προσπαθήστε να σκεφτείτε για το μέλλον κατά την ανάπτυξη συστημάτων, σε μικρή απόσταση όραμα όρος μπορεί να οδηγήσει σε πιο μακροπρόθεσμη απογοήτευση και αύξηση του χρόνου ανάπτυξης.

Διακομιστής Εργασίας

Εμείς πάμε για να πρέπει κάπου να ελέγχουν θέσεις εργασίας μας από, αυτό θα πρέπει να είναι το μόνο σύστημα στο δίκτυο σας που έχει ένα σταθερό Resource Locator, είναι ότι μια διεύθυνση IP, όνομα κεντρικού υπολογιστή, διεύθυνση URL (χρησιμοποιώντας εσωτερικά DNS), κλπ. Αυτό οφείλεται στο γεγονός ότι οι εργαζόμενοι πρέπει να ξέρουν πού να ψάξουν για θέσεις εργασίας, οι εργαζόμενοι πρέπει να βρούμε το σύστημα ελέγχου της εργασίας (όχι το σύστημα ελέγχου της εργασίας βρει τους εργαζόμενους).

Ο διακομιστής ίδια η δουλειά δεν έχει πραγματικά μια πολύπλοκη εργασία (σε ένα βασικό σύστημα ούτως ή άλλως), θα πρέπει να αποθηκεύσετε μια λίστα των θέσεων εργασίας, το χέρι έξω θέσεις εργασίας, να λαμβάνουν τα αποτελέσματα, και στη συνέχεια να τα αποθηκεύσουν για μετέπειτα ανάκτηση. Πώς ορίζονται τα τμήματα αυτά («το χέρι έξω θέσεις εργασίας», όπως η) μπορεί να είναι πολύ βασικές. Αργότερα μπορούμε να επεκτείνουμε το σύστημα να περιλαμβάνει μια διεπαφή διαχείρισης για να προσθέσετε, να επεξεργαστείτε, να διαγράψετε, να αναστείλει θέσεις εργασίας, αλλά αυτό είναι πέρα ​​από αυτή την άσκηση.

Δεν υπάρχει κανένας απολύτως λόγος στη συνέχεια ότι ο διακομιστής τη δουλειά σας δεν θα μπορούσε να είναι μια εικονική μηχανή να λειτουργήσει μέσα σε κεντρικό server επεξεργασίας σας με την προϋπόθεση ότι δεν στραγγίζει πάρα πολλά μέσα από αυτό. Ο διακομιστής δουλειά, ωστόσο χρειάζονται υψηλή διαθεσιμότητα, αν πηγαίνει κάτω σε μια Παρασκευή βράδυ θα πάμε να χάσουμε ένα ολόκληρο Σαββατοκύριακο για τη μεταποίηση, ενδεχομένως να σας κοστίσει μια-δυο εβδομάδες αξίας του χρόνου επεξεργασίας (σε σύγκριση με κεντρικό server επεξεργασία σας μόνο) . Μπορεί να θέλετε να εξετάσει το ενδεχόμενο διακομιστή εργασία σας σε ένα φορτίο ισορροπημένο περιβάλλον για υψηλή διαθεσιμότητα.

Βασική ρύθμιση

Η βασική ρύθμιση για το διακομιστή δουλειά μας θα αποτελείται από ό, τι είμαι καλώντας ένα από limp διακομιστές μου (που είναι Li Nux, μ ySql, P HP). Ο κωδικός λειτουργεί με θέα εργαζομένων θα έχει κανένα αποτέλεσμα η δουλειά που μπορεί να τρέξει από την αλληλεπίδραση με βάσεις δεδομένων με το σύστημα ελέγχου της εργασίας. Αργότερα, θα μπορούσαμε να δημιουργήσουμε μια υπηρεσία web και πραγματικά το χέρι έξω θέσεις εργασίας αντί των εργαζομένων κάνει τη σκληρή δουλειά τους, αλλά προς το παρόν θα συνεχίσει να χρησιμοποιεί την αρχή KISS (κρατήστε το απλό, ηλίθια!).

Έτσι, αφήνει να δημιουργήσετε τρεις mySQL πίνακες για την αντιμετώπιση των θέσεων εργασίας. Αυτές θα είναι `θέσεις εργασίας`, `jobRecords` και `jobResults`.

θέσεις εργασίας πίνακα Εδώ είμαι με τη χρήση SQL Buddy μικρή η μεγάλη εναλλακτική λύση για το phpMyAdmin μόνο και μόνο επειδή ευκολότερη της να εγκαταστήσετε σε CentOS (για τους άλλους δείτε: 10 Μεγάλη εναλλακτικές λύσεις για το phpMyAdmin )

Αυτός ο πίνακας αποτελείται από 5 απλά πεδία,

  • id: με μοναδικά στοιχεία το έργο
  • Όνομα: Θα μπορούσε να είναι σημείο αναφοράς τον πελάτη, ή οποιοδήποτε αριθμό άλλων αναγνωριστικών
  • Κατάσταση: Πρέπει να ξέρετε όπου η εργασία είναι, π.χ.
    • 0: Δεν έχει ξεκινήσει
    • 1: επιταχύνθηκε
    • 2: Ολοκληρώθηκε
  • started_by: Ποιος είναι που ξεκίνησε να κάνει τη δουλειά; Αυτό δεν είναι απολύτως απαιτείται, αλλά είναι καλό να υπάρχει. Θα πρότεινα την παρακολούθηση των εργαζομένων από τη διεύθυνση IP τους στο δίκτυό σας
  • started_at: Πότε ο εργαζόμενος ξεκινήσει η δουλειά; Με την καταδίωξη θέσεις εργασίας που δεν έχουν ολοκληρωθεί μέσα σε Χ ποσό του χρόνου που γνωρίζουμε ότι πρέπει να πάρει τη δουλειά για άλλη μια φορά και να αρχίσει την επεξεργασία από ένα άλλο εργαζόμενο. Οι εργαζόμενοι θα μπορούσε να σταματήσει την επεξεργασία / go offline για οποιοδήποτε αριθμό λόγων, τη διακοπή ρεύματος, συντριβή, την απώλεια του δικτύου, κλπ.

Είναι εύκολο τρόπο με τον οποίο ο πίνακας αυτός θα μπορούσε να επεκταθεί με μερικά επιπλέον πεδία για να καταστεί δυνατή η παρακολούθηση στατιστικών στοιχείων, μια στήλη ώρα λήξης για να δούμε πόσο καιρό πήρε τη δουλειά, έναν μετρητή για να δείτε πόσοι εργαζόμενοι πήραν την εργασία (προφανώς αυτό πρέπει να έχουν την τάση να 1), προτεραιότητα τη δουλειά, η λίστα μπορεί να συνεχιστεί και επάνω. Σε πιο πολύπλοκα σενάρια εργασίας θα ήταν δυνατό να προσδιοριστεί το μέγεθος της μνήμης του εργαζομένου θα πρέπει να έχουν πρόσβαση σε (και επομένως η χρήση κατάλληλο μόνο τους εργαζομένους), ή ακόμα και τι είδους εργαζόμενος θα πρέπει να είναι.

Αφήνει να προσθέσετε μερικές θέσεις εργασίας παράδειγμα:

θέσεις εργασίας παράδειγμα

Το επόμενο πίνακα είναι και πάλι αρκετά απλό να κατανοήσει, αυτά είναι τα αρχεία δουλειά μας. Συνδέονται με τον κύριο πίνακα θέσεων εργασίας από μια στήλη `jobs_id`. Η συνθέτουν αυτού του πίνακα εξαρτάται σε μεγάλο βαθμό τα δεδομένα που χρειάζεστε για να παρέχει στους εργαζομένους σας, σας δίνει τη δυνατότητα να ένα πολύ απλό παράδειγμα, όπου έχουμε τέσσερις στήλες:

  • ID: ID της εγγραφής
  • Όνομα: Όνομα προσώπου της επιχείρησης
  • διεύθυνση: διεύθυνση Πρόσωπο του
  • jobs_id: Το αναγνωριστικό εργασίας που αυτό το αρχείο είναι συνδεδεμένο με

Ο τρίτος και τελευταίος πίνακας αποτελείται από ένα πίνακα αποτελεσμάτων, που έχει περίπου το ίδιο κάνουν ως επιτραπέζια αρχεία μας, και με την προσθήκη ορισμένων στήλες θα μπορούσαν να είναι μέρος του πίνακα εγγραφών:

  • job_record_id: Link το αποτέλεσμα στο τραπέζι των θέσεων εργασίας
  • αποτέλεσμα: Τα στοιχεία που προκύπτουν

... Και αυτό είναι όλο που χρειάζεστε για τον έλεγχο δουλειά! (Αν και σε πολύ βασικό επίπεδο) Στην περίπτωσή μου είμαι επισήμανε σε άλλο πίνακα, όπου τα στοιχεία μου για την επεξεργασία βρισκόταν, αλλά αυτό θα μπορούσε εξίσου εύκολα να γίνει ένα αρχείο, οι παράμετροι για την εκτέλεση κώδικα προσομοίωσης, εσείς το όνομα.

Επιλέγοντας μια εργασία

Όπως αναφέρθηκε προηγουμένως, οι εργαζόμενοι θα κάνουν τη διαχείριση δουλειά μας για μας για τώρα, οπότε το μόνο που χρειάζεται πραγματικά να κάνουμε είναι να βρούμε μια δουλειά που χρειάζεται επεξεργασία και να πάρετε τις πληροφορίες. Πώς θα το κάνουμε αυτό; Καλά πάρει τη δουλειά μας κριτήρια επιλογής και να αναζητήσει θέσεις εργασίας, σε SQL έκανα τα εξής:

  1. Πάρτε καμία θέση εργασίας που δεν έχουν επισημανθεί ως ολοκληρωμένες, αλλά από εργαζομένων μας και η επαναφορά τους (υποκατάστατο __ME__ με ένα αναγνωριστικό, πιο εύκολο θα είναι η διεύθυνση IP):
      UPDATE `θέσεις εργασίας` SET `κατάσταση` = 0 όπου `κατάστασης = 1` και `started_by` = __ME__? 
  2. Χρησιμοποιώντας τη δουλειά μας κριτήρια επιλογής, επιλέξτε μια εργασία και να πει το σύστημα ελέγχου που αυτό εργαζόμενος ασχολείται με αυτό:
      UPDATE `θέσεις εργασίας` SET `κατάσταση` = 1, στο εξής started_by `= __ME__,` started_at `= NOW () Όπου` κατάσταση `= 0 ή
     (`Κατάστασης = 1` και `started_at`> DATE_SUB (NOW (), το διάστημα ώρα x)) ORDER BY `id` ASC? 

    Με την αρπαγή θέσεις εργασίας που δεν έχουν επιστρέψει τα αποτελέσματα στο ποσό Χ διάστημα να διασφαλίσουμε ότι όλες οι εργασίες εκτελούνται σε περίπτωση που ένας εργαζόμενος συντριβή ή θα AWOL.

  3. Στη συνέχεια πιάσε τα στοιχεία απασχόλησης που ακολουθείται από τα αρχεία οι ίδιοι:
      SELECT * FROM `θέσεις εργασίας` WHERE `started_by` = __ME__ ορίου του 1?
     SELECT * FROM `job_records` WHERE `id` = __JOBID__? 

Με την ολοκλήρωση της εργασίας που εισάγουν εγγραφές αποτέλεσμα μας και σηματοδοτούν την εργασία ως ολοκληρωμένη. Να θυμάστε ότι οι εργασίες που μπορεί να αναστείλει / επαναλάβει οποιαδήποτε στιγμή επιτρέπουν κάποια ευρωστία μέσα στο κείμενό σας. Θα μπορούσε να είναι ότι το έργο αναστέλλει μισά ενημέρωση του συστήματος ελέγχου της εργασίας, έτσι τον έλεγχο του αριθμού των εγγραφών σε μια θέση εργασίας και τον αριθμό των αποτελεσμάτων αποθηκεύεται πίσω στο σύστημα ελέγχου της εργασίας θα ήταν μια σοφή κίνηση.

Επιπλέον, ενώ αυτό δείχνει πόσο θέσεις εργασίας μπορούν να επιλεγούν και να διαχειρίζεται από ένα ερώτημα SQL-πλαίσιο θα πρέπει πραγματικά να υδροληψίες ελέγχου της εργασίας σας, έτσι ώστε εάν αποφασίσετε να στραφούν σε χρησιμοποιώντας μια υπηρεσία Web, ένα αρχείο συστήματος, XML , ή οποιαδήποτε άλλη αριθμός των συστημάτων δεν θα επηρεάσει τον κώδικα πάνω από αυτό.

Διαμόρφωση θέσεων εργασίας

Η επόμενη πτυχή που εξετάζει είναι το μέγεθος εργασίας και τη διαμόρφωση. Παίζοντας με τη διαμόρφωση δουλειά μπορούμε να επιτευχθεί η άριστη ισορροπία μεταξύ της ταχύτητας, η αναπαραγωγή της διαδικασίας και την αξιοπιστία. Πάρτε ένα σενάρια ΟΦΑ ζευγάρι:

  1. Θέσεις εργασίας λαμβάνουν 1 ημέρα κάθε για να τρέξει: Αυτό σημαίνει ότι οι εργαζόμενοι σας χρειάζονται 15 μέρες για την επεξεργασία κάθε εργασία (θυμηθείτε το 10% της ισχύος για 2/3rds του χρόνου). Αυτό δεν είναι σαφώς μια σοφή διάταξη, διαστάσεις η δουλειά σας είναι πάρα πολύ μεγάλη! Θα χρειαζόταν τουλάχιστον το διπλάσιο χρόνο για να πάρετε μια επεξεργασία θέσεων εργασίας θα πρέπει η αρχική εργαζόμενος πάει AWOL (χρόνος για να πάρει ότι δεν έχει επιστρέψει αποτέλεσμα συν ώρα επανεπεξεργασίας). Σε έναν ιδανικό θα είχατε τουλάχιστον μια πλήρους απασχόλησης εργασία εύκολα να καθαριστεί από το τέλος κάθε μακρά περίοδο αδράνειας, με αυτόν τον τρόπο κρατάτε τις θέσεις εργασίας που περνά πάνω και στη χειρότερη περίπτωση μια θέση εργασίας θα διαρκέσει δύο ημέρες για να διαδικασία αυτή θα πρέπει το πρώτο χάνονται.
  2. Θέσεις εργασίας λαμβάνουν 1 λεπτό για να τρέξει: Αυτό σημαίνει ότι οι εργαζόμενοι σας πάρει περίπου 15 λεπτά για να τρέξει κάθε εργασία. Ενώ αυτό μπορεί αρχικά να φαίνεται ιδανική, κερδίζετε επιπλέον επεξεργασία εργασία κατά τη διάρκεια του γεύματος, τα διαλείμματα για καφέ, συναντήσεις, κ.λπ. αυτό το σενάριο βάζει την πίεση σε άλλες περιοχές του συστήματός σας και να εισάγει τα δικά της προβλήματα. Για παράδειγμα, πρώτον setup / επεξεργασία αναλογία του χρόνου σας πρόκειται να πάει δεξιά προς τα κάτω, ως εκ τούτου χάνει την αποτελεσματικότητα του συστήματος. Το δίκτυό σας θα είναι συνεχώς ροής πληροφοριών θέσεων εργασίας στις διάφορες εργαζομένων απογοητευτικό το προσωπικό που είναι dong την ημέρα τους με τη μέρα δουλειά. Είστε, επίσης, πρόκειται να ασκήσει μεγαλύτερη πίεση στον server επεξεργασία εργασία σας δεδομένου ότι πρέπει να πιάτο έξω πάρα πολλά μικρά κομμάτια του έργου σε τακτική βάση. Τέλος, σε αυτή την κατάσταση αν ο διακομιστής τη δουλειά σας πηγαίνει κάτω θα πάμε να δημιουργήσουμε ένα τεράστιο κούτσουρο πλάτη της μη ολοκλήρωσης των εργασιών ενώ μεγαλύτερες θέσεις εργασίας θα μπορούσε να της συνεχούς επεξεργασίας μακάρια γνωρίζουν ότι ο διακομιστής η εργασία που αντιμετωπίζουν δυσκολίες.

Στην πραγματικότητα δεν θα υπάρξει κανένας ιδανική ρύθμιση για την εγκατάσταση του δικτύου σας, πολλά εξαρτώνται από τους διαθέσιμους πόρους, τα είδη των θέσεων εργασίας, τις απαιτήσεις του χρόνου εργασίας ανάκαμψη, την ικανότητα του δικτύου, και ούτω καθεξής. Ωστόσο, ορισμένες κατευθυντήριες γραμμές θα είναι:

  • Μέγεθος θέσεις εργασίας, έτσι ώστε κάθε εργαζόμενος μπορεί να περάσει τουλάχιστον 3-4 θέσεις εργασίας σε μια περίοδο 15 ωρών (το μεγαλύτερο πιθανό χρονικό διάστημα αδράνειας)
  • Παίξτε με το μέγεθος της εργασίας, έτσι ώστε του χρόνου εγκατάστασης γίνεται αρκετά ασήμαντη σε σύγκριση με το χρόνο επεξεργασίας (λαμβάνοντας υπόψη το ανωτέρω σημείο).
  • Εάν μια εργασία δεν ολοκληρωθεί στο διπλάσιο από το ποσό του χρόνου (ίσως και λιγότερο) το περιμένετε να ολοκληρωθεί αυτό υποθέσουμε ότι πάει AWOL της και να αρχίσει την επεξεργασία με ένα άλλο εργαζόμενο. Αυτό σημαίνει ότι ίσως χρειαστεί να περιμένουν μέχρι και τρεις φορές την κανονική διάρκεια μιας εργασίας για την ολοκλήρωση (ίσως περισσότερο, αν η επόμενη δουλειά αποτυγχάνει). Μπορεί να θέλετε να μειώσει αυτή τη φορά, αλλά πρέπει να προσέξουμε να μην το μειωθούν πάρα πολύ, καθώς μπορεί να αρχίσει η επικάλυψη εργασιών επεξεργασίας σε τακτική βάση.
  • Θέσεις εργασίας θα πρέπει να είναι ανεξάρτητο από έξω απαιτήσεις όσο το δυνατόν περισσότερο. Ο διακομιστής δουλειά, για παράδειγμα, θα πρέπει να έρθει σε επαφή στην αρχή και στο τέλος της κάθε εργασίας.
  • Να μην κορεστεί το δίκτυό σας, αυτό θα έχει δύο αρνητικά αποτελέσματα, τη διάρκεια της ημέρας το προσωπικό σας θα βρει τη χρήση του δικτύου απογοητευτικό και τα προβλήματα μπορεί να προκύψει σε σχέση με τις συνδέσεις ο χρόνος για ένα πρόβλημα που θα πάρει μόνο χειρότερα καθώς κλίμακας δίκτυο σας.
  • Εξασφάλιση θέσεων εργασίας μπορεί να τρέξει στους εργαζομένους σας. Αν οι εργασίες γίνονται πολύ απαιτητικές σε μνήμη ή χώρο στο δίσκο εντατικές εργασίες θα αρχίσουν να ματαιωθεί και το μόνο πράγμα που θα παρατηρήσετε είναι μια σταγόνα στον αριθμό των θέσεων εργασίας σε επεξεργασία χωρίς πραγματικό λόγο.

Την υποβολή των αποτελεσμάτων της εργασίας

Κατά την υποβολή των αποτελεσμάτων μιας εργασίας, είναι σημαντικό να ελέγξετε ότι τα αποτελέσματα δεν έχουν υποβληθεί από ένα άλλο εργαζόμενο, ειδικά εάν η τρέχουσα εργαζόμενος ήταν ανενεργό για κάποιο χρονικό διάστημα.

Όταν τα αποτελέσματα υποβάλλονται εξασφαλίζει ότι ο αριθμός των αποτελεσμάτων των αγώνων ο αριθμός των εγγραφών στο πλαίσιο της εργασίας.

Όπως αναφέρθηκε προηγουμένως, και δεν μπορεί να είναι πάνω τόνισε, να χτίσουν την ανοχή σε βλάβες στην ανάκτηση εργασιών και τα αποτελέσματα υποβολή. Οι εργαζόμενοι μπορούν (και πιθανότατα θα) πάει σε κατάσταση αναστολής στο πιο άβολο φορές και αυτό πρέπει να ικανοποιηθούν. Επίσης, για άλλη μια φορά υδροληψίες μακριά αποτελέσματα υποβολή σας θα βοηθήσει να ληφθεί μέριμνα για μελλοντικές αλλαγές στη δουλειά σας σύστημα ελέγχου πολύ πιο εύκολο να αντιμετωπίσουμε.

Περίληψη

Σε αυτό το section έχουμε δει τι ένα διακομιστή ελέγχου της εργασίας που χρειάζεται να κάνει και πώς να πάρει ένα πολύ βασικό σύστημα που έχει συσταθεί. Συζητήσαμε πώς να ανακτήσει μια εργασία από το σύστημα ελέγχου και τον καλύτερο τρόπο για να διαμορφώσετε θέσεις εργασίας για να αξιοποιήσετε στο έπακρο μας δίκτυο του γραφείου σας. Για να τελειώσει, μια παράγραφο ή δύο για την υποβολή των αποτελεσμάτων πίσω στο διακομιστή ελέγχου δουλειά παρουσιάστηκε.

  • Ένας διακομιστής ελέγχου της εργασίας διαχειρίζεται θέσεις εργασίας και διασφαλίζει ότι έχουν ολοκληρωθεί όλες οι μονάδες εργασίας
  • Με υδροληψίες δουλειά σας επιλογή / υποβολή των αποτελεσμάτων μπορούμε να αλλάξουμε την τεχνολογία του διακομιστή ελέγχου χωρίς πολλά προβλήματα
  • Διαμόρφωση θέσεων εργασίας σας για να βεβαιωθείτε ότι είναι τρέχουν γρήγορα και αποτελεσματικά χωρίς να θέτουν πάρα πολύ πίεση επί των υποδομών του δικτύου σας, και χωρίς επικάλυψη με την επεξεργασία εργασιών σε τακτική βάση.
  • Βεβαιωθείτε ότι έχετε χτίσει ανοχή σε σφάλματα και checking λάθος σε ρουτίνες σας, οι εργαζόμενοι μπορούν να αναστείλουν και να επαναλαμβάνεται και το πιο ενοχλητικό φορές. Θυμηθείτε να ελέγξετε αν τα αποτελέσματα έχουν ήδη υποβληθεί από άλλον εργαζόμενο.

Την επόμενη φορά

Στο μέρος 3 θα δημιουργήσουμε εικονική μηχανή επεξεργασίας μας και να εγκαταστήσετε τα Windows μηχανήματα μας για να τεθεί σε κατάσταση αδράνειας απασχολουμένων.

Γραφείο Computing Grid χρησιμοποιώντας εικονικά περιβάλλοντα - Μέρος 5

Με , Παρασκευή 4 του Δεκέμβρη 2009 23:03

Εισαγωγή

I work in a company where we run many batch jobs processing millions of records of data each day and I've been thinking recently about all the machines that sit around each and every day doing nothing for several hours. Wouldn't it be good if we could use those machines to bolster the processing power of our systems? In this set of articles I'm going to look at the potential benefits of employing an office grid using virtualised environments.

In Part 4 we looked at using tools to ensure that we're running the latest version of the code and data sources so that obtained results are always up-to-date with the latest business information and logic.

Pre-Deployment

Before deploying your grid system if there's one thing you do and one thing alone it's benchmark your current system ! No matter what you tell colleagues about how much extra work your system is going to do unless you have numbers to back this up your guarantees are nothing. Έτσι,

  • how many records can you process currently? Per Day? Per Hour?
  • How long does it typically take to turn around a job?
  • How much more capacity do you have?

There's also additional questions:

  • If your processing server (or one of your processing servers) goes down how will this affect your capabilities, will you be crippled?
  • What advantages do you hope/expect to get from a grid system?
  • Are your office machines capable of running the jobs?
  • Are your (or can you jobs be converted) to wrok in this style of running?

The last major point is to take your time on any major change like this. Update your processing code to work using the new methodology, benchmark again. Possibly set up your processing server to run a virtual machine, after all your processing server will just be another worker (just a very powerful one relatively). Allow the new process to settle.

Deployment

My suggestion would be to pop into the office one weekend perform all the installations and setup. Do this just before a fortnight's holiday and leave so other poor chap to deal with the consequences… maybe not…

Deployment for a system like this needs to be slow. Despite it being relatively simple to set up this system will affect your entire office infrastructure (well the digital one). Firstly, roll out to a couple of machines at a time, monitor network traffic, how the worker hosts perform on a day-to-day basis. You may need to alter your job configuration in response to your findings.

Once the system has settled with a few machines (lets say 10% of all office machines, ie 5) keep monitoring network traffic and host machine performance. Next benchmark again, you should now be processing 33% more jobs than your first benchmarks. Check this is so, or that you're at least in this ballpark. If not, investigate what is going on before moving on. Repeat this cycle until you happily have all office machines running without killing individual machine performance or grinding your network to a standstill.

At all times keep benchmarking, even after all deployments are made. Check how new code updates affect speed of your system, check all workers are reporting in and processing jobs. Slowly (very slowly) increment your job configuration to get the best from your workers and network.

Σταματήστε!

Τι γίνεται αν θέλετε να σταματήσετε τους εργαζομένους σας από το τρέξιμο σε κάποια χρονική στιγμή; Είναι όλα εκεί έξω, το τρέξιμο, την αναγέννηση, και προσπαθεί καλύτερο εαυτό τους για την επεξεργασία δεδομένων όπως πεινασμένα έντομα. Η απάντηση μπορεί να φαίνεται προφανές, αλλά αξίζει να του προσθέτοντας ακριβώς σε περίπτωση που αγνοείται του. Απλά επεξεργαστείτε σενάριο επεξεργασίας σας με μια έξοδο (0) ή να πεθάνουν () ή σε κάποια άλλη δήλωση για να σκοτώσει τη δουλειά την επεξεργασία σας. Ένας σημαντικός λόγος που πάντα προσπαθούμε να ενημερώσετε με την τελευταία γραφή επεξεργασίας πριν από κάθε διαδρομή!

Σύστημα Επίδειξη

Για να γράψω αυτό το σύνολο των σύντομων άρθρων Δημιούργησα ένα πολύ μικρό πλέγμα για να αποδείξει τις τεχνολογίες και μεθοδολογίες. Διάβασα πολλά tutorials άρθρα, και διάφορα εργαλεία που χρησιμοποιούνται για την εγκατάσταση και παρακολούθηση τι συνέβαινε. Με κανένα τρόπο δεν έχω βγει και κορεσμένα σύνολο γραφείου με την κυκλοφορία και ούτε είχα πρόσβαση σε ένα κανονικό PC μέλη του προσωπικού, για να δούμε πώς απόδοση φιλοξενεί επηρεάστηκε.

Σύστημα επίδειξης μου ήταν πολύ ταπεινός πράγματι. Θα χρησιμοποιηθεί για κανονική επιφάνεια εργασίας του υπολογιστή μου που έχει συσταθεί ως διακομιστής ελέγχου της εργασίας. Σε αυτό το είχα εγκαταστήσει mySQL διακομιστή εγκατασταθεί συσταθεί ως master στην αναπαραγωγή, PHP , Α και SVN συνδέονται μεταξύ τους μέσω apache (για πρόσβαση μέσω εργαζόμενος VM).

Δημιούργησα στη συνέχεια μια μηχανή εργαζόμενος CentOS σε VirtualBox σε 6 ετών laptop Windows XP. I setup προγραμματισμένες εργασίες, όπως καθορίζεται μετά την αντιγραφή του VM πάνω στο μηχάνημα και αφήστε το να πάει.

Η εικονική μηχανή συστάθηκε με την PHP, ανατροπής, και mySQL. Έλεγξα έξω ένα υποκατάστημα που ονομάζεται «εργαζόμενος» από τη δουλειά τους διακομιστές έλεγχό μου αποθετήριο και φρόντισε να μπορεί να ενημερώνεται χρησιμοποιώντας «svn update '. Στη συνέχεια μπορώ να ρυθμίσω mySQL ως σκλάβος και να ελέγχεται ότι τα δεδομένα ήταν αναπαράγει από mySQL στο διακομιστή ελέγχου της εργασίας κάτω στο VM εργαζόμενο. Μετά από όλα αυτά μπορώ να ρυθμίσω το σενάριο Bash και την περιοδική εργασία.

Σενάριο επεξεργασία μου βασικά πήγε προς την κατεύθυνση αυτής της (πολύ απλά πράγματα):

  • Διαβάστε στο πεδίο όνομα
  • Συνυπολογίζεται ο αριθμός των παρόμοιων ονομάτων σε έναν πίνακα από το αρχείο προέλευσης δεδομένων που πραγματοποιήθηκε στο VM
  • Συνυπολογίζεται ο αριθμός των ονομάτων, όπως παραπάνω, αλλά διάσπαση το όνομα με κενά (π.χ. όνομα, μεσαίο, επώνυμο)
  • Η επαναλαμβανόμενη αυτή τη διαδικασία 1.000 φορές

Κάθε δουλειά πήρε περίπου 20 λεπτά για να τρέξει. At one point I opened several copies of the worker VM on the windows laptop and watched the jobs be checked off by each of the worker IP addresses. At this point I also confirmed that replication automatically restarted.

Leaving the laptop to idle resulted in a worker starting to process jobs from the job control server. When resuming laptop usage there was a delay of about 30-60 seconds, this is a fair amount of time and staff would need to be made aware that their machine may pause for a short while when returning to the machine. Newer machines may not have a pause of this long. The benefit of the amount of processing performed by these machines during idle periods would more that outweigh staff members having to wait a short period (say 1 minute) on arriving at their machines of a morning (I frequently wait longer that this for a Windows Defender update to take place) provided they were made aware of this (useful time to grab a morning coffee!).

Overall I feel confident that I have demonstrated the technologies that could be used to create such a system. I have shown that such a system does work on a (very) small scale and with some more experimenting could be scaled up utilise the resources of an office's machines. If I don't get to the point of doing this I would be very interested to know/see when someone else does.

Conclusions / Evaluation

Το επόμενο προφανές βήμα θα ήταν να πάρετε πραγματικά ένα πραγματικό παράδειγμα κόσμο και να αρχίσει να αναπτύξει ένα σύστημα όπως αυτό μέσα σε ένα περιβάλλον γραφείου και να δούμε τι θα συμβεί. Ζητώντας μια επιχείρηση να δεσμευτούν σε αυτό χωρίς ίχνος απίστευτα εταιρεία να αποδείξει την τεχνολογία και την αποτελεσματικότητα μπορεί να είναι λίγο δύσκολο. Πλέγμα / Κατανεμημένοι υπολογισμοί είναι πολύ δημοφιλές είναι κάποιοι κύκλοι και ορισμένες μεγάλες εφαρμογές (BIONC, SETI @ Home, Folding @ Home, κλπ). Δεν είχα, όμως, να βρείτε και σε μικρότερη κλίμακα και απλό σύστημα, όπως αυτό στις αναζητήσεις μου ότι θα μπορούσε να ξεδιπλώσει μέσα σε ένα περιβάλλον γραφείου.

Δημιούργησα ένα βασικά ελεύθερο σύστημα που χρησιμοποιεί ως επί το πλείστον το λογισμικό ανοιχτού κώδικα και εργαλεία που είναι διαθέσιμα σχεδόν σε κάθε γραφείο. Οι τεχνολογίες που ήταν ουσιαστικά έδειξε και δείχνει να εκτελέσει και να λειτουργούν όπως αναμένεται. Ας ελπίσουμε ότι έχω αποδείξει ότι δεν με πολύ δουλειά και με μια πολύ απλή εγκατάσταση μπορείτε να αναπτύξετε ένα δίκτυο γραφείων υπολογιστικό σύστημα που είναι ισχυρό, φθηνή, Α και κλιμακούμενη όλα την ίδια στιγμή.

Μόλις ένα σύστημα είναι έτοιμο και λειτουργεί εκεί είναι σχεδόν κανένα τέλος στο ποσό της προσαρμογής και βελτιώσεις που μπορείτε να κάνετε. Για παράδειγμα στατιστικές / συγκριτική αξιολόγηση μπορεί εύκολα να προστεθεί δείχνει την αξία ενός τέτοιου συστήματος κάθε μέρα. Νέα μηχανήματα μπορούν να προστεθούν γρήγορα και εύκολα, όπως και κατά την άφιξή τους με τις αναβαθμίσεις στο υπάρχον υλικό ενισχύοντας την επεξεργαστική ισχύ σας.

Ελπίζω ότι έχετε απολαύσει την ανάγνωση αυτή τη σειρά των άρθρων και του δώσει τροφή για σκέψη σε λειτουργία ένα σύστημα πλέγματος γραφείο. Η λύση που παρουσιάζεται εδώ δεν θα είναι απαραίτητα το έργο σε όλες τις καταστάσεις, αλλά θα πρέπει να προσαρμόζονται για να σας επιτρέψει να πάρει την επεξεργασία δεδομένων σας γίνει χρησιμοποιώντας τη δική σας λύση.

Μη διστάσετε να μου στείλετε οποιαδήποτε σχόλια, διορθώσεις, ή βελτιώσεις και θα κάνω ότι καλύτερο μπορώ για να κρατήσει αυτό το άρθρο ενημερωθεί ώστε να ταιριάζουν.













Θέμα Πανόραμα από Themocracy

10 επισκέπτες online τώρα
10 guests, 0 bots, 0 members
Max visitors today: 16 at 02:02 am UTC
Αυτό το μήνα: 16 στις 09/01/2011 02:02 π.μ. UTC
Αυτό το έτος: 130 στις 28-03-2011 22:40 UTC
Όλα ώρα: 130 στις 28-03-2011 22:40 UTC