در این مقاله از بلاگ رهام کلود، خیلی ساده و کاربردی میخوایم درباره آموزش مانیتورینگ منابع سرور گفتوگو کنیم؛
و اینکه چرا برای هر مدیر سرور ضروریه و چطور با چند ابزار کاربردی مثل top ،htop و Netdata همیشه وضعیت سرور لینوکسی خودتون رو زیر نظر داشته باشید.
فرض کنید سایت شما ناگهان کند یا کاربران از قطعی و کندی شکایت میکنن.
اولین سوالی که باید از خودتون بپرسید اینه که آیا پردازنده بیش از حد درگیره؟ رم پر شده؟ یا شاید یک پردازش خاص تمام منابع سرور رو مصرف کرده؟
اگر نتونید این موارد رو بهموقع تشخیص بدید، پیدا کردن دلیل مشکل خیلی سخت میشه. اینجاست که ابزارهای مانیتورینگ وارد عمل میشن.
با ما همراه باشید.
مانیتورینگ منابع سرور
به زبان ساده، مانیتورینگ یعنی اینکه بهصورت مداوم وضعیت سلامت سرور رو بررسی کنید و ببینید هر بخش از منابع سیستم چه مقدار در حال استفاده است.
مهمترین منابعی که معمولا بررسی میشن عبارتاند از:
- میزان استفاده از CPU
- میزان مصرف RAM
- فضای دیسک
- سرعت خواندن و نوشتن روی دیسک
- ترافیک شبکه
- پردازشهای در حال اجرا
- میزان Load سرور
وقتی این اطلاعات همیشه جلوی چشم شما باشه، خیلی سریعتر میتونید مشکلات رو پیدا کنید و قبل از اینکه روی کاربران تاثیر بذارن، اونها رو برطرف کنید.
اهمیت مانیتورینگ منابع سرور
خیلی از مشکلات سرور از ابتدا با علائم کوچکی شروع میشن. مثلا ممکنه مصرف رم کمکم بالا بره یا یک سرویس بهاشتباه وارد حلقه پردازشی بشه و CPU رو صد درصد درگیر کنه.
اگر این اتفاقها زود تشخیص داده بشن، معمولا با یک ریستارت سرویس یا اصلاح تنظیمات مشکل حل میشه. اما اگر متوجهشون نشید، ممکنه سایت از دسترس خارج بشه یا کاربران تجربه خوبی نداشته باشن.
به همین دلیل مدیران سرور معمولا همیشه یکی از ابزارهای مانیتورینگ رو روی سرورشون نصب دارن.
ابزار top؛ ساده اما کاربردی
تقریبا روی تمام توزیعهای لینوکس، ابزار **top** بهصورت پیشفرض نصب شده است و نیازی به نصب جداگانه ندارد.
برای اجرا کافی است دستور زیر را وارد کنید:
top
بعد از اجرا صفحهای مشابه این مشاهده میکنید:
top – 14:20:15 up 5 days
Tasks: 150 total
CPU: 12.5% us
Mem: 8040 MB total
در این صفحه میتوانید اطلاعاتی مثل موارد زیر را ببینید:
- میزان مصرف CPU
- میزان مصرف حافظه
- تعداد پردازشها
- پردازشهایی که بیشترین منابع را مصرف میکنند
- Load Average سرور
اگر فقط میخواید سریع وضعیت سرور را بررسی کنید، top کاملا نیاز شما را برطرف میکند.
htop؛ نسخه حرفهایتر top
اگر تا حالا با top کار کرده باشید، احتمالا متوجه شدید که ظاهر آن کمی قدیمی است و کار کردن با آن همیشه راحت نیست.
اینجاست که htop وارد میدان میشود.
این ابزار همان اطلاعات top را نمایش میدهد اما محیطی بسیار خواناتر، رنگی و تعاملی دارد.
برای نصب در اوبونتو:
sudo apt install htop
در توزیعهای مبتنی بر RHEL:
sudo dnf install htop
سپس اجرا کنید:
htop
در htop میتوانید خیلی راحت پردازشهای اضافی را جستجو و متوقف، مصرف CPU هر هسته را جداگانه مشاهده، مصرف RAM و Swap را بررسی و پردازشها را مرتب کنید.
به همین دلیل بسیاری از مدیران لینوکس، htop را جایگزین top میکنند.

فرض کنید کاربران گزارش میکنند سایت وردپرسی شما کند شده است.
وارد سرور میشوید و دستور زیر را اجرا میکنید:
htop
متوجه میشوید یکی از پردازشهای PHP نزدیک به ۹۵ درصد CPU را اشغال کرده است.
در همین لحظه میتوانید همان پردازش را متوقف کنید یا بررسی کنید چرا این حجم از منابع مصرف شده است.
شاید یک افزونه مشکلدار باشد یا تعداد درخواستهای سایت ناگهان افزایش پیدا کرده باشد.
اگر مانیتورینگ انجام نمیدادید، پیدا کردن این مشکل زمان بسیار بیشتری میبرد.
Netdata؛ مانیتورینگ حرفهای با داشبورد گرافیکی
اگر دوست دارید همه اطلاعات سرور را بهصورت نمودارهای زنده مشاهده کنید، Netdata یکی از بهترین انتخابهاست.
برخلاف top و htop که داخل ترمینال اجرا میشوند، Netdata یک داشبورد تحت وب در اختیار شما قرار میدهد و تقریبا تمام بخشهای سرور را لحظهبهلحظه نمایش میدهد.
بعد از نصب، اطلاعاتی مانند موارد زیر را مشاهده خواهید کرد:
- مصرف CPU
- مصرف RAM
- وضعیت Swap
- سرعت شبکه
- وضعیت دیسک
- IOPS
- وضعیت دیتابیس
- وضعیت وبسرور
- تعداد کانکشنها
- وضعیت سرویسها
همه این اطلاعات بهصورت نمودارهای زنده نمایش داده میشوند و پیدا کردن مشکل را بسیار سادهتر میکنند.
اگر فقط گاهی وضعیت سرور را بررسی میکنید، top یا htop کاملا کافی هستند.
اما اگر چند سرور دارید، میخواهید نمودار لحظهای ببینید، دنبال پیدا کردن علت کندی سرور هستید و یا میخواهید تاریخچه مصرف منابع را ببینید، Netdata انتخاب مناسبتری خواهد بود.
موارد مهم هنگام مانیتورینگ
فقط بالا بودن مصرف CPU همیشه به معنی وجود مشکل نیست.
گاهی ممکن است مصرف CPU طبیعی باشد اما حافظه RAM کاملا پر شده باشد یا دیسک سرعت کافی نداشته باشد.
بهتر است همیشه این شاخصها را کنار هم بررسی کنید:
- مصرف CPU
- مصرف RAM
- میزان Swap
- Load Average
- مصرف دیسک
- سرعت خواندن و نوشتن دیسک
- وضعیت شبکه
- پردازشهایی که بیشترین منابع را مصرف میکنند
کنار هم قرار دادن این اطلاعات تصویر دقیقتری از وضعیت سرور به شما میدهد.
نتیجهگیری
یادگیریآموزش مانیتورینگ منابع سرور یکی از مهمترین مهارتهایی است که هر مدیر سرور لینوکسی باید داشته باشد.
ابزار top برای بررسیهای سریع، htop برای مدیریت راحتتر پردازشها و Netdata برای مانیتورینگ حرفهای و نمایش نمودارهای زنده، هرکدام کاربرد خاص خودشان را دارند.
اگر بهصورت مرتب وضعیت CPU، حافظه، دیسک و شبکه را بررسی کنید،
خیلی از مشکلات را قبل از اینکه باعث اختلال در سایت یا سرویس شوند شناسایی خواهید کرد و در نتیجه پایداری و عملکرد سرور شما بهمراتب بهتر خواهد شد.
سوالات متداول
آیا top روی همه سرورهای لینوکسی نصب است؟
تقریبا بله. این ابزار بهصورت پیشفرض روی اکثر توزیعهای لینوکس وجود دارد.
htop بهتر است یا top؟
از نظر اطلاعات تفاوت زیادی ندارند، اما htop محیط گرافیکیتر، امکانات بیشتر و کاربری سادهتری دارد.
آیا Netdata رایگان است؟
بله. نسخه متنباز Netdata رایگان است و برای بیشتر سرورها کاملا کافی خواهد بود.
هر چند وقت یکبار باید منابع سرور را بررسی کنیم؟
اگر سرور حساسی دارید، بهتر است مانیتورینگ بهصورت دائمی انجام شود. در غیر این صورت، بررسی روزانه یا هنگام مشاهده کندی و اختلال نیز میتواند از بروز بسیاری از مشکلات جلوگیری کند.
آیا مانیتورینگ باعث کاهش سرعت سرور میشود؟
خیر. ابزارهایی مانند top و htop مصرف منابع بسیار کمی دارند و حتی Netdata نیز در حالت عادی سربار اندکی روی سرور ایجاد میکند، بنابراین تاثیر محسوسی بر عملکرد سیستم نخواهد داشت.
