رده : محاسبات گرید

دفتر محاسبات شبکه با استفاده از محیط های مجازی -- قسمت 4

Steven ، جمعه ، 4 دسامبر 2009 11:59 PM

معرفی

من در یک شرکت که در آن ما برای اجرای بسیاری از مشاغل دسته پردازش میلیون ها پرونده داده ها در هر روز و من شده فکر کردن به تازگی در مورد تمام ماشینهایی که در اطراف هر یک می نشینند و هر روز انجام هیچ چیزی برای چند ساعت کار می کنند. آیا آن را نمی شود خوب اگر ما می تواند آن ماشین را برای تقویت قدرت پردازش سیستم های ما استفاده کنید؟ در این مجموعه ای از مقالات من قصد دارم در مزایای بالقوه به کارگیری دفتر شبکه با استفاده از محیط های مجازی.

ما در بخش 3 ایجاد ماشین پردازش مجازی و راه اندازی ماشین های ویندوز برای تبدیل شدن به زمان کارگران بیکار.

اجرای آخرین کد

به ناچار پس از ایجاد کارگران منطق کسب و کار شما تغییر خواهد کرد ، اشکالات یافت می شود ، سریعتر کارآمد تر کد تولید خواهد شد در نتیجه خروج از کارگران خود را شنبه در سراسر پردازش داده ها با استفاده از کد های قدیمی بد بو است. پس چگونه به شما اطمینان می دهیم که ما همیشه با استفاده از آخرین و بزرگ ترین نسخه از اسکریپت های پردازش ما؟

چند بسیار آسان راه های ساده ای ما می تواند این کار را انجام دهند وجود ندارد ، ترفند ، با این حال ، این است که به کاهش قدرت پردازش و ترافیک شبکه را در دستیابی به این. بیایید شروع با ساده ترین راه حل و بهبود آن را به آرامی بیش از یک زن و شوهر از تکرار.

روش اول خواهد بود که به سادگی اتصال به سرور کار ما شاهد (از طریق سامبا ، FTP ، یا مشابه) و خراب کردن آخرین نسخه از کد. نه چندان کارآمد ، اما آن را به کار انجام دهید. بیایید بهبود در که تا حدودی ، چگونه در مورد ایجاد و استفاده از اسکریپت rsync که هر زمانی که به جای؟ متناوبا آنچه در مورد قرار دادن اسکریپت پردازش را به براندازی چک کردن کد در ابتدا و پس از آن فقط به روز رسانی کد ما در هر اجرا (SVN تکمیلی)؟

در پایان ما می تواند در نهایت با یک اسکریپت bash (نامیده می شود توسط cron را هر 10 دقیقه) که به عنوان ساده به عنوان این به نظر می رسد :

  #! / بن / SH
 اگر PS تبر | یا grep - V یا grep | یا grep پی اچ پی > / توسعه تمدن / تهی
 سپس
     اکو "در حال حاضر کار پردازش ، خروجی"
 دیگر
     اکو "فرصت های شغلی در حال اجرا است ، شروع به در حال حاضر"
     CD / مسیر / / کار / کپی
     SVN به روز رسانی
     پی اچ پی yourJobProcessingScript.php
 فی 

در حال حاضر ما می تواند مطمئن باشد که با هر اجرا ما قطعا در حال اجرا آخرین کد. ما در حال حصول اطمینان از این به روز رسانی پایگاه کد ما هر زمان ما انجام اجرا و کاهش ترافیک شبکه انتقال تنها تفاوت فایل در سراسر شبکه ما.

در راه اندازی تظاهرات من ، من دقیقا همانطور که در بالا. براندازی نصب شده بر روی سرور کار من بود و من به سادگی آخرین کد را از شاخه 'کارگر' با استفاده از SVN به روز رسانی کشیده است. من همچنین افزود : نسخه شماره تگ به اسکریپت پردازش بود که به عنوان بخشی از نتایج بازگشت بازگشت به پایگاه داده است. به این ترتیب من می توانم ببینم که کد من در حال به روز رسانی شد و هر بار من تنه من را به اینترنت اکسپلورر شعبه کارگر آن برداشتهاید که من قطعا در حال اجرا بود آخرین اسکریپت پردازش.

با استفاده از آخرین اطلاعات

اگر شغل خود را از پردازش استفاده می کند از منابع داده و سپس در برخی از این ها باید به روز شود بیش از حد. مگر در مواردی که با شما تماس داده ها منابع خود را بر یک مبنای بسیار نادر به شما قصد داریم به سیل با ترافیک شبکه خود را به زودی به عنوان کارگر خود را در شروع به در حال اجرا آوردن همه چیز را به متوقف است. راه حل برای من تصمیم گرفتم که من می خواهم به حرکت منابع اطلاعاتی من در اطراف با VMS من.

برگزاری شما اسب وجود دارد و اگر منابع داده من ها بسیار زیاد هستند؟ خب این واقعا یک مورد از چه میزان داده ما صحبت است؟ این ممکن است بیشتر مقرون به صرفه برای نصب اضافی بزرگتر هارد دیسک را به هر دستگاه نسبت به خرید یک سرور پردازش های اضافی است. این یک سوال از بودجه است و به کسب و کار برای تصمیم گیری است. شاید که منابع اطلاعاتی خود را آنقدر بزرگ است که خود را تنها خام برای نگه داشتن آن مقدار از داده ها در ماشین آلات کارگر خود را. در آن صورت چه کار می کنید؟ خوب ما می تواند در تماس محلی سرور داده ها را نگاه کنید ، اما این ممکن است مسائل را با شبکه شود. در این حالت یک سیستم شبکه مانند این ممکن است غیر واقعی در محیط اداری خود را شامل . همچنین ممکن است که شما می توانید به استراتژی های جایگزین در حال اجرا به عنوان مثال نگاه کنید ، تنها خواستار کارگران خود را بین 20:00 و 6:00 هر شب و / یا درخواست داده throttling منبع می باشد.

حرکت در تاریخ به شما اجازه می دهد تا داده ها مقدار ما منابع به 100GB از داده ها می گویند. خب بله که بسیار کمی از داده ها را به حرکت در سراسر شبکه در بروز رسانی. چگونه می توانیم اطمینان حاصل شود که ما آخرین نسخه از داده ها در این مورد؟ Rsync یک احتمال است ، اما من شخصا فکر می کنم با اجرای آخرین منبع داده خود را بر روی سرور کار پردازش و تنظیم این به عنوان یک استاد در تکرار (با ورود به سیستم خوبی بن طولانی) ممکن است که راه را بروید :

تکرار با تنظیم هر یک از کارگران خود را به عنوان برده به کار به روز رسانی سرور کنترل را به داده ها از منابع خود را بریزد پایین سادگی به کارگران خود را بدون افزایش بزرگی در فعالیت های شبکه (این است که مگر اینکه شما بروز رسانی داده های بزرگ را انجام و تمام کارگران و پا زدن در در یک بار). این امر دارای مزایای بیش از rsync در آن شما می توانید یک مکث طولانی قبل از هر کار می کنید ، به عنوان به روز رسانی پایگاه داده ، شبح خروجی زیر بر روی کارگر خود را به طور پیوسته به روز رسانی داده های خود را در حالی که پردازش ادامه یابد.

این است که چگونه می توانم راه اندازی سرور تظاهرات من. برای راه اندازی تکرار من به دنبال راهنمای سایت خروجی (راه اندازی تکرار) و در عرض 20 دقیقه من تا به حال کارگر inital من تکرار کار کنترل مجموعه داده های سرویس دهنده است. برای هر کارگر اضافی تنظیمات تکرار و فرایند کار می کرد هر بار زمانی که ماشین مجازی کپی شده بود.

خلاصه

در این بخش از مقاله ما در چه آسان و بدون درد آن است که به نگه داشتن کد پردازش خود را تا به امروز توسط rsync using یا subverion (SVN) کار را به انجام و کاهش ترافیک شبکه را در time. همان نگاه ما همچنین در مورد چگونگی برای حفظ اطلاعات منبع اطلاعات خود را به روز اجازه می دهد که به هر یک از کارگران خود را از آن به چکیدن. بنابراین ما منطقه تضمین این که ما را با منطق کسب و کار و اطلاعات در سیستم شبکه دفتر ما. بدیهی است که وجود دارد جایگزین های بی شماری به انجام این وظایف ، اما در اینجا دو مثال ساده برای نشان دادن چه آسان راه حل است.

دفعه بعد

در بخش نهایی از این سری ، به درستی به نام قسمت 5 ، خواهیم به بحث در مورد استقرار این سیستم برای. من خلاصه آنچه را که آموخته شده است و آنچه که من موفق به خلق.

دفتر محاسبات شبکه با استفاده از محیط های مجازی -- قسمت 1

Steven ، جمعه ، 4 دسامبر 2009 11:23 PM

معرفی

من در یک شرکت که در آن ما برای اجرای بسیاری از مشاغل دسته پردازش میلیون ها پرونده داده ها در هر روز و من شده فکر کردن به تازگی در مورد تمام ماشینهایی که در اطراف هر یک می نشینند و هر روز انجام هیچ چیزی برای چند ساعت کار می کنند. آیا آن را نمی شود خوب اگر ما می تواند آن ماشین را برای تقویت قدرت پردازش سیستم های ما استفاده کنید؟ در این مجموعه ای از مقالات من قصد دارم در مزایای بالقوه به کارگیری دفتر شبکه با استفاده از محیط های مجازی.

به عنوان یک پی اچ پی توسعهدهنده من قصد دارم به استفاده از ابزار که من از هر روز استفاده می کنید یعنی ، لینوکس ، خروجی ، PHP ، مجازی و براندازی ( SVN) است. با این حال من امیدوارم که این راهنما به زبان های دیگر و فن آوری وفق دهند به همان اندازه خوب است.

راه حل به من ارائه خواهد شد بسیار آزادانه در نوع پردازش کردیم باید برای رسیدن به با این حال این ممکن است درست باشد از طریق کل مقاله من چیز برای سادگی تغییر دهید ، و یا برای تولید سناریوهای جالب تر استفاده از استوار است.

این محیط مجازی بر روی ماشین ویندوز اجرا کنید ، از آنجایی که این است آنچه را که اکثریت از دفاتر اداره. پردازش که ماشین های اداری با کارکنان با استفاده از کسانی که ماشین نباید دخالت کند ، باید هیچ نگهداری در دستگاه ، نیاز می شود و به سادگی گسترش پذیر را به ماشینهای جدید تبدیل شدن آنها به. همچنین ، ماشین های مجازی جدید باید نیاز به هرگونه تنظیمات اضافی را به عنوان این تا حد زیادی کاهش می دهد مقیاس پذیری و سهولت که در سیستم شبکه می توان توسعه یافته نیست.

چرا استقرار دفتر گرید محاسبات؟

در مرحله اول شما ممکن است فکر کردن ، به همین دلیل نه تنها استفاده از ابر محاسبات منابع به عنوان پلت فرم EC2 آمازون ؟ دلایل می تواند چند ، به عنوان مثال :

  • شما می توانید داده های خاص به یک ابر رایانه محیط زیست واگذار نمی
  • شما می توانید اطلاعات خاصی را به یک ابر رایانه محیط زیست قرار نیست برای دلایل قانونی (داده به عنوان مثال ، خروج از کشور) ، به طور بالقوه به دلایل قانونی ، به عنوان مثال پرونده NHS.
  • شما می خواهید نگه داشتن واحد های پردازش خود را بسته و کنترل کامل بر سخت افزار بیش از حد
  • شما بودجه پروژه برای اجرای موارد ابر
  • دفتر خود را می کند یک اتصال به اینترنت را نداشته باشند و در نتیجه آن امکان پذیر نیست به استفاده از یک منبع ابر
  • شما را دوست ندارند باران ، ابرها را نشان می دهد باران ، بنابراین شما در حفظ و دور

من مطمئن هستم که این لیست می تواند ادامه دهد ، اما من فکر می کنم که به اندازه کافی در حال حاضر.

مزایای استفاده از گرید دفتر محاسبات

خوب ، به شما اجازه می دهد تا در انجام برخی از ریاضی (و در سبک فیزیک واقعی به شما اجازه می دهد تا برخی از فرضیات فراگیر). تصور کنید شما سرور پردازش فربه بزرگ در حال اجرا 100 شغل ها در روز. در دفتر خود ، شما باید 50 ماشین که بیکار هستند 16 ساعت در روز ، هر یک از این دستگاه 10 ٪ به عنوان قدرتمند به عنوان پردازش شدید خود را فربه. (همه نتایج در اینجا گرد به دست کم گرفتن افزایش عملکرد).

بنابراین ، 1 دستگاه قدرت * 10 ٪ * 2 / 3 = 0.067 یعنی 1 دسکتاپ پردازش در زمان بیکار می تواند 6 شغل پر در هر روز روند .

اگر شما هم اکنون در مقیاس این بالاتر که طول می کشد 15 دسکتاپ بیکار به روند بسیاری از کارها را در روز به عنوان سرور پردازش اصلی خود را می کند.

بنابراین در دفتر وانمود ما از 50 دستگاه ما می تواند از 1 سرور تا قدرت پردازش ما به 4 سرور پردازش کامل را افزایش دهد ، و یا ما می تواند پردازش 400 شغل ها در روز به جای آن از 100.

و مقررات ، برای هیچ سرمایه گذاری در سخت افزار جدید شرکت خود را به تازگی افزایش ظرفیت پردازش دسته ای خود 4 بار! به طور بالقوه شما قصد استفاده از قدرت خود را افزایش دهد اما از اکثر محیط های دفتر من به ماشین آلات شده است به طور کلی در یک شبه به هر حال سمت چپ ، بنابراین شما می توانید از این به عنوان یک ابتکار سبز را ببینید.

سایر مزیت ها نیز معنی که سرمایه گذاری در جدید (یا به روز رسانی شده) با سرویس دهنده پردازش می تواند با تاخیر در صورتی که ماشین های اداری شما کافی است و به عنوان قدرت از ماشین های اداری خود را به شما در بهبود شبکه دفتر خود را قوی تر می شود به طور خودکار.

فن آوری

آنچه شما نیاز دارید؟ (و یا بیشتر به درستی آنچه که من استفاده کرده اید) :

  • ماشین های اداری بیکار (در مورد من یدکی لپ تاپ های قدیمی ویندوز XP)
  • مجازی (یا یکی دیگر از نرم افزار مجازی سازی مشتری)
  • ماشین مجازی با پی اچ پی ، خروجی زیر running در حال اجرا برش پایین OS ، من خواستار این سرویس دهنده ها لنگی من :)
  • مشاغل برای اجرا
  • سرور های شغلی (می تواند یکی دیگر از ماشین مجازی در جایی)

شغل نمونه

نوع شغل است که این سیستم طراحی شده برای اجرای این شرح است :

  • سیستم دریافت یک لیست از داده ها که بر اساس آن ما نیاز به تطبیق و بازگشت نتایج
  • تطبیق شامل چک کردن / جستجوی چند (نسبتا استاتیک) منابع داده
  • نمایش نتایج : از منابع داده ، ممکن است اعتبار بیشتر ، نیاز به ادغام ، چک کردن از منابع اطلاعات اضافی در پاسخ به نتایج
  • داده ها را با سوابق تطبیق بازگشته ، به طور کامل اعتبار و پردازش
  • هر رکورد در داخل یک شغل مستقل از بقیه است

بنابراین اساسا ما به دنبال آن هستید در حال اجرا مشاغل است که نیاز به ترکیبی از متغیر های پایگاه داده و برخی از خرد تعداد ، یک سناریو نسبتا معمولی در محیط کسب و کار است.

راه حل های گرید برای پردازش شغل ها از این نوع تنها به نفع نیست. در واقع ، هر فرایند است که می تواند به واحدهای مستقل تقسیم می تواند به صورت موازی اجرا شود. مشاهده ویکیپدیا برای مثال و اطلاعات بیشتر : محاسبات گرید ، اما زن و شوهر از نمونه های معروف SETI @ خانه و BIONC. چارچوب برای اجرای شبکه های محاسبات وجود دارد ، و این به خوبی به ارزش نگاه کردن به.

چه خواهد شد ما دست یابید؟

در پایان این مقاله ، من امیدوارم که نشان می دهد که استقرار شبکه دفتر ، نیاز به مصرف شدیدا گران قیمت و یا زمان نمی شود. من قصد دارم در مورد آن صحبت کنم :

  • راه اندازی سیستم کنترل کار ، تنظیمات شغلی
  • ایجاد یک ماشین پردازش مناسب مجازی
  • چگونه برای راه اندازی سیستم در یک ماشین ویندوز
  • اطمینان حاصل کردن شما با استفاده از آخرین کد و داده ها
  • به کارگیری و تعیین معیار
  • با نگاه به آینده

من ساختمان (خوب من ساخته شده است ، سپس این را نوشتهاید) برنامه نمونه برای آزمایش مفاهیم بر روی یک ماشین محلی با استفاده از ویندوز XP و من 'GridMachine ماشین مجازی. سرور کنترل کار من خواهد بود دستگاه اصلی من که در فدورا 11 را اجرا می کند .

این به هیچ وجه به معنای نشان دادن یک سیستم به طور کامل کار قوی ، خود را به معنای بیشتری از تظاهرات و بحث در مورد نشان می دهد که این چیزها را می توان در یک فضای منطقی زمان کوتاه و با هزینه کمی به دست آورد. لطفا در صورت تمایل به من ارسال هر گونه نظر ، اصلاح و یا بهبود و من من برای حفظ این مقاله به روز شده برای مطابقت.

دفعه بعد

در قسمت 2 من با نگاه به کار کنترل سیستم شروع ، و نگاه به چگونگی مشاغل را باید به پیکربندی به منظور دستیابی به بیشترین مقدار پردازش ضمن تضمین این که هر کار بدون شکست می خورند پردازش.

دفتر محاسبات شبکه با استفاده از محیط های مجازی -- قسمت 2

Steven ، جمعه ، 4 دسامبر 2009 11:23 PM

معرفی

من در یک شرکت که در آن ما برای اجرای بسیاری از مشاغل دسته پردازش میلیون ها پرونده داده ها در هر روز و من شده فکر کردن به تازگی در مورد تمام ماشینهایی که در اطراف هر یک می نشینند و هر روز انجام هیچ چیزی برای چند ساعت کار می کنند. آیا آن را نمی شود خوب اگر ما می تواند آن ماشین را برای تقویت قدرت پردازش سیستم های ما استفاده کنید؟ در این مجموعه ای از مقالات من قصد دارم در مزایای بالقوه به کارگیری دفتر شبکه با استفاده از محیط های مجازی.

در قسمت ( 1) من به کلی از سیستم و فن آوری خواهد بود با استفاده از و همچنین مورد بحث برخی از دلایل بالقوه چرا شما می خواهید برای ایجاد شبکه دفتر است.

کنترل های شغلی

اگر قصد دارید در حال اجرا شغل و سپس شما نیاز به رفتن به برخی از راه را برای مدیریت آنها. کار سیستم خود را کنترل کنید (بر روی سرور کار خود را) باید واقعا به خوبی قبل از حتی اقدام به اجرای شبکه دفتر تصور. بنابراین در مرحله اول ، چه وظایف برای کنترل یک سیستم کار :

  • مشاغل از دست بر درخواست از کارگران
  • ارسال به کارگران چه نوع از مشاغل به اجرا
  • شغل آهنگ
  • اطمینان از که شغل تنها یک بار اجرا
  • ارائه اطلاعات شغلی به کارگران ، و یا حداقل به آنها بگویید که در آن به آن را دریافت کند

این سیستم همچنین نیاز به توسعه پذیر ، راه حل است که آثار در حال حاضر تنها در یک مورد ممکن است توسعه یافته برای اجرای انواع مختلفی از مشاغل به عنوان کسب و کار می بیند ارزش در محلول شبکه. به عنوان مثال ، شغل ممکن است اولویت ها ، کسب بیش از یک نوع کار ممکن است وجود داشته باشد (یعنی چندین پایگاه های کد) ، در نهایت شما حتی ممکن است دستگاه های چند کارگر های مختلف که برای هر نوع از مشاغل بهینه سازی (اجرا هر چند که نمی حرکت به دور از کارگر "عمومی 'IDEA). همیشه سعی کنید در مورد آینده فکر می کنم در هنگام توسعه سیستم های ، یک چشم انداز کوتاه مدت می تواند منجر به سرخوردگی دراز مدت و افزایش زمان توسعه شود.

سرور های شغلی

ما قصد داریم به جایی نیاز برای کنترل کار ما از این باید به سیستم تنها در شبکه خود است که منابع یاب ثابت ، لازم است که یک آدرس IP ، نام میزبان ، URL (با استفاده از دی ان اس داخلی) ، و غیره دلیل این است که کارگران باید بدانند که در آن به دنبال کار ، کارگران نیاز به پیدا کردن کار سیستم های کنترل (نه کار سیستم کنترل پیدا کردن کارگران).

سرور کار خود واقعا یک کار پیچیده (در یک سیستم پایه به هر حال) به آن نیاز دارد ، برای ذخیره لیستی از مشاغل ، دست مشاغل ، نتایج دریافت کنید ، و متعاقبا آنها را ذخیره برای بازیابی بعدی. این قسمت (دست کارهای مانند) چگونه تعریف می شوند را می توان بسیار اساسی. بعدها ما می توانیم سیستم رابط دولت به اضافه کردن ، ویرایش ، حذف ، تعلیق مشاغل اما این است که فراتر از این تمرین شامل گسترش دهد.

بدون هیچ دلیل آنچه پس از آن که سرور کار شما می تواند یک ماشین مجازی در حال اجرا در سرور پردازش اصلی خود را ارائه منابع بیش از حد بسیاری از آن را تخلیه وجود دارد. با این حال سرور کار نیاز به در دسترس بودن بالا ، اگر آن را به پایین می رود در یک شب جمعه شما قصد از دست دادن یک آخر هفته کامل از پردازش ، به طور بالقوه هزینه به شما چند هفته به ارزش زمان پردازش (در مقایسه با زمانی که به سرور پردازش اصلی خود را به تنهایی) . شما ممکن است بخواهید به در نظر قرار دادن سرور کار خود را بر روی محیط زیست بار متعادل برای در دسترس بودن بالایی.

راه اندازی پایه

راه اندازی اولیه برای سرور کار ما را از آنچه من خواستار یکی از سرور لنگی من (که لی nux ، ySql متر ، P HP) تشکیل شده است. کد در حال اجرا بر روی کارگران the در واقع از کار چه شغل آن را با تعامل با پایگاه داده سیستم های کنترل با شغل می تواند اجرا شود. بعدها ما می تواند یک وب سرویس و در واقع دست مشاغل را به جای داشتن کارگران از کار سخت خود را ایجاد کنید ، اما در حال حاضر برای ادامه خواهیم با استفاده از اصل KISS (نگه داشتن آن را ساده ، احمق!).

بنابراین ، به شما اجازه می دهد تا ایجاد سه خروجی زیر جداول برای مقابله با مشاغل. از این خواهد شد : مشاغل ، `jobRecords` و `jobResults`.

مشاغل جدول در اینجا من با استفاده از SQL دوستان یک جایگزین عالی کمی فقط به خاطر اینکه به phpMyAdmin به آسان تر خود را به بر روی لینوکس نصب کنید (برای دیگران می بینیم : 10 جایگزین های بزرگ به phpMyAdmin به)

این جدول شامل 5 فیلد ساده ،

  • ID : منحصر به فرد شناسایی کار
  • نام : می تواند مرجع مشتری ، و یا هر تعداد از شناسه های دیگر
  • وضعیت : شما باید بدانید که در آن کار ، به عنوان مثال
    • 0 : شروع نشده
    • 1 : برداشت
    • 2 : پایان یافته
  • started_by : چه کسی شروع به انجام این کار ؟ این کاملا ضروری نیست اما خوبی داشته است. من می خواهم کارگران ردیابی آدرس IP خود را در شبکه خود را نشان می دهد
  • started_at : هنگامی که کارگر یا کارمند آغاز کار؟ با پیگیری کارهایی که در درون مقدار X از زمان ما می دانیم که ما نیاز داریم را انتخاب کنید تا این کار یک بار دیگر و شروع به پردازش دیگر کارگر نیست کامل می کنید. کارگران می توانند پردازش / توقف offline برای هر تعداد از دلایل قطع برق ، تصادف ، از دست دادن شبکه ، و غیره

آسان است که چگونه این جدول می تواند با زمینه های اضافی در چند اجازه می دهد تا برای ردیابی آمار ، تمام ستون هم به دیدن چه مدت این کار در زمان مبارزه تا ببینید که چگونه بسیاری از کارگران را برداشت کار (بدیهی است که این نیاز به تمایل به تمدید 1) ، اولویت شغلی ، فهرست می تواند بر روی بروید. در سناریوهای کار پیچیده تر از آن امکان پذیر خواهد بود را مشخص چه مقدار حافظه کارگر ، دسترسی به (و بنابراین تنها استفاده از کارگران مناسب) ، و یا حتی چه نوع از کارگر خواهد بود لازم نیاز دارند.

بیایید اضافه کردن چند مثال شغل :

شغل مثال

جدول بعد دوباره کاملا ساده است به درک ، این سوابق کار ما است. آنها توسط یک ستون `jobs_id` به جدول اصلی شغل مرتبط شده است. از این جدول را تشکیل می دهند بسیار بستگی دارد داده هایی را که شما نیاز به تامین به کارگران خود ، اجازه می دهد تا ایجاد یک مثال بسیار ساده که در آن ما چهار ستون :

  • ID : ID رکورد
  • نام : نام شخص
  • آدرس ایمیل : آدرس شخص
  • jobs_id : ID کار است که این رکورد را به مرتبط

جدول سوم و نهایی متشکل از یک جدول نتایج ، آن را تا حد زیادی به همان عنوان جدول سوابق ما را تشکیل می دهند ، و با علاوه بر این برخی از ستون ها را می توان بخشی از جدول سوابق :

  • job_record_id : لینک در نتیجه به میز کار
  • نتیجه : داده ها در نتیجه

... و این همه شما را برای کنترل کار نیاز دارند! (البته در سطح بسیار ابتدایی) در مورد من من به یکی دیگر از جدول که در آن اطلاعات من برای پردازش واقع شده بود اشاره کرد ، اما این فقط به عنوان به راحتی می تواند یک فایل ، پارامترهای برای اجرای کد های شبیه سازی ، آن را به شما است.

انتخاب یک شغل

همانطور که قبلا ، کارگران خواهد شد مدیریت کار ما برای ما در حال حاضر انجام دهید ، بنابراین همه ما باید واقعا انجام شده است پیدا کردن یک کار است که نیاز به پردازش و بدست آوردن اطلاعات است. چگونه می توانیم این کار؟ معیارهای انتخاب شغل ما و بلند و به دنبال شغل ، در SQL من به شرح زیر :

  1. هر شغل که به عنوان کامل است اما کارگر ما مشخص و تنظیم مجدد آنها (جایگزین __ME__ با شناسه ، ساده ترین خواهد بود آدرس آی پی) :
      UPDATE `شغل` SET `وضعیت` = 0 WHERE `وضعیت` = 1 AND `started_by` = __ME__. 
  2. با استفاده از معیارهای انتخاب شغل ما ، انتخاب یک شغل و به سیستم کنترل که این کارگر در برخورد با آن ها :
      UPDATE `شغل` SET `وضعیت` = 1 ، `started_by` = __ME__ ، `started_at` = NOW () WHERE `وضعیت` = 0 OR
     (`وضعیت` = 1 AND `started_at`> DATE_SUB (NOW () ، INTERVAL ساعت X)) ORDER BY `ID` ASC ؛ 

    با گرفتن کارهای که منجر به مقدار X از زمان شما اطمینان می دهیم که تمام مشاغل در این رویداد از یک کارگر توفنده و یا رفتن AWOL اجرا بازگشته است.

  3. در مرحله بعد جزئیات شغل پس از آن توسط خود سوابق چنگ زدن :
      SELECT * FROM `مشاغل` WHERE `started_by` = __ME__ LIMIT 1 ؛
     SELECT * FROM `job_records` WHERE `ID` = __JOBID__. 

پس از اتمام کار سوابق نتیجه ما درج ما و علامت گذاری به عنوان شغل به عنوان کامل. به یاد داشته باشید به عنوان شغل می تواند تعلیق / در هر زمان برای برخی از نیرومندی در اسکریپت شما اجازه می دهد از سر گرفته است. این ممکن است که کار را متوقف کند نیمی از راه را از طریق به روز رسانی سیستم های کنترل کار ، چک کردن تعداد رکوردها در یک شغل و تعدادی از نتایج به کار کنترل سیستم ذخیره می شود یک حرکت عاقلانه خواهد بود.

علاوه بر این ، در حالی که این نشان می دهد چگونه شغل می تواند باشد و از قاب SQL پرس و جو شما واقعا باید انتخاب چکیده کنترل شغل خود را از مدیریت به طوری که اگر شما تصمیم به سوئیچ به استفاده از یک سرویس وب ، فایل سیستم مبتنی بر ، XML ، و یا هر نوع دیگر تعدادی از سیستم های کد بالا آن تاثیر نمی گذارد.

پیکربندی های شغلی

جنبه های بعدی در نظر گرفتن اندازه و پیکربندی کار می باشد. با بازی با تنظیمات کار ما می توانیم تعادل بسیار خوبی بین سرعت ، تکرار فرایند ، و قابلیت اطمینان اعتصاب. نگاهی به چند سناریو of :

  1. مشاغل را 1 روز در هر اجرا کنید : این به این معنی که کارگران خود را به 15 روز نیاز برای پردازش هر یک از کار (10 ٪ از قدرت برای 2/3rds از آن زمان به یاد داشته باشید). این است که به وضوح عاقلانه پیکربندی نیست ، اندازه شغل شما این است راه خیلی بزرگ! این حداقل دو برابر زمان یک کار پردازش برای دریافت کنند باید کارگر اولیه AWOL (زمان را انتخاب کنید تا که آن را تا به یک نتیجه را به همراه زمان بازفرآوری بازگشت). در ایده آل شما می خواهم حداقل یک شغل کامل است که به راحتی در پایان هر دوره طولانی بیکار پاک را داشته باشد ، که راه شما در حفظ و مشاغل تیک تاک و در بدترین حالت یک کار را دو روز به روند باید اول بروید گم.
  2. مشاغل 1 دقیقه به اجرا کنید : این به این معنی که کارگران خود را از حدود 15 دقیقه برای اجرای هر کار است. در حالیکه ممکن است در ابتدا به نظر می رسد ایده آل ، پردازش کار اضافی به شما کسب در زمان ناهار ، استراحت قهوه ، جلسات ، و غیره این سناریو فشار بر مناطق دیگر از سیستم شما و معرفی مشکلات خاص خود را دارد. به عنوان مثال ، در مرحله اول راه اندازی / پردازش نسبت خود را هم در حال رفتن به سمت راست پایین ، در نتیجه از دست دادن کارایی سیستم. شبکه خود را در حال رفتن به اطلاعات شغل دائما به کارکنان مختلف کارگران نا امید کننده هستند دونگ روز خود را به کار روز جریان است. شما نیز برای قرار دادن فشار بیشتر بر روی سرور پردازش کار تا آن را به ظرف مقدار زیادی و تعداد زیادی از قطعات کوچکی از کار را به صورت منظم. در نهایت ، در این وضعیت اگر سرور کار شما پایین می رود شما می خواهیم برای ایجاد دوباره وارد سیستم شوید عظیمی از کار ناتمام در حالی که شغل های بزرگتر می تواند پردازش خوش غافل که سرور کار تجربه مشکلات ادامه داد.

در واقع وجود خواهد داشت هیچ پیکربندی یک ایده آل برای راه اندازی شبکه خود ، از حد در منابع موجود ، نوع شغل ، کار مورد نیاز زمان چرخش ، قابلیت شبکه ، و غیره بستگی دارد. با این حال برخی از دستورالعمل ها خواهد بود :

  • شغل حجم به طوری که هر کارگر می توانید از طریق حداقل شغل 3-4 در یک دوره از 15 ساعت (طولانی ترین دوره به احتمال زیاد هم بیکار)
  • بازی با حجم کار به طوری که زمان راه اندازی می شود نسبتا ناچیز در مقایسه با زمان پردازش (با در نظر گرفتن نقطه بالا).
  • اگر یک کار در دو برابر مقدار زمانی (شاید کمتر) که شما انتظار آن را به کامل کامل نیست فرض کنیم که رفته خود را AWOL و شروع به پردازش آن را با دیگر کارگران است. این به این معنی است که شما ممکن است مجبور به صبر تا سه برابر طول طبیعی کار برای آن را تکمیل (احتمالا بیشتر اگر کار پس از آن با شکست مواجه). شما ممکن است بخواهید این زمان را کاهش دهد ، اما مراقب باشید به آن را بیش از حد کم که شما ممکن است شروع به تکثیر کردن وظایف پردازش را به صورت منظم.
  • مشاغل باید مستقل از الزامات در خارج تا آنجا که ممکن است. سرور شغل ، به عنوان مثال ، فقط باید در آغاز و پایان هر کار تماس گرفته شود.
  • شبکه خود را اشباع نیست ، این دو اثر منفی داشته باشد ، کارکنان در طول روز شما را پیدا خواهد کرد با استفاده از شبکه های خسته کننده و مشکلات ممکن است با اتصالات زمان یک مشکل که فقط بدتر خواهد شد به عنوان شبکه شما را در مقیاس تجربه.
  • اطمینان از شغل می توانید بر روی کارگران خود را اجرا کنید. اگر شغل تبدیل به بیش از حد حافظه فشرده و یا شغل های فضای دیسک فشرده شروع خواهد شد سقط و تنها چیزی که شما متوجه این است که قطره در تعدادی از مشاغل پردازش با هیچ دلیل واقعی چرا.

نمایش نتایج : از ارائه یک کار

هنگام ارائه نتایج حاصل از یک کار مهم است که برای بررسی که نتایج دیگر کارگر نشده است را مشاهده کنید ، به خصوص اگر کارگر فعلی خفته است برای برخی از زمان بوده است.

هنگامی که نتایج به دست آمده را مشاهده کنید اطمینان حاصل شود که تعداد نتایج مسابقات تعداد رکورد در کار.

همانطور که پیش از این ، و نه می تواند بیش از تاکید کرد ، ایجاد تحمل خطا را در بازیابی شغل و تسلیم نتایج. کارگران می توانند (و به احتمال زیاد) در ناخوشایند ترین بار رفتن به حالت حالت تعلیق درآورد و این نیاز به catered برای. همچنین یک بار دیگر چکیده دور تسلیم خود را نتایج کمک خواهد کرد که به تهیه برای تغییرات آینده به سیستم شغل خود را از کنترل بسیار آسان تر برای مقابله با.

خلاصه

در این section ما در کار کنترل سرور نیاز به انجام نگاه کرد و چگونه می توانید یک سیستم بسیار ابتدایی راه اندازی است. مورد بحث قرار دادیم که چگونه برای بازیابی یک کار از سیستم های کنترل و چگونه به بهترین وجه به پیکربندی شغل ما را از دفتر شبکه سیستم خود را است. برای به پایان رساندن ، از یک پاراگراف یا دو در ارسال نتایج به سرور کنترل کار ارائه شده است.

  • سرور کنترل مدیریت یک کار شغل و تضمین می کند که تمام واحدهای کار تکمیل
  • چکیده شغل خود را انتخاب کنید / نتایج تسلیم ما می توانیم تکنولوژی سرور کنترل بدون مشکلات زیادی را تغییر دهید
  • پیکربندی شغل خود را به اطمینان حاصل شود که آنها به سرعت و کارآمد بدون فشار بیش از حد بر روی زیرساخت های شبکه خود اجرا و بدون تکثیر پردازش وظایف را به صورت منظم.
  • اطمینان حاصل شود که شما برای ساختن تحمل خطا و checking خطا را به روال خود را ، کارگران می توانند تعلیق و از سر و ناخوشایند ترین بار. به یاد داشته باشید برای بررسی اگر نتایج قبلا توسط دیگر کارگر مشاهده کنید.

دفعه بعد

در بخش 3 خواهیم ماشین پردازش مجازی و ایجاد و راه اندازی ماشین آلات پنجره های ما برای تبدیل شدن به زمان کارگران بیکار .

دفتر محاسبات شبکه با استفاده از محیط های مجازی -- قسمت 5

Steven ، جمعه ، 4 دسامبر 2009 11:03 PM

معرفی

من در یک شرکت که در آن ما برای اجرای بسیاری از مشاغل دسته پردازش میلیون ها پرونده داده ها در هر روز و من شده فکر کردن به تازگی در مورد تمام ماشینهایی که در اطراف هر یک می نشینند و هر روز انجام هیچ چیزی برای چند ساعت کار می کنند. آیا آن را نمی شود خوب اگر ما می تواند آن ماشین را برای تقویت قدرت پردازش سیستم های ما استفاده کنید؟ در این مجموعه ای از مقالات من قصد دارم در مزایای بالقوه به کارگیری دفتر شبکه با استفاده از محیط های مجازی.

در قسمت 4 که در استفاده از ابزار برای اطمینان حاصل شود که ما آخرین نسخه از منابع کد و داده های در حال اجرا است به طوری که نتایج به دست آمده همیشه به روز با آخرین اطلاعات مربوط به کسب و کار و منطق استان مازندران انجام شده است.

پیش از اعزام

قبل از استقرار سیستم شبکه شما اگر یک چیز وجود دارد و یک چیز به تنهایی آن را معیار سیستم فعلی شما! مهم نیست که آنچه به شما بگویم همکاران در مورد چه مقدار کار اضافی سیستم شما می باشد را به انجام مگر در صورتی که تعداد این کار را تا تضمین های خود را به عقب چیزی. بنابراین ،

  • که چگونه بسیاری از پرونده می تواند به شما روند در حال حاضر؟ پستها در طول روز؟ در ساعات روز؟
  • چه مدت طول آن به طور معمول به نوبه خود در اطراف کار کنند؟
  • چقدر ظرفیت بیشتر دارید؟

سؤالات دیگری نیز وجود دارد :

  • اگر سرور پردازش خود (یا یکی از سرویس دهنده پردازش خود را) به پایین می رود چگونه خواهد بود بر توانایی های خود ، شما را فلج؟
  • مزایای چه امید / انتظار از سیستم شبکه؟
  • آیا ماشین های اداری خود را قادر به در حال اجرا مشاغل است؟
  • شما (و یا می تواند شما شغل تبدیل شود) را به کار در این سبک در حال اجرا؟

آخرین نکته مهم است که وقت خود را بر روی هر گونه تغییر عمده مانند این. بروز پردازش کد خود را به کار با استفاده از روش جدید ، معیار دوباره. احتمالا راه اندازی سرور پردازش خود را به یک ماشین مجازی به اجرا کنید ، پس از تمام سرور پردازش خواهد شد یکی دیگر از کارگران (فقط یکی از بسیار قدرتمند نسبتا). اجازه فرآیند جدید به حل و فصل.

گسترش

پیشنهاد من این است که به دفتر یکی آخر هفته به انجام نصب و راه اندازی پاپ . 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.

Stop!

اگر شما می خواهید برای جلوگیری از کارگران خود را از در حال اجرا در برخی از زمان چه می شود؟ آنها خارج وجود دارد در حال اجرا ، بازسازی و تلاش خود را به پردازش داده ها را مثل حشرات گرسنه. پاسخ ممکن است به نظر می رسد آشکار است اما ارزش خود را با اضافه کردن فقط در مورد نادیده گرفته آن. به سادگی اسکریپت پردازش خود را با خروج (0) ویرایش کنید و یا می میرند () و یا برخی از بیانیه های دیگر را به کشتن کار پردازش خود را. دلیل مهم که چرا ما همیشه تلاش برای به روز رسانی به آخرین اسکریپت پردازش قبل از هر گونه اجرا!

سیستم تظاهرات

به منظور نوشتن این مجموعه ای از مقاله های کوتاه من ایجاد یک شبکه بسیار کوچک برای نشان دادن فن آوری ها و روش ها. من خواندن بسیاری از مقالات ، آموزش ، و با استفاده از ابزار های مختلف برای راه اندازی و نظارت بر چه می گذرد. به هیچ وجه من رفته و اشباع شده یک دفتر کل با ترافیک و نه من تا به حال دسترسی به کارکنان به طور منظم PC اعضا برای دیدن چگونگی عملکرد میزبان تحت تاثیر قرار بود.

سیستم تظاهرات من بسیار فروتن بود در واقع. من با استفاده از دسکتاپ به طور منظم به عنوان یک سرور کنترل کار. در این خروجی سرور نصب کرده بود تا به عنوان یک استاد در تکثیر مجموعه ای نصب ، PHP ، A و SVN از طریق مرتبط آپاچی (برای دسترسی از طریق کارگر VM ) است.

سپس دستگاه کارگر لینوکس مجازی در 6 ساله ویندوز XP لپ تاپ. وظایف برنامه ریزی شده که پس از کپی کردن VM را بر روی دستگاه مشخص شده را راه اندازی و اجازه دهید آن را برود.

ماشین مجازی با پی اچ پی ، براندازی ، و MySQL تنظیم شده است. من چک کردن شاخه 'کارگر از کار کنترل مخزن سرور نام ساخته شده و حاصل کنید که آن را به روز می تواند با استفاده از SVN به روز رسانی. بعد من راه اندازی MySQL به عنوان برده و چک که تکرار داده ها از خروجی زیر بود بر روی سرور کنترل شغلی پایین VM کارگر. بعد از این همه اسکریپت bash و برنامه cron را راه اندازی کنم.

اسکریپت پردازش من اساسا در امتداد خط (چیزهای بسیار ساده) رفت :

  • خوانده شده در زمینه نام
  • شمارش تعدادی از نام های مشابه در یک جدول از منبع داده بر روی ماشین مجازی برگزار شد
  • Counted the number of names as above but splitting the name by spaces (ie forename, middle, surname)
  • Repeated this process 1,000 times

Each job took approximately 20 minutes to run. 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 @ صفحه اصلی ، تاشو @ صفحه اصلی ، و غیره) است. من ، با این حال ، پیدا کردن یک مقیاس کوچکتر و سیستم ساده مانند این در جستجوی من است که می تواند در یک محیط دفتر نورد.

ایجاد یک سیستم با استفاده از نرم افزار بیشتر منبع باز و ابزار موجود را تقریبا در هر دفتر اساسا آزاد است. فن آوری اساسا نشان داده شد و نشان می دهد برای انجام کار و به عنوان انتظار می رود. امیدوارم من را نشان می دهد که با کار زیادی نیست و با یک تنظیم بسیار ساده شما می توانید به دفتر شبکه سیستم محاسبات است که قدرتمند ، ارزان ، A و مقیاس پذیر در همان زمان استقرار.

هنگامی که یک سیستم است و در حال اجرا وجود دارد ، تقریبا هیچ پایان دادن به مقدار سفارشی سازی و بهبود شما می توانید. به عنوان مثال آمار / تعیین معیار به راحتی می تواند اضافه شود هر روز نشان دادن ارزش چنین یک سیستم است. ماشین های جدید به سرعت می توانند اضافه شوند و به راحتی به عنوان و زمانی که آنها با ارتقاء به سخت افزار های موجود در تقویت قدرت پردازش خود می رسند.

من امیدوارم که شما لذت بردم از خواندن این سری از مقالات و شما داده شده در مواد غذایی برای اندیشه در حال اجرا دفتر شبکه سیستم. راه حل ارائه شده در اینجا لزوما در همه شرایط کار نمی کند اما باید سازگار اجازه می دهد تا به شما برای پردازش خود را داده انجام می شود با استفاده از راه حل خود را.

لطفا در صورت تمایل به من ارسال هر گونه نظر ، اصلاح و یا بهبود و من من برای حفظ این مقاله به روز شده برای مطابقت.













تم پانوراما توسط Themocracy

6 visitors online now
4 guests, 2 bots, 0 members
Max visitors today: 12 at 06:55 am UTC
این ماه : 17 در 2011/01/09 11:27 PM محلی UTC تنظیم شده اند
در این سال به 130 28-03-2011 10:40 PM محلی UTC تنظیم شده اند
تمام زمان ها : 130 28-03-2011 10:40 PM محلی UTC تنظیم شده اند