رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
محدود کردن برنامه‌ها در لینوکس
#1
محدود کردن برنامه‌ها در لینوکس

آیا تا به‌‌حال برایتان پیش آمده که یک برنامه خاص (مانند فایرفاکس) را باز کنید و بعد تمام سیستم‌تان بسته شود؟ این موضوع زمانی جدی می‌شود که به‌جای یک کامپیوتر معمولی خانگی، عملکرد اشتباه یک برنامه، تمام منابع پردازنده یک سرور را در اختیار بگیرد و سرور از کار بیفتد؛ در این صورت تمام وب‌سایت‌ها و سرویس‌هایی که در این سرور وجود دارند از کار خواهند افتاد.
برای حل این مشکل، گروهی از برنامه‌نویسان آزاد، برنامه‌ای به‌نام Cpulimit نوشته‌اند که می‌تواند استفاده یک ‌پردازه از پردازنده را محدود کند. مثلا اگر یک برنامه را که از سنگینی آن آگاه نیستید، اجرا کنید یا زمانی که یک برنامه با استفاده محدود، حجم زیادی از پردازنده شما را می‌گیرد، می‌توانید آن را به‌سادگی محدود کنید. از این‌رو اجرای چند برنامه پردازنده‌محور ‌(CPU-Bound) به‌طور همزمان در سیستم به‌سادگی انجام می‌پذیرد.
نکته‌ای که باید به آن توجه کرد این است که این برنامه برای تمام توزیع‌های لینوکس قابل استفاده است، اما در این مقاله، تنها به نصب آن در توزیع محبوب اوبونتو می‌پردازیم.

نصب
در اوبونتو می‌توان cpulimit را از طریق Ubuntu Software Center نصب کرد. کافی است نام آن‌را جستجو کنید. از طریق apt نیز می‌توان با دستور زیر آن را نصب کرد:
sudo apt-get install cpulimit
استفاده
برای این که یک پردازنده را محدود کنیم، از دستور زیر استفاده می‌کنیم:
sudo cpulimit -p PID -l CPU%
که در این دستور، PID شناسه برنامه در حال اجراست و
%CPU عددی است بین صفر تا ۱۰۰ که همان منبع مجاز برای برنامه خواهد بود. می‌توان PID را با رفتن به مسیر زیر به‌دست آورد:
Administration\System Monitor
برای نمونه، اگر برنامه فایرفاکس شما ۶۸ درصد از پردازنده را پیش از اجرای دستور می‌گیرد، می‌توان آن‌را به‌میزان ۲۰درصد تغییر داد.
خودکارسازی روند
استفاده از این برنامه زمانی خود را نشان می‌دهد‌ که برنامه‌ای را که اجرا می‌کنید نیاز به منابع زیادی از سوی پردازنده داشته باشد یا وقتی که باید یک کار دسته‌ای (Batch) انجام دهید. همچنین می‌توان این برنامه را طوری طراحی کرد که برای هر برنامه‌ای که از رفتار عادی خود تجاوز می‌کند، فعال شود. روند خودکار کردن، برای نصب سرور بسیار سودمند است.
نظارت بر روند محدودسازی هر پردازنده‌ای که از حد مجاز تجاوز کند، از طریق یک اسکریپت انجام می‌شود. برای این ‌کار مطمئن شوید که دستور زیر را اجرا کرده‌اید، یا gawk و cpulimit در سیستم‌‌تان از پیش نصب شده است.
sudo apt-get install cpulimit gawk
حالا به نشانی زیر بروید و این اسکریپت را دریافت کنید:
فایل tar را به دایرکتوری Home خود منتقل کرده و آن را از حالت فشرده خارج کنید. باید در فولدر ایجاد شده، دو فایل با نام‌های cpulimit و cpulimit_daemon.sh وجود داشته باشد.
حال فایل cpulimit_daemon.sh را در یک ویرایشگر باز کنید (مثلا gEdit) و سپس مقادیر زیر را تغییر دهید:‌
CPU_LIMIT: بالاترین میزانی که از منابع پردازنده در اختیار هر نرم‌افزار قرار می‌گیرد. مقدار پیش‌فرض ۲۰ درصد است.
DAEMON_INTERVAL:‌ میزان بازه زمانی که این اسکریپت قرار است سیستم را چک کند. مقدار پیش‌فرض ۳ ثانیه تنظیم شده است.
BLACK_PROCESS_LIST: این مقدار فهرست آیتم‌هایی را مشخص می‌کند که می‌خواهید روی آنها نظارت انجام دهید. برای جداسازی ‌پردازه‌های مختلف از کاراکتر (|) استفاده کنید. برای مثال:
mysql|firefox|gedit
WHITE_PROCESS_LIST: این آیتم شامل فهرست آیتم‌هایی است که نمی‌خواهید تحت نظارت قرار بگیرند. در این مقدار نیز همانند مقدار قبلی، با کاراکتر (|) می‌توان برنامه‌ها را از هم جدا کرد.باید توجه داشته باشید که یکی از دو مقدار فهرست سیاه یا فهرست سفید باید خالی باشند، نمی‌توان به‌صورت همزمان هم فهرست سیاه داشت و هم فهرست سفید.
راه‌اندازی
فایل cpulimit_daemon.sh را به مسیر /usr/bin/ بفرستید. برای این کار می‌توانید از دستور زیر در ترمینال استفاده کنید:‌
sudo cp ~/cpulimit/cpulimit_daemon.sh /usr/bin
sudo chmod 700 /usr/bin/cpulimit_daemon.sh
سپس فایل cpulimit را به فولدر /etc/init.d/ فرستاده و سطوح دسترسی صحیح را ایجاد ‌کنید. حال کاری می‌کنیم که با بالا آمدن سیستم اجرا شود. برای سادگی بیشتر، از دستورات زیر استفاده کنید:‌
sudo cp ~/cpulimit/cpulimit /etc/init.d/
sudo chown root:root /etc/init.d/cpulimit
sudo chmod +x /etc/init.d/cpulimit
sudo update-rc.d cpulimit defaults
حالا اگر یک بار سیستم خود را از نو راه‌اندازی کنید، cpulimit به‌صورت خودکار فعال خواهد شد.می‌توانید برای بررسی وضعیت این برنامه، از دستور زیر استفاده کنید:‌
sudo service cpulimit status
و برای این ‌که مطمئن شوید، cpulimit را اجرا کنید (در صورتی که اجرا نشده)، دستور زیر را بنویسید تا برنامه را اجرا کند:‌
sudo service cpulimit start
همچنین برای متوقف کردن آن از دستور زیر استفاده کنید:‌
sudo service cpulimit stop
پاک کردن
برای پاک کردن این اسکریپت، باید مراحل زیر را انجام دهید:‌
۱- متوقف کردن برنامه
sudo service cpulimit stop
2- حذف اسکریپت برای اجرا نشدن هنگام بالا آمدن سیستم
sudo update-rc.d -f cpulimit remove
3- حذف برنامه
sudo rm /etc/init.d/cpulimit
4- حذف اسکریپت به‌طور کامل از سیستم
sudo rm /usr/bin/cpulimit_daemon.sh
5- حذف برنامه cpulimit
sudo apt-get remove cpulimit
6- همچنین اگر استفاده دیگری از برنامه gawk ندارید، آن را نیز می‌توانید حذف کنید:
sudo apt-get remove gawk
مترجم: محمدرضا قربانی

Reference
Knowing is not enough; we must apply. Being willing is not enough; we must do
دانش کافی نیست،باید بکار بست. نیت کافی نیست ،باید عمل کرد.
Albert Einstein
پاسخ
سپاس شده توسط مهرداد عباسی


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Heart آزمایشگاه سیستم عامل با لینوکس digicom 3 6,566 03-22-2015, 10:00 PM
آخرین ارسال: cs.masoudi
  لینوکس دبیان و کارت گرافیک نوت بوک ها LordOrion 1 3,228 02-04-2015, 02:03 PM
آخرین ارسال: LordOrion
Brick مشکل با کم‍پایل کردن برنامه - نصب برنامه ADELI riza 0 2,398 08-05-2013, 10:34 PM
آخرین ارسال: riza
  جستجوی فایل در لینوکس مهرداد عباسی 5 9,725 06-27-2013, 08:41 PM
آخرین ارسال: مهرداد عباسی
  1001 نکته در لینوکس مهرداد عباسی 2 4,752 06-10-2013, 02:57 PM
آخرین ارسال: مهرداد عباسی
  لینوکس یا ویندوز؟؟؟!!؟مسئله این است!!!! شیشه بری 6 10,813 05-03-2013, 12:59 PM
آخرین ارسال: شیشه بری
  اضافه کردن firefox به منوی gnome-shell مهرداد عباسی 0 2,715 11-11-2012, 03:24 PM
آخرین ارسال: مهرداد عباسی
  نحوه مانت کردن درایور مجازی VirtualBox در لینوکس علیرضا حر 0 3,304 08-14-2012, 02:08 PM
آخرین ارسال: علیرضا حر
  اپدیت سیستم عامل بدون بوت کردن علیرضا حر 0 2,941 07-25-2012, 03:00 PM
آخرین ارسال: علیرضا حر
  پاک کردن دسته ای با وجه اشتراک حجم علیرضا حر 0 2,158 06-04-2012, 02:40 AM
آخرین ارسال: علیرضا حر

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان