آموزش استفاده از Top، Netstat، Duو دیگر ابزارهای نظارت بر منابع سرور

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


بررسی فرآیندهای در حال اجرا روی لینوکس

با استفاده از دستور top می توانید تمام فرآیندهای در حال اجرا روی سرور خود را مشاهده کنید:

top

خروجی دستور top در لینوکس

چند خط اول خروجی، آمار سیستم، مانند لود CPU/memory و تعداد کل وظایف در حال اجرا (running tasks) را نمایش می دهد.

می بینید که 1 فرآیند در حال اجرا و 194 پردازش به دلیل عدم استفاده فعال از چرخه‌های CPU به حالت sleeping در نظر گرفته می شوند.

باقیمانده خروجی نمایش داده شده، فرآیندهای در حال اجرا و آمار استفاده از آنها را نشان می دهد. top به‌طور پیش‌فرض این موارد را بر اساس میزان مصرف CPU مرتب می‌کند، بنابراین می‌توانید ابتدا پرمشغله‌ترین فرآیندها را ببینید. top به اجرا در shell ادامه می دهد تا زمانی که با استفاده از کلیدهای ترکیبی استاندارد Ctrl+C برای خروج از یک فرآیند در حال اجرا آن را متوقف کنید. که یک سیگنال kill می فرستد و به فرآیند دستور می دهد تا اگر ممکن است متوقف شود.

نسخه بهبودیافته top به نام htop در اکثر مخازن نرم افزاری (package repositories) موجود است. در اوبونتو ، می توانید آن را با apt نصب کنید:
 

apt install htop

پس از آن، دستور htop در دسترس خواهد بود:

htop

 

خروجی دستور htop در سرور لینوکس


htop تجسم بهتر از تردهای سی‌پی‌یو(CPU threads)، آگاهی بهتر به وسیله پشتیبانی رنگ در ترمینال‌های مدرن و گزینه‌های مرتب‌سازی بیشتر را از جمله ویژگی‌های دیگر فراهم می‌کند. برخلاف top، همیشه به طور پیش فرض نصب نمی‌شود، اما می تواند به عنوان جایگزین آن در نظر گرفته شود. می توانید با فشار دادن Ctrl+C از htop خارج شوید.

در اینجا چند میانبر کیبورد وجود دارد که به شما کمک می کند از htop به طور موثرتری استفاده کنید:

  • M: مرتب سازی فرآیندها بر اساس میزان مصرف حافظه
  • P: مرتب سازی فرآیندها بر اساس استفاده از پردازنده
  • ?: دسترسی به help
  • k: از بین بردن فرآیند فعلی/برچسب شده
  • F2:  پیکربندی htop که می‌توانید گزینه های نمایش را انتخاب کنید.
  • /:: فرآیندهای جستجو

بسیاری از گزینه‌های دیگر وجود دارد که می توانید از طریق help یا setup به آنها دسترسی داشته باشید.

 

چگونه از طریق SSH به سرور لینوکس متصل شویم؟
پیشنهاد می‌کنم برای آموزش اتصال به سرور لینوکس، این مقاله را مطالعه کنید؛ کار با نرم افزار Putty هم در این نوشته آموزش داده شده است.

 

نحوه نظارت بر پهنای باند شبکه

اگر به نظر می‌رسد که connection شبکه شما بیش از حد استفاده شده و مطمئن نیستید که کدام برنامه مقصر است، برنامه‌ای به نام nethogs انتخاب خوبی برای پیدا کردن آن است.

در اوبونتو یا دبیان می‌توانید با دستور زیر nethogs را نصب کنید:

 

apt install nethogs

 

 

پس از آن، دستور nethogs به شکل زیر در دسترس خواهد بود:

nethogs

 

خروجی دستور nethogs ذر لینوکس


nethogs همه برنامه‌ها را با ترافیک شبکه خود مرتبط می کند.

فقط چند دستور وجود دارد که می توانید برای کنترل nethogs استفاده کنید:

  • M: واحدهای نمایش را بین kb/s، kb، b و mb تغییر دهید.
  • R: مرتب سازی بر اساس ترافیک دریافتی.
  • S: مرتب سازی بر اساس ترافیک ارسال شده.
  • Q: خروج

 

iptraf-ng راه دیگری برای نظارت بر ترافیک شبکه است. تعدادی رابط نظارتی تعاملی مختلف را فراهم می کند.
 

نکته :  IPTraf به اندازه صفحه حداقل 80 ستون در 24 خط نیاز دارد


در اوبونتو یا دبیان  می توانید iptraf-ng را با دستور زیر نصب کنید:

apt install iptraf-ng

iptraf-ng باید با  دسترسی root اجرا شود، بنابراین اگر این دسترسی را ندارید باید قبل از آن با sudo استفاده کنید:
 

sudo iptraf-ng
 

منویی که نمایش داده می شود که از یک چارچوب خط فرمان محبوب به نام ncurses استفاده می کند.

اجرای دستور iptraf-ng در لینوکس

اجرای دستور iptraf-ng در لینوکس

با استفاده از این منو، می توان انتخاب کرد که به کدام رابط می خواهید دسترسی داشته باشید.

به عنوان مثال، برای دریافت نمای کلی از تمام ترافیک شبکه، می‌توانید اولین منو و سپس All interfaces را انتخاب کنید. به شما صفحه ای شبیه این می دهد:
 

خروجی دستور iptraf-ng در لینوکس

در اینجا، می‌توانید ببینید که چه آدرس‌های IP را در تمام اینترفیس‌های شبکه خود در ارتباط هستید.

اگر می‌خواهید آن آدرس‌های IP در دامنه‌ها resolve شود، می‌توانید با خروج از صفحه ترافیک، انتخاب Configure و سپس Reverse DNS lookups را فعال کنید.

همچنین می‌توانید TCP/UDP service names  را فعال کنید تا نام سرویس‌های در حال اجرا را به‌جای شماره‌های پورت مشاهده کنید.
با فعال بودن هر دوی این گزینه ها، نمایشگر ممکن است به شکل زیر باشد:

 

تنظیمات دستور iptraf-ng

دستور netstat یکی دیگر از ابزارهای همه کاره برای جمع آوری اطلاعات شبکه است.

netstat به طور پیش‌فرض روی اکثر سیستم‌های مدرن نصب شده است، اما می‌توانید خودتان آن را با دانلوداز مخازن نرم‌افزاری  پیش‌فرض سرور نصب کنید. در اکثر سیستم های لینوکس، از جمله اوبونتو، بسته حاوی netstat به صورت net-tools است:

apt install net-tools

به طور پیش فرض، دستور netstat به تنهایی فهرستی از سوکت های باز را چاپ می کند:

netstat

خروجی دستور netstat

اگر یک سوئیچ a- به آن اضافه کنید، تمام پورت ها، listening و non-listening را فهرست می کند:

اجرای دستور netstat

اگر می خواهید فیلتر کنید تا فقط اتصالات TCP یا UDP را ببینید، به ترتیب از فلگ‌های t- یا u- استفاده کنید:
 

خروجی netstat برای فقط اتصالات TCP یا UDP
 

مشاهده آمار(statistics) با استفاده از فلگ s- ممکن است

 

خروجی netstat برای statistics

اگر می خواهید به طور مداوم خروجی را به روز کنید، می توانید از فلگ c- استفاده کنید. بسیاری از گزینه‌های دیگر برای netstat وجود دارد که با مرور صفحه کتابچه راهنمای آن می‌آموزید.

 

نحوه نظارت بر استفاده از دیسک

برای مشاهده اجمالی و سریع از مقدار فضای دیسک می توانید از دستور  df استفاده کنید.

بدون هیچ گزینه ای، خروجی آن به شکل زیر است:

خروجی دستور df در لینوکس

این میزان مصرف دیسک را بر حسب بایت خروجی می دهد که خواندن آن ممکن است کمی سخت باشد.

برای رفع این مشکل، می توانید خروجی را در قالب قابل خواندن توسط انسان مشخص کنید:

خروجی دستور df -h در لینوکس

اگر می خواهید کل فضای دیسک موجود در همه filesystems را ببینید، می توانید گزینه total-- را وارد کنید که یک ردیف در پایین با اطلاعات خلاصه اضافه می کند:

خروجی دستور df -h در لینوکس با سوئیچ total

df می تواند یک نمای کلی مفید ارائه دهد ولی دستور دیگری به نام du تفکیک دایرکتوری‌ها را هم می دهد.

du مصرف دایرکتوری فعلی و هر زیر شاخه را تجزیه و تحلیل خواهد کرد. خروجی پیش‌فرض du در حال اجرا در دایرکتوری home تقریبا خالی به شکل زیر است: 

خروجی دستور du

باز هم می توانید خروجی قابل خواندن توسط انسان را با سوئیچ h- مشاهده کنید

برای مشاهده اندازه فایل‌ها و  دایرکتوری‌ها هم از سوئیچ a- استفاده نمائید.

برای مشاهده total در پایین، می توان  سوئیچ c- را اضافه کرد.

خروجی دستور du -c

اگر فقط به کل و نه جزئیات علاقه دارید، می توانید به شکل زیر از سوئیچ s- استفاده کنید

خروجی دستور du -s
 

همچنین یک رابط ncurses برای du وجود دارد که ncdu نامیده می شود که می توانید آن را نصب کنید:

apt install ncdu

و صورت گرافیکی استفاده از دیسک شما را نشان می دهد:

 

ncdu

خروجی دستور ncdu  برای کنترل فضای دیسک


می توانید با استفاده از فلش های بالا و پایین و فشار دادن Enter در هر ورودی دایرکتوری، از طریق سیستم فایل گام بردارید.

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

نحوه نظارت بر میزان استفاده از حافظه رم

با استفاده از دستور free می توانید میزان مصرف فعلی حافظه در سیستم خود را بررسی کنید.

هنگامی که بدون گزینه استفاده می شود، خروجی به صورت زیر است:

 

خروجی دستور free  در لینوکس

برای نمایش با فرمت خوانا تر، می توانید گزینه m- را برای نمایش خروجی در مگابایت استفاده کنید:

 

خروجی دستور free -m در لینوکس

خط Mem شامل حافظه مورد استفاده برای بافر و کش است که به محض نیاز برای مقاصد دیگر آزاد می شود. Swap حافظه ای است که به منظور حفظ حافظه فعال روی یک فایل swap روی دیسک نوشته شده است.

در نهایت، دستور vmstat می تواند اطلاعات مختلفی از سیستم شما از جمله حافظه، swap، io دیسک و اطلاعات cpu را خروجی دهد.

می توانید از دستور برای دریافت نمای دیگری از میزان استفاده از حافظه استفاده کنید:

 

خروجی دستور vmstat

با مشخص کردن واحدهایی با فلگ S- می‌توانید این را در مگابایت ببینید:
 

خروجی دستور vmstat  در لینوکس

برای دریافت آمار کلی در مورد میزان استفاده از حافظه، تایپ کنید:

خروجی دستور vmstat  در لینوکس سرور

برای دریافت اطلاعات در مورد استفاده از حافظه پنهان فرآیندهای سیستم جداگانه، تایپ کنید:

خروجی دستور vmstat  در لینوکس اوبونتو

این دستور جزئیاتی در مورد نوع اطلاعات ذخیره شده در حافظه پنهان(cache) می‌دهد.

 

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