SYSTEMD.SLICE(5) systemd.slice SYSTEMD.SLICE(5)

systemd.slice - پیکربندی واحد برش (Slice)

slice.slice

یک فایل پیکربندی واحد که نام آن به ".slice" ختم می‌شود، اطلاعات مربوط به یک واحد برش (slice unit) را کدگذاری می‌کند. یک واحد برش، مفهومی برای مدیریت سلسله‌مراتبی منابع گروهی از فرایندها است. این مدیریت از طریق ایجاد یک گره در درخت گروه کنترل لینوکس (cgroup) انجام می‌شود. واحدهایی که فرایندها را مدیریت می‌کنند (عمدتاً واحدهای سرویس و scope) ممکن است به یک برش خاص اختصاص داده شوند. برای هر برش، می‌توان محدودیت‌های منبع مشخصی را تعیین کرد که بر تمام فرایندهای تمامی واحدهای موجود در آن برش اعمال می‌شوند. برش‌ها به‌صورت سلسله‌مراتبی در یک درخت سازمان‌دهی می‌شوند. نام برش، مکان آن را در درخت مشخص می‌کند. این نام شامل مجموعه‌ای از نام‌های جداشده با خط تیره است که مسیر رسیدن به برش را از برش ریشه توصیف می‌کند. برش ریشه با نام -.slice نام‌گذاری شده است. مثال: foo-bar.slice برشی است که درون foo.slice قرار دارد، که آن نیز به نوبه خود در برش ریشه -.slice قرار گرفته است.

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

به‌طور پیش‌فرض، واحدهای سرویس و scope در system.slice قرار می‌گیرند، ماشین‌های مجازی و کانتینرهای ثبت‌شده با systemd-machined(8) در machine.slice یافت می‌شوند، و نشست‌های کاربری مدیریت‌شده توسط systemd-logind(8) در user.slice قرار دارند. برای اطلاعات بیشتر systemd.special(7) را ببینید.

برای گزینه‌های مشترک تمامی فایل‌های پیکربندی واحد، systemd.unit(5) را ببینید. موارد پیکربندی مشترک در بخش‌های عمومی [Unit] و [Install] پیکربندی می‌شوند. گزینه‌های پیکربندی مخصوص برش در بخش [Slice] پیکربندی می‌شوند. در حال حاضر، تنها تنظیمات عمومی کنترل منابع که در systemd.resource-control(5) شرح داده شده‌اند، مجاز هستند.

برای آشنایی با نحوه استفاده از واحدهای برش در برنامه‌ها، واسط‌های جدید گروه‌های کنترل (New Control Group Interfaces)[1] را ببینید.

وابستگی‌های زیر به‌طور ضمنی اضافه می‌شوند:

•واحدهای برش به‌طور خودکار وابستگی‌هایی از نوع After= و Requires= را نسبت به واحد برش والد بی‌واسطه خود کسب می‌کنند.

وابستگی‌های زیر اضافه می‌شوند مگر اینکه DefaultDependencies=no تنظیم شده باشد:

•واحدهای برش به‌طور خودکار وابستگی‌هایی از نوع Conflicts= و Before= نسبت به shutdown.target خواهند داشت. این موارد تضمین می‌کنند که واحدهای برش پیش از خاموش شدن سیستم حذف می‌شوند. تنها واحدهای برشی که در مراحل پایانی خاموش شدن سیستم دخیل هستند باید گزینه DefaultDependencies= را غیرفعال کنند.

فایل‌های واحد برش ممکن است شامل بخش‌های [Unit] و [Install] باشند که در systemd.unit(5) توصیف شده‌اند.

فایل‌های برش ممکن است شامل یک بخش [Slice] باشند. بسیاری از گزینه‌هایی که می‌توان در این بخش استفاده کرد، با سایر انواع واحد مشترک هستند. این گزینه‌ها در systemd.resource-control(5) مستند شده‌اند.

گزینه‌های مخصوص بخش [Slice] واحدهای برش به شرح زیر است:

ConcurrencyHardMax=, ConcurrencySoftMax=

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

اگر مقدار ویژه "infinity" مشخص شود، هیچ محدودیت هم‌زمانی اعمال نمی‌شود. این مقدار پیش‌فرض است.

توجه داشته باشید که اگر چندین کار شروع برای واحدها در صف قرار گیرند و تمامی وابستگی‌های آن‌ها برآورده شده باشد، آن‌ها به ترتیبی پردازش خواهند شد که وابسته به نوع واحد، وزن پردازنده (CPU weight برای انواع واحدهایی که این مفهوم را دارند، مانند سرویس‌ها)، سطح nice (مشابه)، و در نهایت به ترتیب حروف الفبای نام واحد است. این مورد می‌تواند برای تأثیرگذاری بر ترتیب اعزام هنگام استفاده از ConcurrencySoftMax= جهت تنظیم آهنگ هم‌زمانی در یک واحد برش استفاده شود.

توجه داشته باشید که این گزینه‌ها اثری سلسله‌مراتبی دارند: محدودیتی که برای یک واحد برش تنظیم می‌شود، هم بر واحدهای بی‌واسطه درون برش و هم بر تمام واحدهای پایین‌تر در درخت برش اعمال خواهد شد. همچنین توجه داشته باشید که هر واحد زیربرش (sub-slice) نیز هر کدام به عنوان یک واحد شمرده می‌شود، بنابراین هنگام انتخاب یک حد مجاز برای یک سلسله‌مراتب برش، این حد باید هم برای واحدهای بار مفید (یعنی سرویس‌ها، سوار کردن‌ها و غیره) و هم برای واحدهای ساختاری (یعنی واحدهای برش)، در صورت تعریف، جا داشته باشد.

در نسخه 258 اضافه شد.

systemd(1), systemd.unit(5), systemd.resource-control(5), systemd.service(5), systemd.scope(5), systemd.special(7), systemd.directives(7)

1.
واسط‌های جدید گروه‌های کنترل (New Control Group Interfaces)
systemd 261.2