پست های برچسب: شبکه

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

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

معرفی

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

خلاصه

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

دفعه بعد

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

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

، جمعه، 4th دسامبر 2009 11:37 PM

معرفی

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

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

راه اندازی کارگر خود را - یا سرور لنگی

گام بعدی در این فرآیند این است که کارگران مجازی خود را راه اندازی. برای این کار من قصد دارم به استفاده از نصب و راه اندازی لینوکس با استفاده از مجازی. من قصد دارم به بانک اطلاعات MySQL را نصب و پی اچ پی بر روی سرور، نیز به عنوان شل (nux ​​لی متر ySQL و P HP) Server (ممکن است من را ساخته اند که نام بالا) شناخته می شود.

  • نصب مجازی بر روی دستگاه خود ویندوز (به دنبال لینک)
  • دانلود و نصب لینوکس (نسخه 5.3) در درون یک ماشین مجازی ایجاد شده

هیچ نقطه وجود دارد من به این قصد احتمالا 1000، از آموزش های بزرگ خارج وجود دارد (خوب، در اینجا: ایجاد و ماشین مجازی لینوکس Managing زیر مجازی ). نکته مهم توجه داشته باشید گمان می کنم این است که من به نام ماشین مجازی من GridMachine.

تا آنجا که به عنوان انتخاب های من از مجازی سازی مشتری و سیستم عامل است که هیچ دلیل قانع کننده ای بزرگ برای هر انتخاب وجود دارد. مجازی چیزی بر روی دستگاه خانه من و استفاده از سه سیستم عامل های بزرگ است. انتخاب لینوکس به عنوان سیستم عامل خود را خوب پایدار و من از آن استفاده کنید را بر روی سرور وب خود را. من اعتقاد زیادی در ابزار های مناسب برای این کار (اگر چه من استفاده از 'استفاده از سریعترین و ساده ترین برای شما ذهنیت در اینجا)، بنابراین اگر سیستم عامل X را اجرا می کند کد خود را سریعتر و موثرتر استفاده کنید که به جای :)

مهم مطمئن شوید که ماشین مجازی خود را با استفاده از DHCP، در غیر این صورت برای هر ماشین مجازی جدید که نیاز به توان به پیکربندی به صورت جداگانه است که چیزی است که ما نمی want.By با استفاده از DHCP ما نیازی به پیکربندی تنظیمات شبکه به صورت جداگانه برای ماشین آلات کارگر، DHCP به دست خارج از IP ها برای شما. بنابراین شما می توانید ماشین مجازی خود را در مورد اداره بدون هیچ گونه نگرانی در مورد تنظیم هر یک (در این مقیاس پذیری را بهبود می بخشد و دولت کارگران را کاهش می دهد) کپی کنید.

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

چگونه برای اجرای شغل کارگر

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

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

تصمیم من این بود با cron که لگد کردن یک اسکریپت پوسته، هر minutes. 10 اسکریپت پوسته من در انجام وظایف زیر است:

  1. لیست پروسه و grep استفاده برای پی اچ پی '. اگر یافت نشد و سپس ادامه.
  2. تماس با کد کار خود را، در مورد من این خواهد بود که اساس PHP چیزی
  3. اسکریپت کارگر کامل اجرای آن
  4. آماده برای رفتن دوباره در تماس بعدی مناسب

اسکریپت bash به نظر می رسد چیزی شبیه به زیر:

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

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

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

راه اندازی ویندوز به مقداردهی اولیه کارگران

وظیفه اول این است که کار از دستور مورد نیاز برای اجرای ماشین مجازی را از خط فرمان ویندوز. اگر شما مجازی در محل پیش فرض نصب شده و شما به نام کارگر GridMachine و سپس دستور مورد نیاز برای بارگذاری کارگر است:

  "C: \ برنامه فایلها \ یکشنبه \ مجازی \ VBoxManage.exe" startvm GridMachine 

با این حال برای اجرای اسکریپت در یک "بی سر" دولت ما نیاز به استفاده از:

  "C: \ فایلها برنامه \ یکشنبه \ مجازی \ VBoxHeadless.exe" startvm GridMachine - vrdp = خاموش 

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

بعد، ما نیاز به تنظیم پنجره ها تا به توپ زدن VM کارگر ما پس از آن که دستگاه غیر فعال شده است. برای انجام این کار (بر روی ویندوز XP) شما باید شروع به رفتن -> همه برنامه ها -> لوازم جانبی -> ابزارهای سیستم -> وظایف برنامه ریزی شده به شرح زیر است:

وظایف برنامه ریزی شده

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

اضافه کردن به انتهای کادر اجرا رشته ما startvm GridMachine و اطمینان حاصل شود که اجرا تنها به سیستم وارد شده باشد در سمت چپ unticked. ارسال یک وظیفه برنامه را بعد و تغییر برنامه کشویی گزینه 'غیر فعال'، مقدار زمانی که شما می خواهم دستگاه را به وقت تلف کردن، قبل از رفتن به تب بعدی را انتخاب کنید.

در نهایت گزینه که بیان متوقف کردن این کار در صورتی که قبلا در حال اجرا مقدار X از زمان، untick اما تیک گزینه ای را برای متوقف کردن این کار در صورتی که دستگاه دیگر بیکار نیست.

برنامه

که در آن برای راه اندازی میزبان ویندوز!

خلاصه

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

دفعه بعد

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

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

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

معرفی

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

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

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

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

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

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

سرور های شغلی

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

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

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

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

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

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

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

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

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

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

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

شغل به عنوان مثال

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

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

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

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

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

انتخاب یک کار

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

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

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

  3. بعد از جزئیات مربوط به شغل و به دنبال آن پرونده خود گرفتن:
      SELECT * FROM `شغل` WHERE `started_by` = __ ME__ LIMIT 1؛
     SELECT * `job_records` WHERE `ID` = __ JOBID__. 

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

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

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

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

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

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

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

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

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

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

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

خلاصه

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

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

دفعه بعد

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

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

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

معرفی

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

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

پیش از استقرار

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

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

پرسش های اضافی وجود دارد:

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

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

گسترش

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

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

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.

را متوقف کنید!

What if you want to stop your workers from running at some time? They are all out there running, regenerating, and trying their best to process data like hungry insects. The answer may seem obvious but its worth adding just in case its overlooked. Simply edit your processing script with an exit(0) or die() or some other statement to kill your processing job. An important reason why we always try to update to the latest processing script before any run!

Demonstration System

In order to write this set of short articles I created a very small grid to demonstrate the technologies and methodologies. I read lots of articles, tutorials, and used various tools to setup and monitor what was going on. By no means have I gone out and saturated a whole office with traffic and nor have I had access to a regular staff members PC to see how host performance was affected.

My demonstration system was very humble indeed. I used my regular desktop set up as a job control server. On this I had installed mySQL server installed set up as a master in replication, PHP , and SVN linked through apache (for access via worker VM).

I then created a centOS worker machine on VirtualBox on a 6 year old windows XP laptop. I setup scheduled tasks as specified after copying the VM onto the machine and let it go.

The virtual machine was set up with PHP, subversion, and mySQL. I checked out a branch named 'worker' from my job control servers repository and made sure it could be updated using 'svn update'. Next I setup mySQL as a slave and checked that data was replicating from mySQL on the job control server down to the worker VM. After all this I setup the bash script and the cron job.

My processing script basically went along the lines of this (very simple stuff):

  • Read in the name field
  • Counted the number of similar names in a table from the data source held on the VM
  • 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

The next obvious step would be to actually get a real world example and start to deploy a system such as this within an office environment and see what happens. Asking a business to commit to this without a trail blazing company to prove the technology and effectiveness may be a little difficult. Grid/Distributed computing is very popular is some circles and has some large applications (BIONC, SETI@Home, Folding@Home, etc). I did not, however, find a smaller scale and simple system like this in my searches that could be rolled out within an office environment.

I created a basically free system using mostly open source software and tools available in almost any office. The technologies were basically demonstrated and show to perform and work as expected. Hopefully I have show that with not much work and with a very simple setup you can deploy an office grid computing system that is powerful, cheap, and scalable all at the same time.

Once a system is up and running there is almost no end to the amount of customisation and improvements you can make. For example statistics / benchmarking can easily be added showing the worth of such a system every day. New machines can be added quickly and easily as and when they arrive with upgrades to existing hardware bolstering your processing power.

I hope you've enjoyed reading this series of articles and its given you food for thought on running an office grid system. The solution presented here won't necessarily work in all situations but should be adaptable to allow you to get your data processing done using your own solution.

Please feel free to send me any comments, corrections, or improvements and I'll do my best to keep this article updated to match.













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

7 بازدید کننده آنلاین در حال حاضر
4 guests, 3 bots, 0 members
بازدید کنندگان حداکثر امروز: 15 در 09:07 بعد از ظهر ساعت محلی UTC تنظیم شده اند
این ماه: 56 در 25-04-2012 08:41 ساعت محلی UTC تنظیم شده اند
This year: 69 at 27-02-2012 09:56 am UTC
All time: 130 at 28-03-2011 10:40 pm UTC