QPS(1) General Commands Manual QPS(1)

qps - مدیر بصری پردازه‌ها

qps [ options ]

qps یک ابزار نظارتی است که وضعیت پردازه‌های موجود در حال حاضر را مانند top(1) یا ps(1) نمایش می‌دهد. رابط کاربری آن از جعبه‌ابزار Qt استفاده می‌کند و بیشتر عملیات آن باید تا حد زیادی شهودی و آسان باشد.

فهرست پردازه‌ها بر اساس فیلد برجسته‌شده مرتب می‌شود. برای تغییر آن روی عنوان دیگری کلیک کنید؛ برای معکوس کردن ترتیب مرتب‌سازی، دوباره کلیک کنید. با کشیدن عنوان‌ها می‌توانید ستون‌ها را بازآرایی کنید.

کلیک چپ روی یک پردازه آن را انتخاب یا از حالت انتخاب خارج می‌کند. برای انتخاب چندتایی پردازه‌ها از Shift-click استفاده کنید. شناسه پردازه (PID)های پردازه‌های انتخاب‌شده را می‌توان در برنامه‌های دیگر جای‌گذاری کرد (این گزینه را می‌توان غیرفعال کرد).

دکمه راست موشواره یک منوی زمینه باز می‌کند که برای راحتی کار، برخی از عملکردهای منوی اصلی را تکرار می‌کند. این منو هم روی پردازه‌ها و هم روی سرستون‌ها کار می‌کند.

نگه‌داشتن کلید Control و کلیک کردن در جدول پردازه‌ها، تمام پردازه‌هایی را که دارای مقدار یکسانی در آن ستونِ کلیک‌شده هستند، انتخاب می‌کند. برای نمونه، جهت انتخاب تمام پردازه‌های متعلق به «joshua»، کلید Control را نگه داشته و روی «joshua» کلیک کنید. فشردن هم‌زمان Shift و Control نتیجه مورد انتظار را به همراه خواهد داشت.

در حالت درختی (Tree mode)، روابط والد-فرزندی بین پردازه‌ها با وضوح بیشتری نمایش داده می‌شود. برای نمایش یا پنهان‌سازی کل یک زیردرخت، روی مثلث‌ها کلیک کنید. مرتب‌سازی تنها بر پردازه‌های هم‌سطح تأثیر می‌گذارد؛ ساختار درختی ترتیب کلی را اعمال می‌کند.

برای تغییر اولویت اشتراک زمانی پردازه‌های انتخاب‌شده، اولویت جدید را در کادر گفتگوی Renice... وارد کنید. مقدار جدید nice باید در بازه -20 تا 20 باشد؛ 0 مقدار پیش‌فرض است. عدد بزرگ‌تر به این معنی است که پردازه زمان کمتری از CPU را دریافت می‌کند. تنها مدیر سیستم (superuser) مجاز به کاهش مقدار nice است.

کادر گفتگوی Change Scheduling... به مدیر سیستم اجازه می‌دهد سیاست زمان‌بندی پردازه‌های انتخاب‌شده را (با استفاده از کنترل زمان‌بندی Posix.1b) تغییر دهد. پردازه‌های عادی بر روی SCHED_OTHER تنظیم شده‌اند و اولویت ایستا 0 دارند؛ پردازه‌های بی‌درنگ (soft real-time) دارای سیاست زمان‌بندی SCHED_FIFO یا SCHED_RR بوده و اولویت ایستای آن‌ها در بازه 1 تا 99 است (ببینید: sched_setscheduler(2)). سیستم‌عامل Solaris سیاست‌های زمان‌بندی دیگری نیز دارد، اما در حال حاضر qps اجازه تنظیم آن‌ها را نمی‌دهد.

به‌طور پیش‌فرض، نمایش پردازه‌ها هر ۵ ثانیه به‌روزرسانی می‌شود. برای تغییر آن، دوره زمانی جدید به‌روزرسانی را در کادر گفتگوی Update Period... وارد کنید. واحدهای min، s و ms می‌توانند استفاده شوند (در صورت مشخص نشدن واحد، ثانیه فرض می‌شود). می‌توانید با فشردن کلید فاصله (Space) یا کلیک بر روی دکمه Update یک به‌روزرسانی اجباری انجام دهید. اگر دوره به‌روزرسانی کوتاه یا صفر باشد، qps زمان زیادی از CPU را مصرف خواهد کرد. با این حال، اگر برنامه کوچک‌سازی (کمینه) شود، مقدار بسیار کمی از CPU استفاده خواهد کرد.

فیلد USER شناسه کاربری واقعی (real user ID) را نشان می‌دهد. اگر شناسه کاربری مؤثر (effective user ID) یک پردازه با شناسه کاربری واقعی آن متفاوت باشد، یک علامت مثبت (+) به انتهای نام کاربری اضافه می‌شود؛ و اگر مدیر سیستم باشد، یک علامت ستاره (*) اضافه خواهد شد.

نمایشگرهای بار کاری، CPU، حافظه و swap در نوار وضعیت را می‌توان با کلیک کردن روی آن‌ها، یا از طریق تنظیمات در کادر گفتگوی Preferences... بین حالت گرافیکی و متنی تغییر داد. اعداد بار کاری نمایش‌داده‌شده میانگین تعداد کارها در صف اجرا (run queue) در بازه‌های ۱، ۵ و ۱۵ دقیقه هستند.

اگر فضای آزاد swap از مقدار معینی کمتر شود، نوار swap قرمز رنگ خواهد شد که این مقدار را می‌توان در کادر گفتگوی Preferences... تغییر داد. این عدد می‌تواند بر حسب K، M (مگابایت) یا % (درصد از کل فضای swap) وارد شود. مقدار پیش‌فرض 10% است.

در سامانه‌های چندپردازنده‌ای (SMP) که Solaris 2.6 یا Linux 2.1.x یا جدیدتر را اجرا می‌کنند، آمار CPU در حالت عمودی برای هر پردازنده و در حالت افقی میانگین تمام CPUها نمایش داده می‌شود.

برای نمایش فیلد WCHAN به صورت نمادین، به فایل نمادهای هسته System.map نیاز است. qps آن را در مکان‌های زیر جستجو خواهد کرد:

	/boot/System.map-
RELEASE
	/boot/System.map
	/lib/modules/
RELEASE
/System.map
	/usr/src/linux-
RELEASE
/System.map
	/usr/src/linux/System.map
	/usr/local/src/linux-
RELEASE
/System.map
	/usr/local/src/linux/System.map

که در آن RELEASE شماره انتشار هسته است، برای نمونه «2.0.29». اگر فایل System.map پیدا نشود یا غیرقابل خواندن باشد، در عوض آدرس‌های هگزادسیمال نمایش داده خواهند شد. پیشوندهای «sys_» و «do_» پیش از نمایش از نمادها حذف می‌شوند. در Solaris، در حال حاضر نام‌های نمادین پشتیبانی نمی‌شوند و آدرس‌های هگزادسیمال همیشه نشان داده خواهند شد.

گزینه منوی View Details پنجره‌ای را باز می‌کند که جنبه‌های گوناگون پردازه‌های انتخاب‌شده را نمایش می‌دهد. دوبار کلیک کردن روی یک پردازه نیز همین اثر را دارد. تمامی اطلاعات تنها برای مالک پردازه (و مدیر سیستم) در دسترس است.

جدول Sockets (فقط در لینوکس) سوکت‌های TCP و UDP در حال استفاده را نمایش می‌دهد. اگر گزینه Host Name Lookup در کادر گفتگوی Preferences علامت خورده باشد، برای هر آدرس IP یک جستجوی نام میزبان انجام خواهد شد. این کار توسط یک پردازه پس‌زمینه صورت می‌گیرد اما ممکن است در شرایط دشوار کمی طول بکشد (اما آدرس‌ها پس از یک‌بار جستجو در حافظه نهان ذخیره می‌شوند).

جدول Memory Maps نگاشت‌های حافظه پردازه را نشان می‌دهد. در Linux 2.0.x و Solaris، نام فایل‌ها ارائه نمی‌شود. نگاشت‌های ناشناس (حافظه تخصیص‌یافته‌ای که به یک فایل یا دستگاه پیوند ندارد) با (anonymous) علامت‌گذاری می‌شوند.

جدول Files فایل‌های باز پردازه را نمایش می‌دهد. در Linux 2.0.x، فایل‌ها در قالب [AABB]:inode, ارائه می‌شوند که در آن AA و BB شماره‌های اصلی/فرعی (major/minor) دستگاه در مبنای شانزده هستند.

جدول Environment متغیرهای محیطی پردازه را نشان می‌دهد. توجه داشته باشید که این همان محیطی است که پردازه با آن شروع به کار کرده است، و لزوماً شامل تغییرات پس از آن نمی‌شود. برخی پردازه‌ها که خط فرمان خود را تغییر می‌دهند، به‌ویژه sendmail(8) و ftpd(8)، ممکن است از فضای متغیرهای محیط برای این کار استفاده کنند و در نتیجه اطلاعات نامفهومی در این جدول نمایش داده شود. کلیک کردن روی سرستون‌ها مانند معمول ترتیب مرتب‌سازی را تغییر می‌دهد. (در Solaris، تنها اولین 8K از محیط نمایش داده می‌شود. اگر معلوم شود که این موضوع یک محدودیت است، برطرف خواهد شد.)

گزینه‌های Find Parent و Find Children والد/فرزندان پردازه‌های انتخاب‌شده را انتخاب می‌کنند و جدول را روی نخستین آن‌ها متمرکز می‌نمایند. Find Descendants درخت تمام نوادگان پردازه‌های انتخاب‌شده را انتخاب خواهد کرد.

اگر گزینه Include Child Times در منوی Options انتخاب شده باشد، فیلد TIME مجموع زمان‌های CPU مصرف‌شده توسط پردازه و تمامی فرزندان آن را نمایش می‌دهد.

با باز کردن کادر گفتگوی Edit Commands... می‌توانید دستورهایی را برای اجرا روی پردازه‌های انتخاب‌شده مشخص کنید. بخش «Description» هر دستور همان چیزی است که در منو نمایش داده می‌شود؛ و بخش «Command Line» یک دستور پوسته است (که با /bin/sh اجرا می‌شود). پیش از اینکه دستور به پوسته ارسال شود، جایگزینی‌های زیر انجام می‌گیرد:.TP %p با PID (شناسه فرایند) فرایند انتخاب‌شده

%c
با نام کوتاه دستور فرایند
%C
با خط فرمان کامل فرایند
%u
با نام مالک (واقعی) فرایند
%%
با یک نویسه '%' واقعی.

هر ترکیب دیگری از % + حرف حذف می‌شود. خط فرمان برای هر فرایند انتخاب‌شده یک‌بار اجرا خواهد شد (با ترتیبی نامشخص).

(در اکثر زمینه‌ها معتبر است)

بستن پنجره فعال (به‌جز پنجره اصلی)
خروج از qps.
به‌روزرسانی اجباری جدول‌های نمایش‌داده‌شده.
کمینه‌سازی qps به نمایه (آیکون).

-display display
نمایشگر X را مشخص می‌کند (پیش‌فرض $DISPLAY است)
-geometry geometry
ابعاد و مکان (geometry) پنجره اصلی qps را تنظیم می‌کند
-background color
رنگ پس‌زمینه پیش‌فرض و یک پالت برنامه را تنظیم می‌کند (سایه‌های روشن و تیره محاسبه می‌شوند). این ویژگی در حال حاضر چندان خوب عمل نمی‌کند.
-foreground color
رنگ پیش‌زمینه پیش‌فرض را تنظیم می‌کند. این گزینه نیز کاربرد محدودی دارد.
-title title
عنوان برنامه را تنظیم می‌کند.
-style style
سبک واسط گرافیکی (GUI) برنامه را تنظیم می‌کند. سبک‌های ممکن عبارتند از motif و windows. (در صورت استفاده از Qt 2.x، سبک‌های cde و platinum نیز در دسترس هستند.)
-font font
قلم (فونت) برنامه را مشخص می‌کند
-iconic
برنامه را به‌صورت کمینه‌شده (iconified) اجرا می‌کند.
-version
نسخه qps و کتابخانه Qt را چاپ کرده و خارج می‌شود.
-help
خلاصه‌ای از گزینه‌های خط فرمان را چاپ کرده و خارج می‌شود.

متغیر QPS_COLORS شامل مشخصات رنگ‌ها به‌صورت جفت‌های name:value جداشده با کاما است، که در آن name یکی از موارد زیر است:

cpu-user, cpu-nice (Linux), cpu-sys, cpu-wait (Solaris), cpu-idle, mem-used, mem-buff, mem-cache, mem-free, swap-used, swap-free, swap-warn, load-bg, load-fg, load-lines, selection-bg, selection-fg

مقدار value یک نام رنگ X11 است؛ خواه یک نام نمادین مانند "salmon" یا یک رنگ RGB مانند #c5b769.
/proc شبه‌سیستم‌فایل اطلاعات هسته
$HOME/.qps-settings تنظیمات ذخیره‌شده میان دفعات اجرا
/etc/services نگاشت شماره درگاه به نام سرویس (Linux)
System.map نقشه نمادهای هسته برای WCHAN (Linux)

ps(1), top(1), kill(1), free(1), renice(8), proc(5), sched_setscheduler(2)

Mattias Engdegard (f91-men@nada.kth.se)

نرم‌افزار qps یک نرم‌افزار آزاد است و تحت شرایط مشخصی قابل توزیع مجدد می‌باشد. برای جزئیات، به GNU General Public License مراجعه کنید.

نرم‌افزار qps بیش از حد حجیم و کُند است.

مقدار %CPU در فواصل به‌روزرسانی بسیار کوتاه، به دلیل دانه‌بندی زمانی تایمر دقیق نیست.

فیلد %WCPU هنگامی که qps کمینه (iconified) می‌شود مجدداً محاسبه نمی‌گردد، بنابراین ممکن است پس از بازگرداندن پنجره از حالت کمینه، تنظیم مجدد آن کمی طول بکشد.

اگر فرآیندی در مکانی خارج از موارد موجود در System.map به خواب برود (برای نمونه در یک ماژول هسته)، فیلد WCHAN به جای نام تابع یک نشانی هگز را نمایش می‌دهد. در این حالت نام تابع را می‌توان در /proc/ksyms پیدا کرد، اما در حال حاضر این کار باید به صورت دستی انجام شود.

نشانگر CPU در نوار وضعیت در سیستم‌های SMP دارای Linux 2.0.x، به دلیل وجود یک باگ در هسته اطلاعاتی نامفهوم و بی‌معنی نمایش می‌دهد.

افزودن یا حذف CPUها در زمان اجرا احتمالاً qps را دچار اختلال خواهد کرد.

Sept 30 1999 4th Berkeley Distribution