مشاهده و اولویت بندی پردازش ها در لینوکس

یکی از مهم ترین مهارت ها در سیستم عامل های لینوکسی توانایی کنترل و اولویت بندی و مشاهده پردازش ها می‌باشد که با ابزار های ps و top و nice و renice و kill انجام می‌شود.

لیست پردازش ها

با دستورات زیر, می‌توان لیست پردازش های جاری را دید.

دستور ps

اگر دستور ps را بدون ورودی در خط فرمان اجرا کنید, پردازش های مربوط به «کاربر جاری» و سشن خط فرمان را خواهید دید.

دستور ps aux

این دستور پردازش های مربوط به تمام کاربران را با صرف نظر از سشن خط فرمان یا ارتباط آنها با خط فرمان نشان خواهد داد.

دستور top

top

با فلگ -o می‌توانید ترتیب مرتب سازی را تعیین کنید.

  • by niceness: -o NI
  • by CPU usage: -o %CPU
  • by RAM usage: -o %MEM

دستور htop

گرفتن PID

هر پردازش, دارای یک PID یا process id است؛ سیستم عامل به این طریق پردازش ها را از یکدیگر متمایز می‌کند.

گرفتن آیدی پردازش از روی اسم

برای گرفتن PID یک پردازش با استفاده از اسم آن از دستور pgrep استفاده می‌کنیم.

pgrep PROCESS_NAME

اولویت بندی پردازش ها یا Priority

گاهی بعضی پردازش ها برای ما حیاتی تر هستند، درحالی که شاید بخواهیم دیگر پردازش‌ها در زمان خلوت تری اجرا شوند که منابع سیستم بی استفاده هستند. لینوکس اولیوت پردازش هارا با مقداری به نام niceness کنترل می‌کند.

وقتی دستور top را وارد کنید ستونی به نام NI می‌بینیم که درواقع همان niceness پردازش است.

تغیر اولویت پردازش

برای تغیر اولویت پردازش از دستور nice استفاده می‌شود؛ توجه شود که مقدار NI یا niceness می‌تواند در بازه مثبت ۲۰ تا منفی ۲۰ قرار بگیرد؛ هرچه مقدار NI کمتر باشد, پردازش از اولویت بالاتری برخوردار است.

nice -n value PROCESS_NAME

توجه کنید که این فقط برای برنامه ای که برای اولین بار تنظیم می‌شود جوابگو خواهد بود. برای تغیر مقدار niceness برنامه‌ای که قبلا اجرا شده از دستور زیر استفاده می‌کنیم.

renice value PID

نکته: دستور renice آیدی‌پردازش را به عنوان ورودی می‌گیرد در حالی که nice نام اسکریپت و برنامه را.

comments