رفتن به نوشته‌ها

به htop لعنتی نیازی نداری! با top هم میشه!!

می‌دونم بیشتر شما مثل من از htop استفاده می‌کنید. یا معادل‌های اون مثل bashtop و glances اما چیزی که نظرم رو جلب کرد، نصب بودن top (به صورت پیشفرض) روی اکثر سرورهاست. امروز بیاید ببینیم داستان top چیه؟!

to install or not install htop 🙂

ببین من دبینی‌ام!

یعنی از توزیع و سرورهای دبین‌بیس خوشم میاد مثل Debian, Ubuntu, Kali و Deepin اون هم با دسکتاپ DKE در حال حاظر روی PC ام توزیع Kali KDE دارم تو شرکت Debian 11 KDE. در کل از RedHat بیس‌ها خوشم نمیاد مثل RHEL, CentOS, AlmaLinux و Rocky Linux. می دونم،‌ می دونم این‌ها برای سرور خوبن. عزیزِ سیس‌ادمین یا آقا/خانم مشتاق گنو/لینوکس، این دسته از توزیع‌ها SeLinux که خودتون می‌دونید دارند و یا مثلا سطح‌دسترسی برای کاربرها رو نگاه

سطوح دسترسی در centos

اگر توسعه‌دهنده بخواهد بیاد روی سرور، کار سخت میشه! ولی نقطه مشترک تمام این توزیع ها، چه سرور و چه GUI داشتن برنامه top روی آنهاست.

بگذریم اصلا بحث ما این نبود! من می خواستم از top براتون بگم. دستور top همه جا هست و همون‌طور که گفتم حتی در کانتینرها

حتی ایمیج های داکر centos 7 و ubuntu!
عکس دستور top در کانتینر centos

کار top،

نمایش اطلاعاتی (درلحظه) از وضعیت سیستم گنو/لینوکسی مون هست. بالای صفحه خلاصه اطلاعات و در پایین هر پردازه به تفکیک نمایش داده میشه و البته بر اساس وضعیت RAM یا CPU و.. میشه مرتب‌شون کرد.

خوب حالا ترمینال هاتون رو باز کنید، می خواهم، ازتون می خواهم یه top بزنید تا با هم برسی کنیم چی به چیه!

اولین خط نشون میده که چه مقدار سیستم روشن بوده و یا الان چند وقت هست لاگین هستید (می تونید دستور uptime رو هم بزنید ). همین طور میانگین load سیستم در یک، پنج و پانزده دقیقه اخیر.


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

یک برنامه کامپیوتری (فرایند،وظیفه یا موضوع) ممکن است در فاز خواب باشد (sleep) و برای مدتی در حالت غیرفعال باشد. در نهایت پایان زمان تایمر یا دریافت سیگنال باعث می‌شود تا برنامه دوباره فعالیت خود را از سرگیرد.

پردازه خواب/sleep

به پروسه‌ای گفته می‌شود که اجرای آن تمام شده است، ولی هنوز در جدول پروسه (process table) ورودی دارد. به این معنی که پروسه مادرش (parent) منتظر است که وضعیت خروجی فرزند(child) را ببیند.

پردازه زامبی

سومین خط اطلاعاتی در مورد وضعیت CPU به ما می دهد شامل:

  1. us: این مقدار مدت زمانی هست که CPU صرف می کنه تا پردازه‌ای رو در user space اجرا کنه
  2. sy: این مقدار مدت زمانی هست که CPU صرف می کنه تا پردازه‌ای رو در kerbel space اجرا کنه
  3. ni: این مقدار مدت زمانی هست که CPU صرف می کنه تا پردازه‌ای رو اجرا کنه که به صورت دستی nice شده
  4. id: مدت زمانی که CPU توسط هیچ برنامه‌ای استفاده نشده. (هر برنامه ایی که بر روی سیستم کامپیوتری اجرا می‌شود مقدار مشخصی از زمان پردازش را در پردازنده اشغال می‌کند. اگر پردازنده تمام وظایف را به اتمام برساند، حالت آن آزاد می‌شود. اطلاعات بیشتر از Idle )
  5. wa: این مقدار مدت زمانی هست که CPU منتظر می مونه تا یک عملیات ورودی/خروجی (I/O) تمام شه.
  6. hi: این مقدار مدت زمانی هست که CPU به وقفه‌های سخت‌افزاری پاسخ/سرویس میده.
  7. si: این مقدار مدت زمانی هست که CPU به وقفه‌های نرم‌افزاری پاسخ/سرویس میده.
  8. st: این مقدار مدت زمانی هست که CPU برای ماشین‌‌مجازی در حال اجرا صرف می کنه.

خط چهارم مقدار کل حافظه فیزیکی را نشان می دهد واینکه از این میزان چه مقدارش آزاد، بافر و یا کش شده.



خط پنجم مقدار فضای swap رو نشون میده و اینکه از فلان مقدار swap چه میزان آزاد و یا مطرف شده و اینکه چه مقدارش در دسترس خواهد بود. منظور از «مقدار در دسترس» میزان محاسبه ای است که کرنل انتظار داره از cache ها قابل بازیابی باشه.


در آخر اگر هنوز محاسبه bit و byteش براتون سخت هست می تونید چند بار E رو بزنید تا خوانایی بیشتری مثل MB و GB داشته باشید.

و اما ستون هایی که در جدول اصلی می بینید، شامل:

  1. PID: شناسه پردازه
  2. USER: نام مالک پردازه
  3. PR: اولویت پردازه که در سیستم های یونکسی بر می‌گرده به nice and renice
  4. NI: مقدار nice بودن پردازه که بین +۲۰ تا -۲۰ متغییر هستش
  5. VIRT: مقدار حافظه مجازی که به پردازه اختصاص داده شده
  6. RES: مقدار حافظه ای که توسط پردازه تساحب شده
  7. SHR: مقدار حافظه اشتراکی که توسط پردازه مصرف شده
  8. S: وضعیت پردازه (اینجا توضیح دادم)
  9. %CPU: مقداری زمانی که پردازه از CPU استفاده کرده
  10. %MEM: میزان استفاده از حافظه فیزیکی به اشتراک‌ گذاشته شده
  11. TIME: میزان زمانی که پردازه از CPU استفاده کرده بر صدها ثانیه
  12. COMMAND: نام دستور یا خطی که دستور اجرا شده

و در نهایت اگر خواستید خارج شید می تونیQ/q بزنید.
امیدوارم مفید واقع شده باشه،‌ اگر این مطلب رو دوست می تونید pdf انگلیسی و ۳۶ دستور ضروری گنو/لینوکس رو دانلود کنید.

منتشر شده در بلاگ

اولین باشید که نظر می دهید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

35 − = 31