مكتب الحوسبة الشبكية باستخدام بيئات الظاهري -- الجزء 2

من جانب ستيفن لويد Watkin ، 4 ديسمبر 2009 11:23 الجمعة

مقدمة

أنا أعمل في شركة حيث نقوم بتشغيل العديد من وظائف دفعة معالجة الملايين من السجلات من البيانات كل يوم ، ولقد تم التفكير مؤخرا عن كل الآلات التي الجلوس كل يوم تفعل شيئا لعدة ساعات. لن يكون من الجيد لو تمكنا من استخدام هذه الآلات لتعزيز قوة المعالجة من أنظمتنا؟ في هذه المجموعة من المقالات انا ذاهب للنظر في الفوائد المحتملة لاستخدام مكتب الشبكة باستخدام بيئات virtualised.

في الجزء 1 أعطى لمحة عامة عن النظام والتكنولوجيات سوف أكون به كذلك كما نوقشت بعض الأسباب المحتملة لماذا كنت ترغب في إنشاء شبكة المكتب.

وظيفة التحكم

إذا كنت ستكون تشغيل وظائف ثم أنت ستحتاج الى بعض الطرق لإدارتها. نظام التحكم الخاصة بك وظيفة (وظيفة على الخادم الخاص بك) يجب أن يكون حقا مدروسة حتى قبل محاولة لتشغيل شبكة المكاتب. أولا وهكذا ، ما هي المهام عن وظيفة نظام مراقبة :

  • تسليم وظائف بناء على طلب من العمال
  • اقول ما هو نوع من العمال لتشغيل وظائف
  • وظائف المسار
  • ضمان وظائف ليست سوى تشغيل مرة واحدة
  • توفير بيانات مهمة للعمال ، أو على الأقل نقول لهم مكان الحصول عليه

يحتاج النظام أيضا أن يكون للتوسيع ، وهو الحل الذي يعمل الآن في قضية واحدة ويجوز تمديدها لتشغيل عدة أنواع من الوظائف والأعمال يرى قيمة في حل الشبكة. على سبيل المثال ، قد كسب وظائف الأولويات ، وربما أكثر من نوع واحد وظيفة موجودة (أي رمز قواعد عدة) ، في نهاية المطاف حتى يجوز لك تشغيل عدة آلات عامل المختلفة التي هي الأمثل لكل نوع من أنواع العمل (على الرغم من أن لا نبتعد عن 'عامل عام 'فكرة). حاول دائما أن نفكر في المستقبل عندما نظم النامية ، ورؤية على المدى القصير يمكن ان يؤدي الى الاحباط على المدى الطويل وزيادة الوقت اللازم لتطوير.

وظيفة الخادم

نحن ذاهبون الى مكان ما في حاجة للسيطرة على وظائفنا من هذا ينبغي أن يكون النظام الوحيد في الشبكة الخاصة بك التي لديها مواقع الموارد الثابتة ، ويمكن أن عنوان بروتوكول الإنترنت ، اسم المضيف ، عنوان (باستخدام نظام أسماء النطاقات الداخلية) ، الخ وذلك لأن العمال بحاجة إلى معرفة أن ننظر فيها عن فرص العمل ، والعمال بحاجة إلى البحث عن نظام مراقبة وظيفة (وليس نظام لمراقبة وظيفة البحث عن العمال).

ملقم المهام نفسها لا يملك في الواقع مهمة معقدة (في أي حال النظام الأساسي) ، فإنه يحتاج إلى تخزين قائمة وظائف ، وظائف من جهة ، وتلقي النتائج ، ومن ثم تخزينها واسترجاعها في وقت لاحق. كيف يتم تعريف هذه الأجزاء ('تسليم وظائف' مثل) يمكن أساسية جدا. وفي وقت لاحق يمكننا توسيع النظام ليشمل واجهة الإدارة لإضافة ، تحرير ، حذف أو تعليق وظائف ولكن هذا هو وراء هذه العملية.

وليس هناك سبب من الأسباب ثم أن الخادم الخاص بك وظيفة لا يمكن أن يكون الجهاز الظاهري على التوالي في إطار خادم تجهيز الرئيسية التي لا تستنزف موارد كثيرة جدا من ذلك. ملقم المهام ولكن لا حاجة توافر عالية ، واذا انخفض في مساء الجمعة وأنت تسير في مطلع الاسبوع لتفقد كامل التجهيز ، وتقدير التكاليف المحتملة كنت بضعة أسابيع بقيمة الوقت اللازم للتجهيز (بالمقارنة مع خادم معالجة الرئيسي وحده) . قد ترغب في النظر في وضع خادم عملك على وجود بيئة متوازنة للتحميل توفر عالية.

الإعداد الأساسية

الأساسية للإعداد لدينا وظيفة الخادم وتتكون من ما كنت انادي واحد من الخوادم عرج بي (أي لى جوز ، ySql م ، ف حصان. وسوف يعمل على رمز العمال the العمل فعلا ما الوظائف التي يمكن تشغيلها من خلال التعامل مع قواعد البيانات مع عمل نظام المراقبة. وفي وقت لاحق نتمكن من إنشاء خدمة ويب وجهة فعلا وظائف بدلا من العمال للقيام بهذا العمل الشاق أنفسهم ، لكنه الآن سنواصل استخدام مبدأ قبلة (يبقيه بسيط ، غبي!).

لذا ، ويتيح إنشاء ثلاثة ماي الجداول للتعامل مع وظائف. وستكون هذه الوظائف `` ، `jobRecords` و `` jobResults.

وظائف الجدول هنا أنا باستخدام مزود الأصدقاء قليلا بديلا رائعا ل بريس فقط لأن من الأسهل لتثبيت على centOS (انظر للآخرين : 10 البدائل الكبرى بريس )

هذا الجدول يتكون من 5 حقول بسيطة ،

  • اسم المستخدم : تحديد وظيفة فقط
  • الاسم : يمكن أن يكون إشارة العميل ، أو أي عدد من المحددات الأخرى
  • الحالة : عليك أن تعرف عندما تكون الوظيفة في ، على سبيل المثال
    • 0 : ليس فقط
    • 1 : التقطت
    • 2 : اكتمال
  • started_by : المتواجدون فقط القيام بهذه المهمة؟ ليس هذا المطلوب تماما ، بل هي لطيفة. كنت تشير الى تتبع العمال من خلال معالجة الملكية الفكرية على الشبكة
  • started_at : متى العامل بدء المهمة؟ من خلال تتبع وظائف التي لم تكتمل في غضون مبلغ العاشر من الوقت ونحن نعلم أننا بحاجة لالتقاط العمل مرة أخرى والبدء في المعالجة من قبل عامل آخر. يمكن إيقاف معالجة العمال / الذهاب حاليا لأي عدد من الأسباب ، انقطاع الكهرباء ، وتحطم ، وشبكة الخسارة ، إلخ.

فمن السهل كيف يمكن تمديد هذا الجدول مع حقول إضافية قليلة للسماح للإحصاءات تتبع ، عمود وقت الانتهاء لمعرفة كم من الوقت استغرق العمل ، عداد لنرى كيف العديد من العمال التقطت العمل (ومن الواضح أن هذا يحتاج إلى تميل إلى 1) ، وأولوية العمل ، ويمكن أن تطول القائمة وتطول. في أكثر السيناريوهات مهمة معقدة وسيكون من الممكن تحديد مقدار الذاكرة العامل سيكون بحاجة الى الوصول الى (وبالتالي فقط استخدام العمال مناسبة) ، أو حتى أي نوع من عامل ستكون مطلوبة.

يتيح إضافة وظائف قليلة سبيل المثال :

سبيل المثال وظائف

الجدول التالي هو مرة أخرى بسيطة للغاية لفهم ، هذه هي مهمتنا السجلات. وهي مرتبطة الجدول الرئيسي وظائف حسب عمود `` jobs_id. وتشكل من هذا الجدول يعتمد الى حد كبير على البيانات التي تحتاج إلى تزويد العاملين لديك ، ويتيح تقديم مثال بسيط للغاية حيث لدينا أربعة أعمدة :

  • اسم المستخدم : رقم السجل
  • الاسم : اسم الشخص
  • العنوان : عنوان الشخص
  • jobs_id : معرف المهمة التي يرتبط هذا السجل

الجدول الثالث والأخير يتكون من جدول النتائج ، فقد الى حد كبير نفس يشكلون كما في الجدول سجلاتنا ، ومع إضافة بعض الأعمدة قد يكون جزءا من الجدول السجلات :

  • job_record_id : ارتباط النتيجة إلى طاولة العمل
  • النتيجة : البيانات نتيجة

... وهذا هو كل ما تحتاجه للسيطرة على وظيفة! (ولو على مستوى أساسي جدا) في حالتي أنا أشرت إلى جدول آخر حيث كان يقع البيانات الخاصة بي إلى العملية ، ولكن هذا يمكن بسهولة مثلما كان الملف ، المعلمات لتشغيل رمز محاكاة ، سمها ما شئت.

اختيار وظيفة

وكما ذكر سابقا ، فإن العمال لا إدارتنا العمل بالنسبة لنا في الوقت الراهن ، لذلك كل ما عليك القيام به حقا هو العثور على وظيفة التي تحتاج معالجة والحصول على المعلومات. كيف نفعل ذلك؟ اختيار جيد لدينا معايير اختيار الوظائف والبحث عن وظائف ، في مزود فعلت ما يلي :

  1. اتخاذ أي الوظائف التي ليست كاملة ولكن وضعت من عاملنا وإعادة تعيين لهم (__ME__ بديلا مع معرف ، أسهل سيكون عنوان بروتوكول الإنترنت) :
      تحديث وظائف `` `وضع مجموعة` = 0 أين `` وضع = 1 `و` started_by = __ME__ ؛ 
  2. باستخدام معايير الاختيار لدينا وظيفة ، حدد وظيفة ونقول للنظام مراقبة أن هذا العامل هو التعامل معها :
      تحديث وظائف `` `وضع مجموعة` = 1 ، `` started_by = __ME__ ، `` = started_at الآن () أين `` حالة = 0 أو
     (`` وضع = 1 `و` started_at> DATE_SUB (الآن () ، الفاصل العاشر ساعة)) ترتيب حسب معرف `` الرابطة ؛ 

    عن طريق الاستيلاء الوظائف التي لم يعودوا النتائج في العاشر من كمية الوقت علينا أن نضمن أن يتم تشغيل جميع الوظائف في حالة وجود عامل أو تحطمها بدون اذن.

  3. المقبل الاستيلاء على تفاصيل وظائف تليها السجلات نفسها :
      حدد * من وظائف `` `أين started_by` = __ME__ حاجز ال 1 ؛
     حدد * من أين `` job_records `` معرف = __JOBID__ ؛ 

عند الانتهاء من العمل ونحن لدينا نتيجة إدراج السجلات وعلامة مهمة على النحو الكامل. كما تذكر وظائف يمكن تعليق / استئناف في أي وقت تسمح لبعض الشدة في السيناريو الخاص بك. قد يكون من أن المهمة علقت في منتصف الطريق من خلال تحديث نظام المراقبة وظيفة ، والتحقق من ذلك عدد السجلات في وظيفة وعدد من حفظ النتائج مرة أخرى إلى نظام مراقبة عمل سيكون خطوة حكيمة.

وبالإضافة إلى ذلك ، ومع أن هذا يوضح كيفية اختيار وظائف يمكن وتمكنت من الاستعلام الإطار ، مزود يجب أن يكون حقا خلاصات مهمة التحكم الخاصة بك بحيث إذا قررت التحول إلى استخدام خدمة ويب ، ومقرها نظام الملفات ، و إكس إم إل ، أو أي دولة أخرى نظم عدد من انها لن تؤثر على رمز فوقه.

وظيفة تكوين

الجانب المقبل للنظر هو حجم العمل والتكوين. من خلال اللعب مع التكوين وظيفة يمكننا تحقيق توازن ممتاز بين السرعة ، وتكرار العملية ، والموثوقية. يستغرق بضعة حساب الأموال التشغيلية سيناريوهات :

  1. وظائف 1 تتخذ كل يوم لتشغيل : وهذا يعني أن العاملين لديك حاجة 15 يوما لعملية لكل وظيفة (تذكر 10 ٪ من الطاقة ل2/3rds من الوقت). ومن الواضح أن هذا ليس تكوينا الحكمة ، حجم عملك هو الطريق كبيرة جدا! وسوف يستغرق الامر ما لا يقل عن ضعف الوقت لتحصل على وظيفة عامل ينبغي معالجتها الأولية الذهاب بدون اذن (الوقت لالتقاط أنه لم يعد نتيجة لذلك بالإضافة إلى وقت إعادة المعالجة). في مثالي كنت على الأقل وظيفة واحدة مسح كامل بسهولة بحلول نهاية فترة طويلة من الخمول لكل منهما ، وبهذه الطريقة يمكنك الحفاظ على وظائف أكثر والموقوتة في أسوأ الأحوال على وظيفة سوف يستغرق يومين لعملية يجب أن يكون أول الذهاب في عداد المفقودين.
  2. وظائف اتخاذ 1 دقيقة لتشغيل : وهذا يعني أن العاملين لديك يستغرق حوالي 15 دقيقة لتشغيل كل وظيفة. ومع أن هذا قد يبدو في البداية مثالية ، يمكنك الحصول معالجة إضافية العمل خلال وقت الغداء ، وفترات الاستراحة ، واجتماعات ، الخ هذا السيناريو يضع ضغطا على مجالات أخرى من النظام الخاص بك ويقدم مشاكلها الخاصة. على سبيل المثال ، أولا الإعداد وقت المعالجة / النسبة ستنخفض الحق ، وخسرت بالتالي كفاءة النظام. شبكتك ستكون باستمرار تدفق المعلومات وظيفة للعمال مختلف الموظفين الذين محبطة دونغ يومهم في العمل اليوم. وأنت تسير أيضا لوضع المزيد من الضغط على عملك خادم تجهيز كما أن طبق بها الكثير والكثير من القطع الصغيرة من العمل على أساس منتظم. وأخيرا ، في هذه الحالة إذا كان الملقم العمل وتنخفض وأنت تسير لإنشاء سجل ضخم الخلفي من العمل غير المكتمل في حين أن أكبر فرص عمل يمكن أن استمرار معالجة يجهل بسعادة أن ملقم المهام والتي تواجه صعوبات.

في الواقع لن يكون هناك تكوين واحدة مثالية لإعداد الشبكة الخاصة بك ، فإن الكثير يعتمد على الموارد المتاحة ، وأنواع العمل ، ومتطلبات العمل الزمنية ، والقدرة على الشبكة ، وهكذا. ومع ذلك فإن بعض المبادئ التوجيهية على النحو التالي :

  • وظائف الحجم بحيث يمكن لكل عامل من خلال الحصول على ما لا يقل عن 3-4 وظائف في الفترة من 15 ساعة (فترة أطول من المرجح وقت الخمول)
  • لعب مع حجم فرص العمل حتى يصبح ضئيلا نسبيا مقارنة ذلك الوقت الإعداد لوقت المعالجة (وإذ تضع في اعتبارها نقطة أعلاه).
  • إذا كان العمل لا يتم إكمال في ضعف المبلغ من الوقت (ربما أقل) تتوقع أن تنجزه تفترض أن لها بدون اذن رحل وبدء معالجة مع عامل آخر. هذا يعني أنك قد تضطر إلى الانتظار لمدة تصل الى ثلاثة أضعاف المدة العادية للعمل لأنها لاستكمال (ربما لوقت أطول إذا فشل المهمة اللاحقة). قد تحتاج للحد من هذا الوقت ، ولكن يجب الحرص على عدم الحد منه كثيرا كما كنت قد تبدأ ازدواجية المهام معالجة على أساس منتظم.
  • وينبغي أن تكون مستقلة عن وظائف خارج المتطلبات قدر الإمكان. ملقم المهام ، على سبيل المثال ، ينبغي أن لا يكون الاتصال في بداية ونهاية كل وظيفة.
  • لا تشبع الشبكة ، وهذا سيكون له آثار سلبية اثنين ، وسوف موظفيك النهار البحث باستخدام شبكة محبط وربما واجهت مشاكل مع اتصالات مهلة المشكلة التي سوف تزداد سوءا كما كنت نطاق الشبكة الخاصة بك.
  • ويمكن التأكد من وظائف تعمل على العاملين لديك. إذا أصبح أيضا وظائف وظائف الذاكرة ومساحة القرص أو مكثفة مكثفة بداية اجهاض والشيء الوحيد ستلاحظ هو انخفاض في عدد فرص العمل مع أي معالجة السبب الحقيقي.

تقديم نتائج وظيفة

عند تقديم نتائج مهمة من المهم للتأكد من أن النتائج لم تكن المقدمة من عامل آخر ، خصوصا إذا كان العامل الحالي ظلت نائمة لبعض الوقت.

عندما يتم تقديم النتائج ضمان عدد من النتائج يطابق عدد السجلات في العمل.

وكما ذكر سابقا ، والتي لا يمكن المبالغة في التأكيد ، وبناء التسامح مع الخطأ في استرجاع وظيفة وتقديم النتائج. ويمكن للعمال (وعلى الأرجح سوف) الذهاب إلى مرحليا وضع غير مريح في معظم الأوقات ، وهذا يحتاج إلى أن يكون لبيت. أيضا مرة واحدة مرة أخرى بعيدا التلخيص الخاص تقديم النتائج ستساعد تلبية لإجراء تغييرات في المستقبل لنظام مراقبة عملك أسهل بكثير للتعامل معها.

موجز

في هذا section وقد اطلعنا على ما ملقم مراقبة مهمة يتعين عليها القيام به وكيفية الحصول على النظام الأساسي للغاية اقامة. ناقشنا كيفية استرداد وظيفة من نظام المراقبة وأفضل السبل لتكوين وظائف للحصول على أكثر من مكتبك لدينا نظام الشبكة. وحتى النهاية ، فقرة أو اثنين على تقديم النتائج إلى وظيفة الخادم التحكم قدم.

  • ملقم مراقبة عمل بإدارة وظائف ويضمن أن يتم الانتهاء من جميع وحدات العمل
  • من خلال الاستخلاص عملك حدد / نتائج تقديم يمكننا تغيير التكنولوجيا لملقم السيطرة دون الكثير من المشاكل
  • تكوين الخاص وظائف للتأكد من أنها تعمل بسرعة وكفاءة دون وضع الكثير من الضغوط على البنية التحتية للشبكة الخاصة بك ، ودون تكرار مهام معالجة على أساس منتظم.
  • التأكد من الخطأ والتسامح وبناء checking خطأ في الأعمال الروتينية الخاصة بك ، يمكن للعمال تعليق واستئناف ومريح أكثر من مرة. تذكر للتحقق مما إذا تم بالفعل النتائج المقدمة من عامل آخر.

المرة التالية

في الجزء 3 سنقوم خلق آلة افتراضية لدينا تجهيز وإعداد ويندوز لآلات ليصبح خاملا وقت العمال.

واحد ردا على "الحوسبة الشبكية باستخدام بيئات مكتب الظاهري -- الجزء 2"

  1. هيدروليزي يقول :

    هيا! مفهوم جيد ، ولكن هذا قد لا حقا بهذه المهمة؟

ترك الرد













بانوراما الموضوع من قبل فرش سيارات

5 عدد زوار الموقع الآن
3 الضيوف ، والسير 2 ، 0 الأعضاء
ماكس الزوار اليوم : 8 في الساعة 12:23 بالتوقيت العالمي
هذا الشهر : 26 في 2011/7/5 12:35 بالتوقيت العالمي
هذا العام : 130 في 28-03-2011 10:40 مساء بالتوقيت العالمي
كل الوقت : 130 في 28-03-2011 10:40 مساء بالتوقيت العالمي