| NICELOAD(1) | parallel | NICELOAD(1) |
نام (NAME)
niceload - کند کردن یک برنامه هنگامی که میانگین بار کاری فراتر از حدی معین است
خلاصه دستور (SYNOPSIS)
niceload [-v] [-h] [-n nice] [-I io] [-L load] [-M mem] [-N] [--sensor program] [-t time] [-s time|-f factor] ( command | -p PID [-p PID ...] | --prg program )
توضیحات (DESCRIPTION)
ابزار niceload گنو زمانی که میانگین بار کاری (یا دیگر فعالیتهای سیستم) از حد مشخصی فراتر رود، سرعت اجرای یک برنامه را کاهش میدهد. هنگامی که سیستم به این حد مجاز برسد، برنامه برای مدتی معلق (suspend) میشود؛ سپس مجدداً برای مدتی از سر گرفته خواهد شد (resume). پس از آن میانگین بار کاری دوباره بررسی شده و چرخه از نو آغاز میگردد.
به جای میانگین بار کاری، niceload همچنین میتواند ورودی/خروجی دیسک (I/O)، مقدار حافظه آزاد یا فعالیت سواپ (swapping) را پایش کند.
اگر بار کاری برابر با 3.00 باشد، تنظیمات پیشفرض برنامه را بدینگونه اجرا خواهند کرد:
اجرا به مدت ۱ ثانیه، تعلیق به مدت (3.00-1.00) ثانیه، اجرا به مدت ۱ ثانیه، تعلیق به مدت (3.00-1.00) ثانیه، اجرا به مدت ۱ ثانیه، ...
گزینهها (OPTIONS)
- -B
- --battery
- تعلیق در صورتی که سیستم با باتری کار میکند. این گزینه مخفف عبارت زیر است: -l -1 --sensor 'cat /sys/class/power_supply/BAT0/status /proc/acpi/battery/BAT0/state 2>/dev/null | grep -i -q discharging; echo $?'
- -f FACTOR
- --factor FACTOR
- ضریب زمان تعلیق. مقدار -s را بهطور پویا برابر با «مقدار بیش از حد مجاز * ضریب» تنظیم میکند. پیشفرض 1 است.
- -H
- --hard
- حد سخت. گزینه --hard فرایند را تا زمانی که وضعیت سیستم به زیر محدودیتها بازنگردد معلق نگه میدارد. پیشفرض --soft است.
- --io iolimit
- -I iolimit
- حد مجاز
ورودی/خروجی
(I/O). میزان I/O
دیسک
بهصورت
عددی بین 0
تا 10 محاسبه
میشود، که
در آن 0
نشاندهنده
نبود I/O و 10 به
معنای
اشباع ۱۰۰٪
حداقل یکی
از دیسکها
است.
گزینه --io هم --start-io و هم --run-io را تنظیم خواهد کرد.
- --load loadlimit
- -L loadlimit
- حد مجاز
برای
میانگین
بار کاری (load average).
گزینه --load هم --start-load و هم --run-load را تنظیم خواهد کرد.
- --mem memlimit
- -M memlimit
- حد مجاز
حافظه آزاد.
این مقدار
نشاندهنده
بایتهای
در دسترس به
صورت آزاد +
حافظه موقت
(free + cache) است.
رفتار این
حد برخلاف
سایر
محدودیتهاست:
اگر وضعیت
سیستم
بالاتر از
حد باشد،
برنامه
اجرا
میشود؛
اگر زیر حد
باشد،
برنامه
متوقف
خواهد شد.
مقدار memlimit میتواند پسوندهای K، M، G، T یا P داشته باشد که به ترتیب اندازه را در 1024، 1048576، 1073741824 یا 1099511627776 ضرب میکند.
گزینه --mem هم --start-mem و هم --run-mem را تنظیم خواهد کرد.
- --noswap
- -N
- بدون سواپ.
اگر سیستم
همزمان
عملیات
سواپ به
داخل و خارج
را انجام
دهد، نشانه
بارزی از
فشار شدید
بر حافظه
سیستم است.
اگر سیستم همزمان عملیات سواپ به داخل و خارج انجام دهد، گزینه --noswap فراتر از حد مجاز در نظر گرفته میشود.
گزینه --noswap هم --start-noswap و هم --run-noswap را تنظیم خواهد کرد.
- --net
- مخفف گزینه --nethops 3.
- --nethops h
- اولویت
شبکه (Network nice). در
صورت وجود
بار اضافی
روی اتصال
اینترنت،
برنامه
متوقف
میشود.
ابزار niceload مسیریابی در فاصله h جهش (hop) نزدیکتر به اینترنت را پیدا میکند. سپس هر ثانیه به آن ping میزند. اگر میزان تاخیر بیش از ۵۰٪ بیشتر از میانه باشد، وضعیت فراتر از حد مجاز تلقی میگردد.
گزینه --nethops میتواند با --hard ترکیب شود. بدون --hard ممکن است برنامه آنقدر ترافیک در صف قرار دهد که پاکسازی آن بیشتر از زمان --suspend طول بکشد. گزینه --hard برای ترافیکی مفید است که با تعلیق برای مدت طولانیتر دچار مشکل نمیشود.
گزینه --nethops میتواند با مقدار بالایی از --suspend ترکیب شود. بدین ترتیب برنامه اجازه مییابد گهگاه مقداری ترافیک رد و بدل کند. این کار برای زنده نگهداشتن اتصال مفید است.
- -n niceness
- --nice niceness
- تنظیم مقدار اولویت (niceness). به nice(1) مراجعه کنید.
- -p PID[,PID]
- --pid PID[,PID]
- شناسههای فرایند (PID) مربوط به فرایندهایی که باید معلق شوند. میتوانید چندین شناسه فرایند را با تکرار -p PID یا با جداسازی PIDها با کاما مشخص کنید.
- --prg program
- نام برنامهٔ در حال اجرا برای تعلیق. میتوانید چند برنامه را با تکرار --prg program مشخص کنید. اگر هیچ فرایندی با نام program یافت نشود، niceload زیررشتههای حاوی program را جستوجو خواهد کرد.
- --quote
- -q
- نقلقول کردن (کوتیشنگذاری) خط فرمان. زمانی مفید است که دستور حاوی نویسههایی چون *، $، > و " باشد که نباید توسط پوسته تفسیر شوند.
- --run-io iolimit
- --ri iolimit
- --run-load loadlimit
- --rl loadlimit
- --run-mem memlimit
- --rm memlimit
- حد مجاز هنگام اجرا. اگر بار سیستم بالاتر از این حد باشد، سرعت برنامهٔ در حال اجرا کاهش مییابد. ببینید: --io، --load، --mem، --noswap.
- --sensor sensor program
- خواندن
حسگر. از sensor program
برای
خواندن یک
حسگر
استفاده
کنید.
این دستور دمای پردازنده (CPU) را در GNU/Linux زیر ۸۰ درجهٔ سانتیگراد نگه میدارد:
niceload -l 80000 -f 0.001 --sensor 'sort -n /sys/devices/platform/coretemp*/temp*_input' gzip *
این دستور در صورتی که فضای دیسک کمتر از 100000 باشد متوقف خواهد شد:
niceload -H -l -100000 --sensor "df . | awk '{ print \$4 }'" echo - --start-io iolimit
- --si iolimit
- --start-load loadlimit
- --sl loadlimit
- --start-mem memlimit
- --sm memlimit
- حد مجاز برای شروع. برنامه تا زمانی که بار سیستم به زیر این حد نرسد، آغاز نخواهد شد. ببینید: --io، --load، --mem، --noswap.
- --soft
- -S
- حد ملایم (Soft limit). برنامهٔ niceload یک فرایند را برای مدتی تعلیق کرده و سپس اجازه میدهد برای یک ثانیه اجرا شود؛ بنابراین تنها زمانی که سیستم بالاتر از یکی از حدود دادهشده باشد، سرعت فرایند کاهش مییابد. این رفتار پیشفرض است.
- --suspend SEC
- -s SEC
- زمان تعلیق. با رسیدن به بیشینهٔ میانگین بار (max load average)، دستور را به مدت این تعداد ثانیه به حالت تعلیق درمیآورد.
- --recheck SEC
- -t SEC
- زمان بررسی مجدد بار. پیش از بررسی دوبارهٔ بار سیستم، به مدت SEC ثانیه درنگ میکند. پیشفرض ۱ ثانیه است.
- --verbose
- -v
- پرگو (Verbose). چاپ خروجیهای اضافی دربارهٔ آنچه در حال رخ دادن است. تا زمانی که کاملاً از عملکرد دستور مطمئن نشدهاید، از -v استفاده کنید.
مثال: مشاهده niceload در عمل (EXAMPLE: See niceload in action)
در پایانهٔ ۱ اجرا کنید: top
در پایانهٔ ۲ اجرا کنید:
niceload -q perl -e '$|=1;do{$l==$r or print "."; $l=$r}until(($r=time-$^T)>50)'
این دستور به مدت ۵۰ ثانیه در هر ثانیه یک '.' چاپ کرده و بار پردازشی بالایی روی CPU تحمیل میکند. با رسیدن بار به 1.0، فرایند معلق میشود.
مثال: اجرای updatedb (EXAMPLE: Run updatedb)
اجرای updatedb اغلب میتواند سیستم را دچار کمبود ورودی/خروجی (I/O) دیسک کند و در نتیجه به بار کاری بالایی منجر شود.
اجرای updatedb همراه با تعلیق آن در صورت فراتر رفتن بار سیستم از 2.00:
niceload -L 2 updatedb
مثال: اجرای rsync (EXAMPLE: Run rsync)
rsync نیز دقیقاً مانند updatedb میتواند منابع ورودی/خروجی دیسک را به شدت درگیر کرده و موجب بار کاری بالا شود.
اجرای rsync با حفظ بار سیستم زیر ۳.۴. اگر بار به ۷ برسد، به مدت (7-3.4)*12 ثانیه درنگ میکند:
niceload -L 3.4 -f 12 rsync -Ha /home/ /backup/home/.SH "مثال: اطمینان از کافی بودن حافظهٔ موقت دیسک (EXAMPLE: Ensure enough disk cache)" فرض کنید برنامهٔ foo بهشکلی سنگین از فایلهایی با اندازهٔ ۲ گیگابایت استفاده میکند. foo اگر فایلها در حافظهٔ موقت دیسک (کَش) باشند سریع اجرا خواهد شد، اما اگر در کَش نباشند بهشدت کُند خواهد بود.
برای اطمینان از رزرو ۲ گیگابایت برای حافظهٔ موقت دیسک، دستور زیر را اجرا کنید:
niceload --hard --run-mem 2g foo
این کار تضمین نمیکند که ۲ گیگابایت حافظه حتماً برای فایلهای مربوط به foo استفاده شود، اما در صورتی که حافظه برای کَش دیسک بیش از حد کم شود، اجرای foo را متوقف خواهد کرد.
متغیرهای محیطی (ENVIRONMENT VARIABLES)
هیچکدام. در نسخههای آینده $NICELOAD قادر به نگهداری تنظیمات پیشفرض خواهد بود.
وضعیت خروج (EXIT STATUS)
وضعیت خروج باید همانند وضعیتی باشد که توسط دستورِ در حال اجرا بازگردانده میشود (آزمایشنشده).
گزارش باگها (REPORTING BUGS)
گزارش باگها را به <bug-parallel@gnu.org> بفرستید.
نویسنده (AUTHOR)
Copyright (C) 2004-11-19 Ole Tange, http://ole.tange.dk
Copyright (C) 2005-2010 Ole Tange, http://ole.tange.dk
Copyright (C) 2010-2026 Ole Tange, http://ole.tange.dk and Free Software Foundation, Inc.
مجوز (LICENSE)
این برنامه یک نرمافزار آزاد است؛ شما میتوانید تحت شرایط «پروانهٔ عمومی همگانی گنو» (GNU General Public License) که بنیاد نرمافزارهای آزاد منتشر کرده است، آن را بازتوزیع کرده یا تغییر دهید؛ چه نسخهٔ ۳ پروانه و چه (به انتخاب خودتان) هر نسخهٔ متأخر دیگری.
این برنامه با این امید که مفید واقع شود توزیع شده است، اما بدون هیچگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف مشخص. برای جزئیات بیشتر «پروانهٔ عمومی همگانی گنو» را مطالعه کنید.
شما باید به همراه این برنامه یک نسخه از پروانهٔ عمومی همگانی گنو را دریافت کرده باشید. در غیر این صورت، به http://www.gnu.org/licenses مراجعه کنید.
مجوز مستندات ۱ (Documentation license I)
اجازهٔ تکثیر، توزیع و/یا تغییر این مستندات تحت شرایط «مجوز مستندات آزاد گنو» (GNU Free Documentation License)، نسخهٔ ۱.۳ یا هر نسخهٔ متأخر دیگری که بنیاد نرمافزارهای آزاد منتشر کرده، صادر شده است؛ بدون بخشهای تغییرناپذیر، بدون متنهای روی جلد و بدون متنهای پشت جلد. یک نسخه از این مجوز در فایل LICENSES/GFDL-1.3-or-later.txt گنجانده شده است.
مجوز مستندات ۲ (Documentation license II)
شما مجاز هستید:
- اشتراکگذاری (to Share)
- به تکثیر، توزیع و انتقال اثر
- بازآفرینی (to Remix)
- به تطبیق و ایجاد اثر اقتباسی
تحت شرایط زیر:
- انتساب (Attribution)
- باید به شیوهای که توسط پدیدآورنده یا اعطاکنندهٔ مجوز مشخص شده است، اثر را انتساب دهید (اما نه به هیچ شیوهای که نشان دهد آنها شما یا استفادهتان از اثر را تأیید میکنند).
- اشتراک مساوی (Share Alike)
- اگر این اثر را تغییر دهید، دگرگون کنید، یا بر پایهٔ آن اثری بسازید، مجاز هستید اثر حاصل را تنها تحت همان مجوز، مجوزی مشابه یا سازگار با آن توزیع کنید.
با این تفهیم که:
- چشمپوشی (Waiver)
- در صورت دریافت اجازه از صاحب حق نشر، هر یک از شرایط فوق میتواند نادیده گرفته شود.
- مالکیت عمومی (Public Domain)
- در مواردی که اثر یا هر یک از بخشهای آن طبق قوانین حاکم در مالکیت عمومی قرار داشته باشد، این وضعیت به هیچ وجه تحت تأثیر این پروانه قرار نمیگیرد.
- سایر حقوق (Other Rights)
- حقوق زیر به هیچ وجه تحت تأثیر این مجوز قرار نخواهند گرفت:
- حقوق استفادهٔ منصفانه (fair use) یا معاملهٔ منصفانهٔ شما، یا سایر استثناها و محدودیتهای قانونی حق نشر؛
- حقوق معنوی پدیدآورنده؛
- حقوقی که اشخاص دیگر ممکن است در خود اثر یا در نحوهٔ استفاده از آن داشته باشند، مانند حقوق تبلیغات یا حریم خصوصی.
- اطلاعیه (Notice)
- برای هرگونه استفادهٔ مجدد یا توزیع، باید شرایط مجوز این اثر را برای دیگران شفاف کنید.
یک رونوشت از متن کامل مجوز در فایل LICENCES/CC-BY-SA-4.0.txt موجود است.
وابستگیها (DEPENDENCIES)
ابزار GNU niceload از Perl و ماژولهای پرلِ POSIX و Getopt::Long استفاده میکند.
همچنین ببینید (SEE ALSO)
| 2026-07-25 | 20260722 |