اگر شما از لینوکس به عنوان سرور و یا حتی سیستم شخصی خود استفاده میکنید یکی از دستورات بسیار پرکاربرد و دم دستی شما برای مانیتور کردن پردازش ها و پروسه ها دستور top میباشد. این ابزار امکانات زیادی را برای شما فراهم می آورد. ما در این آموزش قصد داریم تعدادی از این کاربرد ها را با شما عزیزان مرور کنیم. این ابزار به طور پیش فرض در تمامی توزیع های لینوکس وجود دارد و نیازی به نصب بسته آن نیست.
بهتر است بخوانید:
نمایش پروسه ها
برای این کار کافیست در ترمینال دستور top را وارد کنید تا خروجی مشابه زیر را جهت نمایش پروسه ها مشاهده کنید.
1 |
# top |
صفحه ای که برای شما نمایان میشود دارای پارامترهای زیادی میباشد. در خط اول هدر خروجی دستور، برای شما آپ تایم سرور (از بعد از آخرین ری استارت) را نمایش میدهد. پارامتر بعدی تحت عنوان load average میباشد. همچنین شما در ادامه میتوانید به میزان memory و cpu خود نظارت داشته باشید.
بخش بعدی که به صورت چندین ستون در نظر گرفته شده است دارای ستون های شاخصی به صورت زیر میباشد:
- PID: شماره آی دی پروسه
- USER: نام کاربری که عامل بوجود آمده پروسه می باشد
- CPU%: میزان cpu مصرفی توسط پروسه
- MEM%: میزان رم مصرفی توسط پروسه
- COMMAND: دستور یا فایل اجرایی که موجب بوجود آمدن پروسه شده است
مرتب سازی پروسه ها بر حسب Memory/Cpu/Process ID/Running Time
شما میتوانید پروسه های مورد نظر خود را بر حسب رم، سی پی یو، شماره آی دی پروسه و یا مدت زمان اچرای پروسه مرتب کنید. در ادامه کلید هایی برای مرتب سازی معرفی میشود که همگی با حروف بزرگ میباشند:
- M: مرتب سازی پروسه ها بر اساس بیشترین ram اشغال شده
- P: مرتب سازی پروسه ها بر اساس بیشترین cpu مصرفی
- N: مرتب سازی پروسه ها بر اساس شماره ID
- T: مرتب سازی پروسه ها بر اساس مدت زمان اجرای پروسه یا Running Time
نمایش مرتب سازی معکوس پروسه ها
به صورت پیش فرض اگر شما یکی از کلید های مرتب سازی بعنوان مثال بر اساس memory را انتخاب کنید، پروسه ها بر اساس الگوی بیشترین به کمترین از بالا به پایین به شما نمایش داده میشود. حال با استفاده از کلید ‘R’ (حرف بزرگ) شما میتوانید نمایش پروسه ها را بر اساس الگوی کمترین به بیشترین و از بالا به پایین مشاهده نمائید.
بولد کردن ستونی خاص
به طور مثال اگر شما بخواهید مرتب سازی را بر اساس cpu انجام دهید بعد از وارد کردن حرف ‘P’ (حرف بزرگ) اگر از حرف کوچک ‘x’ (حرف کوچک) استفاده نمائید ستونه مربوطه برای شما به صورت بولد به نمایش در می آید.
همچنین اگر به جای استفاده از حرف x از حرف ‘b’ (حرف کوچک) استفاده کنید پس زمینه ستونه مربوطه برای شما با رنگی دیگر قابل تفکیک خواهد بود.
تغییر زمان به روز رسانی خروجی
شما میتوانید مدت زمان به روز رسانی خروجی ها را متناسب با آن چیزی که نیاز دارید تغییر بدهید. این کار با فشردن کلید ‘d’ (حرف کوچک) ممکن خواهد بود. این مقدار به صورت پیش فرض ۳ ثانیه بوده و شما میتوانید آن را به هر زمانی که نیاز دارید تغییر بدهید. با وارد کردن حرف d عبارتی به صورت زیر برای شما به نمایش در می آید که با وارد کردن زمان مورد نظر و فشردن کلید اینتر میتوانید آن را به زمان دلخواهد خود تغییر بدهید:
1 |
Change delay from 3.0 to |
فرض کنید زمان به روز رسانی را ۱۰ ثانیه قرار داده اید ولی میخواهد در لحظه ای خاص آن را قبل از ۱۰ ثانیه به روز کنید. در این شرایط با هر بار زدن کلید ‘۰’ (عدد صفر) میتوانید فارغ از زمانی که تعیین کرده اید خروجی را به روز رسانی کنید.
فیلتر و جست و جو
یکی از امکانات این دستور جهت مدیریت بهتر پروسه ها استفاده از ویژگی فیلتر و یا جست و جو می باشد. شما با وارد کردن کلید ‘o’ (میتواند حرف کوچک یا بزرگ باشد) میتوانید این کار را انجام دهید. بعد از فشردن کلید o عبارت زیر برای شما به نمایش در می آید:
1 |
add filter #1 (ignoring case) as: [!]FLD?VAL |
حال شما می بایست به صورت زیر فیلد جست و جو را وارد کنید:
1 2 3 4 5 |
USER=root OR COMMAND=apache |
در خروجی عبارت اول همه پروسه هایی که توسط کاربر root ایجاد شده است به نمایش در می آید و در خروجی عبارت دوم همه پروسه هایی که توسط دستورات مربوط به apache ایجاد شده اند نمایش داده میشوند.
همچنین در صورتی که میخواهید جست و جوی دقیق از منابع مربوط به cpu خود داشته باشید میتوانید از الگوی زیر پیروی کنید:
1 |
%CPU>1.0 |
با وارد کردن الگوی بالا تمامی پروسه هایی که منابع مصرفی cpu آن ها بیش از عدد ۱٫۰ میباشد برای شما به نمایش در می آیند.
در صورتی که میخواهید ببینید در حال حاضر دقیقا از چه فیلتری استفاده کرده اید و چه جیزی برای شما به نمایش در می آید از کلید های Cntrl + o استفاده کنید:
1 |
'USER=root' + '%CPU>1.0' |
بعنوان مثال در بالا ملاحظه میکنید که پروسه هایی برای ما به نمایش در می آید که نام کاربری آن ها root و میزان cpu مصرفی آن ها بیش از ۱٫۰ باشد.
اگر شما میخواهید فیلتر استفاده شده را از بین ببرید و خروجی های طبیعی را دریافت کنید کافیست از کلید ‘=’ استفاده نمائید.
نمایش کامل دستورهای اجرایی که موجب ایجاد پروسه ها میشوند
شما میتوانید از کلید ‘c’ (حرف کوچک) جهت نمایش کامل نام دستوری که پروسه را ایجاد کرده است استفاده کنید.
بعد از زدن کلید c ممکن است برای نمایش کامل نام دستور فضای کمی داشته باشید. در این صورت انتهای هر دستور با حرف ‘+’ نمایش داده شده است که برای دیدن کامل دستور کافیست کلید جهت راست در صفحه کلید خود استفاده کنید:
در صورت استفاده از جهت راست در صفحه کلید میتوانید ادامه دستور استفاده شده را تا انتها ملاحظه کنید.
دیدن پروسه های ایجاد شده توسط کاربری خاص
شما میتوانید از کلید ‘u’ (حرف کوچک یا بزرگ) برای نمایش پروسه های ایجاد شده توسط کاربری خاص استفاده کنید. بعد از وارد کردن کلید u عبارت زیر برای شما به نمایش در می آید که با نوشتن عبارت root جلوی آن میتوانید همه پروسه های ایجاد شده توسط یوزر root را ببینید:
1 |
Which user (blank for all) |
همچنین اگر مقدار آن را خالی بگذارید و اینتر کنید پروسه های ایجاد شده توسط همه یوزرها به شما نمایش در می آید.
مخفی سازی اطلاعات هدر در بالای خروجی
- کلید l: حرف l کوچک موجب حذف اطلاعات مربوط به load average در هدر میشود
- کلید m: حرف m کوچک موحب حذف اطلاعات مربوط به memory در هدر میشود
- کلید t: حرف t موچک موجب حذف اطلاعات مروبط به task ها در هدر میشود
نمایش حالت جنگل در خروجی
شما با استفاده از کلید ‘V’ (حرف بزرگ) میتوانید به صورت پدر و فزرندی پروسه ها را مشاهده کنید.
نمایش تعداد پروسه مشخص در خروجی
ممکن است شما بخواهید ده پروسه از همه پروسه های سیستم خود را ببینید. برای این کار از کلید ‘n’ (حرف کوچک) استفاده کنید. بعد از استفاده از این کلید عبارت زیر برای شما به نمایش در می آید:
1 |
Maximum tasks = 10, change to (0 is unlimited) |
با وارد کردن مقدار صفر تعداد بی نهایت خواهد بود. اما اگر به طور مثال عدد ۵ را وارد کنید تنها ۵ پروسه برای شما به نمایش در می آید. همچنین اگر از ویژگی های مرتب سازی که در همین آموزش به شما گفته شد استفاده کنید میتوانید به طور مثال ۵ پروسه ای که بیشترین منابع memory را اشغال کرده اند را ببینید.
نمایش همه cpu های سیستم
برای نمایش همه cpu های موجود در سیستم شما کافیست عدد ‘۱’ را وارد کنید. در این صورت تمامی cpu ها در بخش هدر خروجی در بالا برای شما به نمایش در می آیند.
نمایش یا مخفی سازی فیلدهای دلخواه
اگر شما از کلید ‘f’ (حرف کوچک) استفاده کنید صفحه ای به صورت زیر برای شما باز میشود که کنار برخی فیلدها علامت ‘*’ یا ستاره دیده میشود. این ها همان فیلدهایی هستند که برای شما هنگام استفاده از دستور top قابل مشاهده هستند. شما میتوانید با کلید های بالا و پایین سراغ فیلدهای دیگر رفته و با کلید space یا d(حرف کوچک) در صفحه کلید خود آن ها را جهت نمایش یا عدم نمایش انتخاب کنید.
استفاده از حالت batch
شما میتوانید در ترمینال ماشین خود نیز از دستور top خروجی های مد نظرتان را بگیرید. برای این کار باید از سوئیچ ‘b-‘ استفاده کنید. و به صورت تلفیقی از سوئیچ های دیگر برای دریافت خروجی مورد نظرتان استفاده کنید. بعنوان مثال ما برای اینکه خروجی را هر یک ثانیه دریافت کنیم از سوئچ ‘d-‘ نیز به صورت زیر استفاده میکنیم.
1 2 3 4 5 6 7 8 |
# top -d 1.0 -b | grep Cpu %Cpu(s): 9.0 us, 2.4 sy, 0.0 ni, 87.2 id, 1.4 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu(s): 5.0 us, 1.5 sy, 0.0 ni, 93.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu(s): 4.5 us, 1.7 sy, 0.0 ni, 93.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu(s): 3.7 us, 2.0 sy, 0.0 ni, 93.0 id, 1.2 wa, 0.0 hi, 0.0 si, 0.0 st |
از بین بردن یک پروسه
شما میتوانید با استفاده از کلید ‘k’ (حرف کوچک) اقدام به از بین بردن پردازش های مورد نظر خود بکنید. با وارد کردن این کلید عبارت زیر برای شما به نمایش در می آید و کافیست شماره پردازش مورد نظر خود را جلوی آن تایپ کنید:
1 |
PID to signal/kill [default pid = 7313] |
شماره هر پردازش در ستون PID نوشته شده است.
خروج خودکار از برنامه با نمایش تعداد پروسه های دلخواه
اگر میخواهید به تعداد مشخصی از بروز رسانی های خروجی دستور top استفاده کنید کافیست به صورت زیر و با استفاده از سوئیچ n- این کار را انجام دهید. عدد ۳ بیانگر سه بار به زور رسانی دستور top میباشد.
1 |
# top -n 3 |
تغییر اولویت هر پروسه
این کار به nice و renice نیز مشهور است. برای این کار کلید ‘r’ (حرف کوچک) را وارد کرده و شماره پردازش یا PID مورد نظر خود را وارد کنید و اینتر بزنید. در نهایت شماره اولویت مورد نظر خود را وارد کنید. با وارد کردن کلید r عبارت زیر برای شما به نمایش در می آید:
1 |
PID to renice [default pid = 7916] |
در این مرحله شماره PID مورد نظر را تایپ و اینتر کنید. سپس عبارت زیر برای شما به نمایش در می آید:
1 |
Renice PID 7916 to value |
در اینجا کافیست شماره اولویت خود را وارد کنید تا اولویت بندی پردازش های شما انجام بگیرد.
ذخیره خروجی دستور top
شما با استفاده از تکنیک های قابل استفاده در شل لینوکس میتوانید خروجی دستور top را در فایل مورد نظر خود ذخیره کنید. برای این کار کافیست به صورت زیر عمل نمائید:
1 |
# top -n 1 > top-output-txt |
حال اگر به محتوای فایل top-output-txt نگاهی بیندازید خروجی دستور را در آن میبینید.
ذخیره تنظیمات اعمال شده دستور top
گاهی اوقات شما میخواهید کانفیگ خاصی که در نحوه نمایش خروجی های دستور top اعمال کرده اید را برای خود حفظ کنید. بعنوان مثال در محیط برنامه کلید n را زده اید و مقدار ۵ را به آن داده اید. همچنین کلید d را زده اید و مقدار ۱۰ را به آن جهت به روز رسانی پروسه ها به ازای هر ده ثانیه داده اید. حال میخواهد از برنامه خارج شوید و هر گاه وارد آن شدید مجددا همان تنظیمات برای شما اعمال شود. برای این کار کافیست از کلید ‘W’ (حرف بزرگ) استفاده کنید. در صورت استفاده از این کلید تنظیمات برنامه در مسیر زیر برای شما ذخیره میشود و بعد از اجرای مجدد، برنامه با همان کانفیگ برای شما باز میشود:
1 |
~/.toprc |
حال اگر میخواهید به حالت اولیه باز گردید این کار با کلید ‘=’ امکان پذیر است. وارد برنامه شده کلید = را بفشارید و سپس کلید W را جهت ذخیره تغییرات بزنید. در این حالت کانفیگ به حالت قبل بازگشته و ذخیره شده است و با وارد شدن مجدد به برنامه همان کانفیگ پیش فرض برای شما به نمایش در می آید.