دفتر محاسبات گیرید با استفاده از محیط های مجازی -- قسمت 2
معرفی
من در روز کار در یک شرکت دسته ای که در آن ما بسیاری از مشاغل را اجرا پردازش میلیونها پرونده داده و هر من شده فکر کردن به به تازگی در مورد همه دستگاه های که می آیند و در اطراف هر یک هر روز انجام می دهند هیچ چیزی برای چند ساعت. آیا سیستم های آن را خوب نمی شود اگر ما استفاده از قدرت می تواند ما را از کسانی که برای تقویت ماشین آلات پردازش؟ در این مجموعه ای از مقالات من قصد دارم به دفتر نگاه بالقوه مزایای استفاده از شبکه با استفاده از محیط های virtualised.
در قسمت 1 خودم رو دادم به کلی از سیستم و فن آوری های من خواهد شد و همچنین با استفاده از بحث برخی از دلایل بالقوه چرا شما می خواهید به دفتر شبکه ایجاد کنید.
فرصت های شغلی کنترل
اگر قصد دارید در حال اجرا شغل سپس شما به نیاز برخی از راه آنها را مدیریت کند. کار سیستم خود را کنترل کنید (بر روی سرور شما کار) باید واقعا به خوبی قبل از حتی اقدام به اجرای شبکه دفتر در نظر داشتند. بنابراین اولا ، چه کارهای را برای یک سیستم کنترل کار :
- دست از کار بر درخواست از کارگران
- ارسال به کارگران چه نوع از مشاغل به اجرا
- شغل آهنگ
- اطمینان از اینکه شغل اداره می شوند تنها یک بار
- فراهم می کند که داده ها به کار کارگران ، یا حداقل به آنها بگویید که در آن به آن را دریافت کند
این سیستم همچنین باید توسعه پذیر ، یک راه حل که با این نسخهها کار در حال حاضر در مورد تنها ممکن است تمدید شود برای اجرای انواع مختلفی از مشاغل به عنوان کسب و کار را می بیند ارزش در راه حل شبکه. به عنوان مثال ، ممکن است اولویت مشاغل کسب ، بیش از یک نوع کار ممکن است وجود داشته باشد (به عنوان مثال کد چندین پایگاه) ، شما حتی ممکن است در نهایت اجرا ماشین های چند کارگر متفاوت است که برای هر نوع کار بهینه سازی شده (هر چند که نمی تواند حرکت دور از 'کارگر عمومی 'ایده). همیشه در مورد آینده فکر می کنم سعی کنید زمانی که سیستم های در حال توسعه ، چشم انداز کوتاه مدت می تواند به سرخوردگی دراز مدت و زمان توسعه افزایش یافته منجر شود.
فرصت های شغلی سرور
ما قصد داریم به جایی نیاز به کنترل کار ما را از این عمل باید سیستم خود را تنها در شبکه است که منابع یاب ثابت ، این باشد که یک آدرس آی پی ، نام میزبان ، آدرس (با استفاده از دی ان اس داخلی) ، و غیره دلیل این است که کارگران نیاز دارند بدانند که در آن به دنبال مشاغل ، کارگران باید برای پیدا کردن کار سیستم های کنترل (و نه کار سیستم کنترل پیدا کارگران).
سرور کار خود را واقعا نمی کرده اند یک کار پیچیده (در هر حال سیستم اصلی) ، به آن نیاز دارد برای ذخیره لیستی از مشاغل ، دست از شغل ، دریافت نتایج ، و سپس آنها را به فروشگاه برای بازیابی شد. چگونه این قطعات ('دست از کار' مانند) تعریف شده می تواند بسیار ساده است. بعدها ما می توانیم سیستم رابط دولت برای اضافه کردن ، ویرایش ، حذف ، به حالت تعلیق در شغل شامل گسترش است اما این فراتر از این ورزش.
هیچ دلیلی وجود ندارد آنچه پس از آن که سرور شما کار نمی تواند یک ماشین مجازی در حال اجرا در سرور اصلی خود را پردازش ارائه آن را نشانی از منابع بسیار زیادی از آن را تخلیه نمی کند. سرور کار می کند با این حال نیاز به در دسترس بودن بالا ، اگر از آن پایین می رود در شب جمعه شما به از دست دادن کل تعطیلات آخر هفته از پردازش ، به طور بالقوه هزینه شما چند هفته به ارزش زمان پردازش (زمانی که به سرور اصلی خود را به تنهایی در مقایسه با پردازش) . شما ممکن است بخواهید در سرور قرار دادن کار خود را در یک محیط متعادل بار برای در دسترس بودن بالا.
راه اندازی مقدماتی
راه اندازی اولیه برای سرور کار ما خواهد شد) شامل چیزی است که من خواستار یک از سرور لنگی من (که لی متر است nux ، ySql ، فسفر پرینتر. کد در حال اجرا در کارگران the در واقع از کار چه کار می توانید با برقراری ارتباط با کار با کنترل پایگاه داده های سیستم اجرا شود. بعدها ما می تواند و ایجاد وب سرویس در واقع دست از شغل به جای داشتن کارگران انجام کار سخت خود ، اما در حال حاضر خواهیم ادامه با استفاده از اصل بوسه (نگه داشتن آن را ساده ، احمق!).
بنابراین ، اجازه می دهد که ایجاد سه خروجی جداول برای مقابله با شغل. این کار خواهد بود `` ، `jobRecords` ، `و` jobResults.
در اینجا من با استفاده از گذاشتن بادی کوچک جایگزین بسیار خوبی برای phpMyAdmin فقط به دلیل آن ساده تر به centOS نصب در (برای دیگران را ببینید : 10 جایگزین های بزرگ به phpMyAdmin )
این جدول شامل 5 زمینه های ساده ،
- شناسه : کار شناسایی منحصر به فرد
- نام : می تواند یک مرجع مشتری ، و یا هر تعداد از شناسه های دیگر
- وضعیت : شما باید بدانید که در آن کار است در ، به عنوان مثال
- 0 : هنوز آغاز شده
- 1 : برداشتم
- 2 : پایان
- started_by : چه کسی آغاز شده انجام کار؟ این است که به طور کامل مورد نیاز نیست اما به خوبی داشته باشد. من می خواهم پیشنهاد ردیابی کارگران از طریق آدرس آی پی خود را در شبکه خود را
- started_at : چه زمانی کارگر شروع به کار؟ با پیگیری کارهایی که باید در مقدار ایکس از هم می دانیم که ما نیاز به بلند کردن کار یک بار دیگر و شروع به پردازش های دیگر کارگر نیست به پایان رسید. کارگران می تواند پردازش / توقف رفتن نیست برای هر تعداد از دلایل ، قطع برق ، تصادف ، از دست دادن شبکه ، و غیره.
بسیار ساده است که چگونه این جدول می تواند با این زمینه چند اضافی برای تمدید آمار ردیابی ، پایان ستون زمان برای دیدن چه مدت کار انجام گرفت ، ضد را ببینید که چگونه بسیاری از کارگران را برداشت کار (بدیهی است که این نیاز به تمایل دارند که اجازه می دهد 1) ، اولویت کار ، لیست می توانید بروید و در را مشاهده کنید. در کار سناریوهای پیچیده تر از آن می توان به مشخص چه مقدار حافظه کارگر را از دسترسی به (و بنابراین تنها استفاده از کارگران مناسب) نیاز دارند ، و یا حتی چه نوع خواهد بود و کارگر مورد نیاز است.
اجازه می دهد که اضافه کردن یک شغل چند مثال :
جدول بعد دوباره کاملا ساده برای درک ، این سوابق کار ما. آنها توسط یک ستون به جدول اصلی مشاغل مرتبط jobs_id ``. را تشکیل می دهند از این جدول بسیار بستگی دارد داده هایی را که شما نیاز دارید که عرضه به کارگران خود ، اجازه می دهد تا یک مثال بسیار ساده است که در آن در حال حاضر چهار ستون :
- شناسه : شناسه از رکورد
- نام : نام شخص
- آدرس ایمیل : این آدرس شخص
- jobs_id : آیدی که این کار به ثبت رسیده است به ارتباط
جدول سوم و نهایی شامل یک جدول نتایج ، آن را به همان شکل جدول را تشکیل می دهند به عنوان سوابق ما ، و با اضافه کردن برخی ستون ها می تواند بخشی از جدول سوابق :
- job_record_id : لینک به نتیجه میز کار
- یافته ها : داده ها منجر
... و این همه شما برای کنترل کار نیاز دارید! (البته در سطح بسیار ابتدایی) در مورد من من خود را به دیگری که در آن جدول داده ها و علاقه من به روند واقع شده بود اشاره کرد ، اما این فقط عنوان شده است به راحتی می تواند یک فایل ، پارامترهایی را برای اجرای کد شبیه سازی ، آن را به شما نام.
انتخاب شغل
همانطور که قبلا ، کارگران را مدیریت کار ما برای ما در حال حاضر برای انجام دهید ، بنابراین همه ما باید واقعا انجام دهیم این است که پیدا کردن یک شغل نیاز به پردازش و دریافت اطلاعات. چگونه این کار می کنیم؟ خوب کار ما انتخاب معیارهای انتخاب و به دنبال شغل ، در گذاشتن من به شرح زیر است :
- نگاهی هر شغل است که با عنوان کامل اما کارگر ما از علامت زده نشده است و تنظیم مجدد آنها (__ME__ جایگزین با شناسه و آسان خواهد بود آدرس آی پی) :
شغل تکمیلی `` `ست وضعیت` = `0 مکانی که در آن وضعیت` = 1 `و` = started_by __ME__ ؛ - ما با استفاده از معیارهای انتخاب شغل ، انتخاب شغل و به سیستم کنترل که که این کارگر است که برخورد با آن :
شغل تکمیلی `` `ست وضعیت` = 1 ، `started_by` = __ME__ ، `=` started_at همین حالا () مکانی که در آن وضعیت `` = 0 یا (`وضعیت` = 1 `و` started_at> DATE_SUB (در حال حاضر () ، یک ساعت فاصله اکس)) سفارش شناسه `` صعودی ؛
با گرفتن کارهای که منجر به مقدار ایکس از هم اطمینان می دهیم که تمام کارها در این رویداد از یک کارگر که توفنده و یا رفتن AWOL اجرا برنگشت.
- بعدی گرفتن اطلاعات مشاغل و پس از آن سوابق خود :
* از انتخاب شغل `` `مکانی که در آن started_by` = __ME__ محدودیت 1 ؛ انتخاب * از job_records `` `مکانی که در آن شناسه` = __JOBID__ ؛
پس از اتمام کار ما قرار دادن سوابق نتیجه ما و مارک کار خود به عنوان کامل است. به یاد داشته باشید می توانید به عنوان شغل به حالت تعلیق / سر در هر زمان اجازه می دهد برای برخی از نیرومندی در اسکریپت شما. ممکن است که کار را متوقف نیمی از راه را از طریق به روز رسانی کار سیستم کنترل ، به طوری چک کردن تعداد رکورد را در شغل و تعداد نتایج بدست آمده به کار کنترل سیستم ذخیره می شود حرکت و حکیم است.
علاوه بر این ، در حالی که این نشان می دهد چگونه می تواند واقعا شغل انتخاب می شود و موفق گذاشتن - از پرس و جوی شما باید قاب چکیده کنترل کار خود را به طوری که اگر شما تصمیم به تغییر سیستم ، به یک وب سرویس با استفاده از پرونده ، بر اساس کاپرفیلد ، و یا دیگر تعدادی از سیستم های آن را به کد در بالای آن تاثیر نمی گذارد.
فرصت های شغلی پیکربندی
جنبه های بعدی در نظر گرفتن حجم کار و تنظیمات است. با بازی با تنظیمات کار ما می توانیم تعادل بین سرعت عالی ، پاسخگویی فرایند و قابلیت اطمینان اعتصاب. نگاهی به زن و شوهر of حالات :
- مشاغل را هر روز 1 برای اجرا : این به این معنی که کارگران شما نیاز به 15 روز تا روند هر شغل (به یاد داشته باشید 10 ٪ از قدرت برای 2/3rds از وقت). این به وضوح پیکربندی عاقلانه نیست ، اندازه شغل شما این است راه خیلی بزرگ! این امر را حداقل دو برابر این زمان را برای یک کار پردازش اولیه باید کارگر برو AWOL (هم انتخاب کنید تا به آن است که در نتیجه به علاوه زمان بازفرآوری بازگردانده نمی شود). در ایده آل شما می خواهم و حداقل یک شغل کامل تیک تاک به آسانی پاک در پایان هر دوره طولانی بیکار ، که راه شما را بیش از مشاغل در بدترین حالت یک کار طول می کشید ، دو روز به روند باید اول بروید گم شده است.
- مشاغل را به 1 دقیقه اجرا کنید : این به این معنی که کارگران خود را در حدود 15 دقیقه هر شغل را اجرا کنند. در حالیکه این ممکن است در ابتدا به نظر می رسد ایده آل ، پردازش کار اضافی به شما سود در طول زمان ناهار ، معافیت های قهوه ها ، جلسات ، و غیره این سناریو فشار قرار می دهد در زمینه های دیگر از سیستم شما مشکلات و معرفی خود را دارد. به عنوان مثال ، در مرحله اول راه اندازی خود را / پردازش زمان می گذرد ، نسبت به حق کردن ، در نتیجه از دست دادن کارایی سیستم. شبکه شما برای رفتن به اطلاعات به طور مداوم به کار کارگران مختلف هیات خسته کننده که دونگ روز خود را به کار روز جریان. شما همچنین رفتن به فشار قرار دادن بیشتر را بر روی سرور پردازش کار خود را تا آن را به ظرف از تعداد بسیار بسیار زیادی از قطعات کوچک از کار را به صورت منظم. در نهایت ، در این وضعیت اگر سرور کار خود را پایین می رود شما قصد ایجاد یک ورود پشت عظیمی از کار uncompleted در حالی که کار می تواند بزرگتر از ادامه پردازش blissfully غافل که سرور کار بود تجربه مشکلات.
در حقیقت وجود نخواهد داشت پیکربندی یک ایده آل برای راه اندازی شبکه خود ، بسیار بستگی به منابع موجود ، نوع شغل فرد ، شغل برگرد الزامات زمان ، قابلیت های شبکه ، و غیره. با این حال برخی از دستورالعمل ها خواهد بود :
- شغل حجم به طوری که هر کارگر می تواند از طریق حداقل 3-4 شغل در یک دوره 15 ساعت (به احتمال زیاد طولانی ترین مدت زمان بیکار) دریافت کنید
- بازی با حجم کار به طوری که زمان راه اندازی می شود نسبتا ناچیز به زمان پردازش (با در نظر گرفتن نقطه در بالا) مقایسه شده است.
- اگر کار می کند در دو کامل نیست مقدار زمانی (شاید کمتر) از شما انتظار آن را به کامل که چیز از دست رفته AWOL فرض آن و شروع به پردازش آن را با دیگر کارگر. این معنی است که شما ممکن است مجبور باشید تا سه بار در طول طبیعی برای آن به کار کامل (احتمالا دیگر اگر پس از آن کار می افتد). شما ممکن است بخواهید این زمان به کاهش دهد ، اما مراقب باشید نه بیش از حد آن را کاهش دهد که شما ممکن است شروع به تکثیر وظایف پردازش را به طور مرتب.
- مشاغل باید مستقل از الزامات خارج تا آنجا که امکان پذیر است. سرور کار ، به عنوان مثال ، تنها باید در شروع و پایان هر کار می شود تماس گرفت.
- آیا اشباع شبکه شما نیست ، این دو اثر منفی داشته باشد ، کارکنان خود را در طول روز را پیدا خواهد کرد با استفاده از شبکه های خسته کننده و مشکل ممکن است با اتصالات از زمان که تنها مشکل بدتر خواهد شد به عنوان شبکه خود را به شما در مقیاس با تجربه.
- شغل اطمینان می توانید بر روی کارگران را اجرا کنید. اگر شغل تبدیل بیش از حد حافظه و یا دیسک فشرده شغل فضای فشرده ساقط شروع خواهد شد و تنها چیزی که شما متوجه شده است افت در تعداد مشاغل پردازش با هیچ دلیل واقعی چرا.
نمایش نتایج : از ارائه فرصت های شغلی
وقتی ارائه نتایج یک کار مهم است که برای بررسی نتایج دیگر کارگر نشده است ارسال شده ، به خصوص اگر کارگر حاضر شده است برای برخی از زمان خواب.
هنگامی که نتایج به دست آمده ارسال شده اطمینان حاصل شود که تعداد نتایج مسابقات تعداد رکورد در کار.
همانطور که پیش از این ، و نه می تواند بیش از تاکید کرد ، ایجاد تحمل خطا کار به بازیابی و ارسال نتایج :. کارگران می تواند (و به احتمال زیاد خواهد شد) رفتن به حالت تعلیق در نامناسب ترین زمان و این باید برای catered. همچنین یک بار دیگر دور چکیده ارسالی شما را کمک خواهد کرد که نتایج : از تهیه کردن برای تغییرات آینده کار خود را به سیستم کنترل بسیار ساده تر برای مقابله با.
خلاصه
در این section ما در چه کار سرور نیاز به انجام کنترل و چگونه می توانید یک سیستم بسیار ابتدایی راه اندازی مراقبت می کند. ما بحث چگونه برای بازیابی یک کار از سیستم های کنترل و بهترین روش برای پیکربندی شغل می توانید از بسیاری از ما سیستم شبکه محل کار شما. را به پایان برساند ، یا دو پاراگراف در ارسال نتایج به سرور کار کنترل ارائه شد.
- شغل مدیریت سرور کنترل شغل و تضمین می کند که تمام واحدهای کار تکمیل شده
- با چکیده کار خود را انتخاب کنید / تسلیم نتیجه ما می توانیم از تکنولوژی کنترل سرور بدون مشکل بسیار تغییر
- شغل پیکربندی خود را برای اطمینان از اینکه آنها به سرعت و کارآمد بدون اعمال فشار بیش از حد در زیرساخت شبکه خود ، و بدون تکثیر وظایف پردازش را به طور منظم اجرا شود.
- اطمینان از اینکه شما ایجاد تحمل خطا و checking خطا به روال عادی خود ، کارگران را می تعلیق و از سر و نامناسب ترین زمان. به یاد داشته باشید اگر برای بررسی نتایج قبلا توسط شخص دیگری کارگر ارسال شده.
دفعه بعد
در بخش 3 خواهیم و ما ایجاد پردازش ماشین مجازی راه اندازی ماشین آلات پنجره های ما برای تبدیل شدن به وقت تلف کردن وقت کارگران است.



















































Heya! مفهوم خوب است ، اما ممکن است واقعا این کار انجام دهید؟