محدودکردن مصرف CPU و RAM برنامهها با systemd-run
میخواید یک برنامه تمام CPU یا حافظه سیستم را درگیر نکند؟ با systemd-run میشود همان موقع اجرای برنامه، برای مصرف منابعش سقف گذاشت؛ بدون اینکه سرویس دائمی بسازید.
تهیهشده با کمک هوش مصنوعی از منابع ذکرشده · بازبینی و ویرایش: مهدی طالب لو · سیاست تحریریه

فهرست مطالب5 بخش
در لینوکس میتوانید یک برنامه را با systemd-run در محیطی مدیریتشده اجرا کنید و برای مصرف CPU و حافظه آن سقف بگذارید. این روش برای زمانی کاربرد دارد که میخواهید منابع یک برنامه، مثل فایرفاکس، محدود شود اما قصد ساختن یک سرویس دائمی را ندارید.
#نکات کلیدی
- گزینه
--scopeفرایند را در یک گروه منابع تحت مدیریت systemd اجرا میکند. - ویژگی
MemoryMax=1Gسقف حافظه گروه را روی یک گیگابایت میگذارد. - ویژگی
CPUQuota=50%سهم پردازنده را به ۵۰ درصد یک CPU منطقی محدود میکند. - نام برنامه، در این نمونه
firefox، در انتهای دستور قرار میگیرد. - این محدودیت هنگام اجرای برنامه اعمال میشود و نیازی به ساخت سرویس دائمی ندارد.
#اجرای فایرفاکس با منابع محدود
برای اجرای فایرفاکس با حداکثر یک گیگابایت حافظه و سهم پردازنده معادل ۵۰ درصد یک CPU منطقی، این فرمان را در ترمینال اجرا کنید:
systemd-run --scope \ -p MemoryMax=1G \ -p CPUQuota=50% \ firefox
در این فرمان، systemd-run اجرای برنامه را به systemd میسپارد. گزینه --scope نیز باعث میشود فرایند فایرفاکس داخل یک گروه منابع مدیریتشده قرار بگیرد تا محدودیتهای مشخصشده بر آن اعمال شوند.
اگر به فرمانهای کاربردی لینوکس علاقه دارید، راهنمای پیداکردن فایلهای تازهتغییرکرده با دستور find هم نمونه مرتبط دیگری از کار با ترمینال است.
#هر بخش از دستور چه معنایی دارد؟
پارامترهای این فرمان هرکدام وظیفه مشخصی دارند:
--scope: فرایند را در یک گروه منابع تحت مدیریت systemd اجرا میکند.-p MemoryMax=1G: حداکثر حافظه قابلاستفاده گروه را به یک گیگابایت محدود میکند.-p CPUQuota=50%: حداکثر سهم پردازنده را روی ۵۰ درصد یک CPU منطقی قرار میدهد.firefox: برنامهای است که با این محدودیتها اجرا خواهد شد.
بنابراین شما میتوانید محدودیتها و نام برنامه را در یک فرمان کنار هم قرار دهید. نکته مهم این است که مقدار CPUQuota=50% در این نمونه به معنی ۵۰ درصد از ظرفیت یک CPU منطقی است، نه ۵۰ درصد مجموع تمام پردازندههای منطقی سیستم.
#این روش چه زمانی به کار میآید؟
این فرمان زمانی مفید است که بخواهید برنامهای را مستقیماً اجرا کنید، اما همزمان کنترل مشخصی بر مصرف RAM و CPU آن داشته باشید. چون برنامه در یک محیط مدیریتشده اجرا میشود، محدودیت منابع همراه همان اجرای برنامه اعمال خواهد شد و لازم نیست برای آن یک سرویس دائمی تعریف کنید.
برای مطالب آموزشی بیشتر درباره لینوکس و متنباز میتوانید به آکادمی کندوی دانش و وبسایت حسین سیلانی سر بزنید. آموزشها همچنین از طریق کانال لینوکس در بله در دسترس قرار گرفتهاند.
#جمعبندی
با یک فرمان کوتاه systemd-run میتوانید فایرفاکس را زیر نظر systemd اجرا کنید و برای حافظه و پردازنده آن سقف مشخصی بگذارید. اگر دنبال روشی مستقیم و بدون ساخت سرویس دائمی هستید، این دستور راه سادهای برای مدیریت مصرف منابع برنامه در زمان اجراست.
مطالب مرتبط
برای ادامه مطالعه
این یادداشتها بر اساس موضوع مشترک، همپوشانی برچسبها و تازگی انتشار انتخاب میشوند.
تازهپایش زنده لینوکس؛ بررسی دیسک و اتصالات شبکه با watch
با دو دستور ساده میشه فضای دیسک و وضعیت اتصالات شبکه در لینوکس رو زنده زیر نظر گرفت. خروجی هم هر چند ثانیه خودکار تازه میشه تا تغییرات رو همان لحظه ببینید.

اتصال امن SSH به سرور داخلی با ProxyJump و پرچم -J
وقتی سرور مقصد فقط از طریق یک ماشین واسط در دسترسه، لازم نیست دو بار SSH بزنید یا کلید خصوصیتون رو جابهجا کنید. پرچم -J اتصال مستقیم و انتقال فایل رو خیلی سادهتر میکنه.

دستور find در لینوکس؛ فایلهای تازهتغییرکرده را پیدا کنید
میخواید ببینید در چند دقیقه یا ساعت گذشته کدام فایلهای لینوکس تغییر کردهاند؟ دستور find این کار را بدون نصب ابزار اضافی برایتان انجام میدهد.
دیدگاهها
اولین نفری باش که دیدگاه میذاره