cgroups (گروه های کنترل)

خرید بک لینک

گاهی برای انجام کاری نیاز به تمام ظرفیت منبع نداریم. cgroups (گروه های کنترل)، میکانیسمی است که در هسته سیستم عامل لینوکس تعبیه شده و بجای استفاده از کل منبع, میتوان بخشی از ظرفیت منبع را استفاده کرد. به نظر میآید این راهکار باعث کاهش بخشی از بن بستهای بیجای سیستمی میشود.

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

در ابتدا لازم است گروه2 را ایجاد کنیم و محدودیتهای منابع را به این گروه اختصاص دهیم. البته خود برنامه در مورد این محدودیتها هیچ چیزی نمیداند و این اتفاق در خارج از برنامه اتفاق میافتد. برنامه کاربردی فرضی می خواهد، 80% از cpu و 10 گیگا بایت حافظه و 80% از دیسک را بخواند و بنویسد و 80% از پهنای باند شبکه را داشته باشد. توجه داشته باشید، زمانی که گروه ایجاد می کنید، باید (id و یا pidهای) برنامه خود را داخل فایل وظایف اضافه کنید. بنابراین، هر برنامه کاربردی که به این گروه اختصاص داده شود محدودیتهای این چنینی خواهد داشت.

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

مروری بر تاریخچه cgroups:

مهندسان گوگل در سال 2006 تحت عنوان (کانتینر های فرایند) یا همان ظرفیت فرایند، کار خود را در این حوزه آغاز کردند. هدف اولیه آنها ایجاد گروه های کنترل منابع نبوده که امروزه می بینیم. ایده اصلی، بهبود مکانیزم cpuset برای توزیع پردازنده ،زمان و حافظه بین وظایف بوده است. اما در طول زمان، همه چیز به یک پروژه بسیار بزرگ تبدیل شد. در پایان سال 2007، نام کانتینرهای فرایند به گروه های کنترل (cgroups) جایگزین شد تا از سردرگمی ناشی از معنای چندگانه کانتینر در لایه هسته لینوکس جلوگیری شود. و همچنین عملکرد گروه های کنترل در هسته 2.6.24 به هسته اصلی لینوکس ادغام شد و در سال 2008 منتشر شد. اصل تغییرات در موضوع سیستم فایل cgroups بوده است. در سال 2014 توسعه دهندگان ویژگیهای جدید، کنترل کننده های دیگر و سلسله مراتب یکپارچه را اضافه کردند.

cgroups در واقع یک ویژگی از هسته لینوکس است که محدودیت استفاده از منابع (پردازنده، حافظه، disk i/o، شبکه و غیره) را از مجموعه ای از فرایندها، ایزوله می سازد. گروههای کنترل در واقع مجموعه ای از فرایندهای که با معیارهای یکسان، با مجموعه ای از پارامترهای محدود مرتبط هستند. این گروه ها می توانند سلسله مراتبی باشند، به این معنی که هر گروه از گروه والد خود محدودیت می پذیرد.

گروه های کنترل به چند روش می توانند استفاده شوند:

  • با دسترسی به سیستم فایل مجازی cgroup و به روش دستی
  • با ایجاد و مدیریت cgroups به طور مستقیم از طریق cgcreate ،cgexec و cgclassify (از libcgroup)
  • از طریق نرم افزار دیگری که از cgroups استفاده می کنند مانند داکر، مجازی سازی کانتینرهای لینوکس (lxc) توسط libvirt و..
گناهان...

ما را در سایت گناهان دنبال می‌کنید

برچسب: نویسنده: بازدید: 97 تاريخ: چهارشنبه 15 اسفند 1397 ساعت: 12:22

صفحه بندی