## 🖥️ مانیتورینگ فرایندها در لینوکس با دستور `top`
دستور `top` یکی از پرکاربردترین ابزارهای خط فرمان برای مشاهده و مدیریت فرایندهای در حال اجرا در سیستمهای لینوکسی است. این ابزار، اطلاعات زنده (real-time) درباره مصرف CPU، حافظه، زمان اجرا و دیگر متریکهای کلیدی هر فرایند را در اختیار شما قرار میدهد.
---
### ▶️ اجرای ساده `top`
```bash
top
```
با اجرای این دستور، پنجرهای تعاملی باز میشود که هر چند ثانیه یکبار بهروزرسانی میگردد.
---
### 📊 بخشهای اصلی خروجی `top`
1. **هدر (Header)**
- **uptime**: مدت زمان روشن بودن سیستم
- **tasks**: تعداد کل فرایندها و وضعیت آنها (running, sleeping, stopped, zombie)
- **%Cpu(s)**: درصد مصرف CPU توسط سیستم، کاربر، idle و …
- **MiB Mem**: مصرف و کل حافظه فیزیکی
- **MiB Swap**: مصرف و کل فضای swap
2. **بدنه (Task List)**
ستونی از فرایندها با فیلدهایی مانند:
- **PID**: شناسه فرایند
- **USER**: کاربر صاحب فرایند
- **PR**: اولویت
- **NI**: نایسنس (nice value)
- **VIRT**: حافظه مجازی مصرفی
- **RES**: حافظه حقیقی (resident)
- **SHR**: حافظه مشترک
- **S**: وضعیت فرایند (R, S, D, Z)
- **%CPU**, **%MEM**: درصد مصرف CPU و RAM
- **TIME+**: زمان کلی مصرف CPU
- **COMMAND**: نام یا دستور اجراشده
---
### ⌨️ کلیدهای میانبر پرکاربرد
- **P**: مرتبسازی بر اساس درصد مصرف CPU
- **M**: مرتبسازی بر اساس درصد مصرف حافظه
- **T**: مرتبسازی بر اساس زمان اجرای فرایند
- **c**: نمایش مسیر کامل فرمان (COMMAND)
- **u <username>**: فیلتر نمایش فقط فرایندهای کاربر مشخص
- **k <PID>**: ارسال سیگنال kill به فرایند (پس از وارد کردن PID، سیگنال را میتوانید مشخص کنید)
- **r <PID> <nice>**: تغییر نایسوالیو (nice value) برای PID مشخص
- **h** یا **?**: نمایش راهنما
- **q**: خروج از `top`
---
### ⚙️ تنظیمات و سفارشیسازی
- **تغییر بازه بهروزرسانی**
در حالت اجرا، کلید **d** را فشار دهید و سپس تعداد ثانیهها را وارد کنید.
- **نمایش/عدم نمایش ستونها**
با کلید **f** وارد منوی فیلدها شوید و با فشار دادن حرف متناظر ستون را فعال/غیرفعال کنید.
- **ذخیره تنظیمات**
پس از تغییرات، برای ذخیره بهعنوان پیشفرض کلید **W** (بهصورت بزرگ) را فشار دهید تا در `~/.toprc` ذخیره شود.
---
### 🧠 نکات حرفهای
- برای مشاهده سریع یک عکس فوری (snapshot) به خروجی ساده، میتوانید از:
```bash
top -b -n 1
```
این حالت برای اسکریپتها مفید است.
- ترکیب با `grep` برای پیدا کردن یک فرایند:
```bash
top -b -n 1 | grep process-name
```
- اگر نیاز به اطلاعات عمیقتر دارید، ابزارهایی مثل `htop` یا `glances` رابطهای زیباتر و تعاملیتری ارائه میدهند.
---
## 🔍 جمعبندی
دستور `top` ابزار پایهای اما قدرتمندی برای مانیتورینگ لحظهای فرایندها در لینوکس است. با یادگیری کلیدهای میانبر و تنظیمات آن، میتوانید بهراحتی عملکرد سیستم را زیر نظر گرفته و در صورت نیاز فرایندهای مشکلساز را مدیریت کنید.