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

  • دسته بندی ها: سرور

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

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

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

top

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

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

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

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

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

 

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

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

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

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

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

 

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

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

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

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

 

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

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

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

 

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

 

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

 

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

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

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

 

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

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

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

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

 

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