ابزار top یکی از ابزار پیش فرض در لینوکس است. ابتدا اجازه دهید تا درک کنیم خروجی ابزار Top به ما چه می گوید. دستور Top اطلاعات زیادی در مورد سیستم عامل در حال اجرا در اختیار ما قرار می دهد اما باید بخش های مختلف این خروجی را درک کنیم تا بتوانیم سرور اختصاصی یا سرور مجازی خود را به درستی مدیریت نمایم.
برای مثال دستور زیر را در ترمینال خود اجرا کنید
Top
با اجرای این دستور خروجی شبیه زیر دریافت می کنید .
در ابتدا در 5 سطر اول خلاصه ای از سرور ارائه شده است و سپس در ادامه ی آنها پروسس ها با ستون های مختلف نشان داده شده اند. به طورپیش فرض دستور top برخی از ویژگی های مرتبط با پروسس ها را در گزارشات خود نشان می دهد بنابراین برای درک چگونگی عملکرد دستور top باید نقش هر ستون را بدانیم که در کجا استفاده خواهد شد.
PID : این ستون شماره پردازش موردنظر را نشان می دهد هر پروسس یا پردازش با یک شماره منحصر بفرد شناسایی می شود.
USER: نام کاربر ثبت کننده پروسس را نشان می دهد. با استفاده ازاین ستون متوجه خواهید شد چه کاربری هر پروسس را اجرا نموده است. (به شناسایی دقیق پروسس های ایجاد شده توسط یک کاربر خاص کمک می کند.)
PR : میزان اولویت اجرای هر پروسس را مشخص می کند. برای پروسس هایی که در زمان واقعی باید اجرا شوند این مقدار برابر RT است و پردازش های معمولی با مقدار 20 یا خنثی مقدار دهی می شوند.
NI : میزان Nice بودن یک پروسس را نشان می دهد nice درواقع میزان اهمیت اجرایی یک پروسس است این مقدار بین 19 تا -20 مقدار دهی می شوند و هر چقدر عدد منفی بزرگتر باشد پروسس جهت اجرا از منابع بیشتری اجازه استفاده را دارد و هر چقدر به 19 نزدیکتر باشد پروسس مهربان تر است و از منابع کمتری جهت اجرا استفاده خواهد نمود.
رابطه بین NI و PR با فرمول زیر نشان داده می شود .
PR=20+NI
VIRT: مقدار حافظه مجازی مورد استفاده توسط پروسس را نشان می دهد.
RES : میزان حافظه فیزیکی استفاده شده توسط پروسس را نشان می دهد این میزان با MEM% برابر است و همیشه این مقدار از VIRT کمتر می باشد.
SHR: مقدار حافظه اشتراکی مورد استفاده یک فرایند را نشان می دهد در واقع نشان می دهد چه مقدار از VIRT قابل تغییر است و مربوط به حافظه کتابخانه های مورد استفاده است.
S : وضعیت یک فرایند را نشان می دهد وضعیت ها با یکی از کلید های زیر نشان داده خواهند شد.
- D : خواب بدون وقفه ، معمولا زمانی که فرایند منتظر دیسک است مشاهده می شود ( نمی توانید با سیگنال این فرایند را متوقف نماید)
- R: در حال اجرا ، این فرایند آماده اجرا است و هر زمان نوبت استفاده از Cpu را داشته باشد اجرا خواهد شد.
- S یا sleep : خواب وضعیتی است که فرایند منتظر رویداد یا اتفاقی می توان آن را با سیگنالی قطع کرد.
- Stop یا T-traced این وضعیتی است که فرایند متوقف می شود معمولا از طریق SIG Stop یا SIG stp توقف ایجاد می شود یا توسط یک دیباگ توقف ایجاد می شود و یا توسط CTRL+Z فرایند در بک گراند اجرا خواهد شد.
- Z-zombie : حالتی است که فرایند مرده است(اجرای آن به پایان رسیده) و تنها چیزی که باقی مانده است ساختاری است که آن را در کرنل توصیف می کند. این فرایند منتظر است تا فرایند والدین خود کد خروجی خود را دریافت کنند و پس از اتمام مراحل فرایند والدین این فرایند نیز ناپدید خواهد شد.
%CPU : در صد استفاده از cpu توسط این فرایند را مشخص می کند. در سیستم های چند پردازنده ای این مقدار می تواند از 100 % بیشتر باشد به طور پیش فرض ابزار Top این مقدار را به عنوان درصدی از یک cpu واحد نمایش می دهد.
%MEM : درصد استفاده از حافظه فیزیکی توسط یک فرایند را نشان می دهد (میزان RAM مورد استفاده)
TIME : کل زمان اجرای یک فرایند را تا این لحظه نشان می دهد این زمان بسیار دقیق است تا صدم ثانیه را نیز محاسبه می کند.
Command : دستوری که برای شروع فرایند از آن استفاده شده است برای مثال دستور top ،البته اطلاعات تکمیلی دیگری نیز وجود دارد که در این دستور نشان داده نشده است ماننده صفحه خطا یا group id و غیره .
5 سطراول پس از اجرای دستورTop چه اطلاعاتی را در اختیار ما قرار می دهد ؟
1- زمان بالا بودن یا uptime بودن و میانگین بار سرور :
زمانی که دستور top اجرا می شود خط اول خروجی این دستور شبیه زیر می باشد
این خط قسمت های اطلاعاتی زیر را نشان می دهد.
- زمان فعلی سیستم
- زمان uptime سرور
- تعداد کاربران لاگین به سرور
- میانگین بار سرور در 5 ، 10 ، 15 دقیقه قبل
2- Tasks :
خط دوم خلاصه ای از کارها یا فرایندهای را نشان می دهد فرایند ها می توانند در حالت های مختلفنی همان طور که در ستون s دیدیم قرار گیرند .
3- Cpu :
خط سوم آمار مربوط به میزان مصرف cpu را نشان می دهد.
معنای زمان های مختلف cpu عبارتند از :
Us , user : این نشان می دهد پردازنده چقدر از وقت خود را صرف پردازش های فضای کاربری می کند یک برنامه فضای کاربری هر برنامه ای است که به کرنل تعلق نداشته باشد.
Sy.system : مقداری است که cpu برای اجرای کرنل و پروسس های سیستم صرف می کند.
Ni.niced : مقداری است که cpu صرف احرای فرایندهای nice می کند و در سیستمی که به هیچ فرایندی توجه نشده است این مقدار صفر است .
Id .idle : میزان cpu استفاده نشده را نشان می دهد این مربوط به آخرین زمان گزارش گیری است.
Wa . io wait : منتظر دریافت یک عملیات i/o بیکارمانده اند.
Hi: مدت زمانی که cpu صرف وقفه های سخت افزاری کرده است را به درصد بیان می کند.
Si : مدت زمانی که cpu صرفه وقفه های نرم افزاری کرده است را به درصد بیان می کند.
St : این شماره آخر فقط مربوط به ماشین های مجازی است هنگامی که لینوکس به عنوان یک ماشین مجازی در hypervisor فعالیت می کند. آمار st مدت زمانی که cpu مجازی که منتظربرای استفاده از hypervisor برای استفاده یک سرویس پردازنده مجازی دریک ماشین مجازی دیگر است را نشان می دهد.
4- Memory usage :
دو خط آخر به ترتیب نشان دهنده ی خلاصه حافظه فیزیکی RAM و Swap است در این دو مورد حافظه کل در حال استفاده، حافظه آزاد، بافر کش نشان داده می شوند. مقادیر با توجه به میزان حافظه فیزیکی نصب شده به صورت mib و kib و GIB مخفف مگا، کیلو و گیگا بایت نشان داده می شود.
حال که توانستید خروجی دستور Top را درک کنید می توانید در مانیتور سرور مجازی و یا سرور اختصاصی خود از آن به خوبی استفاده کنید در مقالات بعدی سعی خواهد شد این ابزار مفید بیشتر آموزش داده شود .