مانیتورینگ سرور یا کنترل منابع در هر سیستمی برای جلوگیری از ایجاد اختلال و خرابی در عملکرد آن بسیار مهم است، اما چرا این موضوع از اهمیت بسیاری برخوردار است؟
به عنوان یک مثال کوچک، میتوانیم به یک کامپیوتر شخصی اشاره کنیم، زمانی که محاسبات مختلف عملیات های بیش از حد و درخواستهایی با حجم بالا بر روی آن ایجاد کنید، از قسمت زیادی از توان CPU یا پردازنده کامپیوتر شخصی خود استفاده میکنید که این اتفاق باعث کندی سیستم شما برای اجرای دستورات بعدی و دیگر درخواست ها میشود، برای حل این موضوع اقدام به بستن برنامههای در حال اجرا و لغو درخواستهای ارسال شده میکنیم تا عملکرد سیستم ما به حالت عادی برگردد. اما تصور کنید که شما در حال استفاده از یک سرور هستید که با توجه به حساسیت کسب و کار خود و انتظار مشتریان و کاربران شما برای همیشه در دسترس بودن، امکان این موضوع را ندارید که پس از درگیر شدن سرور با درخواستهای متعدد و عملیاتهای بیش از حد، اقدام به بررسی و برطرف کردن این موارد کنید و با سرور خود مانند یک کامپیوتر شخصی رفتار کنید، اینجا همان نقطهای است که باید به فکر مانیتور کردن منابع سرور اختصاصی یا مجازی خود باشید تا از رخ دادن حوادثی که کمبود منابع موجب آنها میشود جلوگیری کنید.
مانیتورینگ را میتوان به روش های مختلفی انجام داد، مثلا کمک گرفتن از نرم افزار های جانبی مانند PRTG، Zabbix و… که به شما کمک میکنند بسیار دقیق و با جزئیات به سرور خود اشراف داشته باشید و ده ها گزینه دیگر که به شما در بهتر مدیریت کردن سرور کمک میکنند مانند: تنظیم حد استفاده از یک منبع مانند پردازنده در سرور و اعلام هشدار، یا ارسال هشدار از طریق پیامک برای شما و اطلاع رسانی اختلال بوجود آمده و هزاران سنسور و معیار برای مانیتورینگ سرور.
مطالب مرتبط :
1 . نحوه اتصال به ssh سرور لینوکس
3 . ماشین مجازی چیست
نوع دیگری که میتوان توسط آن سرور مجازی یا سرور اخصاصی و منابع آنها را کنترل کرد در سیستم عامل سرور است، برای مثال در سیستم عامل ویندوز میتوان از Task Manger برای اینکار استفاده کرد. اما در این مقاله قصد داریم تا دو تسک منیجر برای کنترل منابع و مانیتورینگ سرور مجازی لینوکس و یا هر سروری که در آن، هر یک از توزیع های لینوکس به عنوان سیستم عامل استفاده شده است را معرفی کنیم.
مانیتورینگ سرور با ابزار top
top یک ابزار برای کنترل و مشاهده لحظهای منابع در مانیتورینگ سرور لینوکس میباشد که با وارد کردن دستور top در خط فرمان میتوانید اطلاعاتی که مربوط به منابع سرور میشوند را مشاهده کنید.
همانطور که مشاهده میکنید در بالای تصویر، قبل از جزئیات استفاده هر عملیات از منابع پنج خط از گزارش کلی منابع وجود دارد که در ادامه به آنها خواهیم پرداخت.
top – 04:59:58 up 14 days, 23:50, 1 user, load average: 0.10, 0.09, 0.09
در خط اول میزان آپتایم یا در دسترس بودن سرور در بخش اول، تعداد کاربر فعال در قسمت دوم و در آخر هم میانگین لود سرور.
Tasks: 156 total, 1 running, 105 sleeping, 0 stopped, 0 zombie
خط دوم نشان دهنده تعداد کل عملیاتهای موجود، تعداد عملیاتهای در حال اجرا، عملیاتهای در حالت استراحت، عملیاتها متوقف شده و در آخر عملیاتهای زامبی، که پروسههایی هستند که انجام شده اند اما هنوز نتیجه آنها مشخص نشده است.
%Cpu(s): 0.2 us, 1.3 sy, 0.5 ni, 97.9 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
خط سوم مقدار استفادهی کاربران و کرنل از پردازنده سرور را نشان میدهد.
KiB Mem : 8167144 total, 535016 free, 2692832 used, 4939296 buff/cache
خط چهارم به رم سرور میپردازد که بر حسب کیلوبایت در بخش اول کل حافظه رم، بخش دوم مقدار فضای موجود، قسمت سوم مقدار استفاده شده و قسمت آخر هم حافظهی پنهان بافر نشان داده میشود.
KiB Swap: 0 total, 0 free, 0 used. 4761344 avail Mem
در خط آخر هم مقدار حافظه Swap نشان داده میشود، هنگامی که رم فضای خالی برای ارائه نداشته باشد هارد سرور به کمک آن میآید و بخشی از فضای خود را در اختیار رم میگذارد تا عدم فضای خالی در رم موجب اختلال در عملکرد سرور نشود، اما توجه داشته باشید که Swap محدود میباشد و یک راه حل دائمی نیست.
در قسمت پایین یا بخش دوم تصویر هم به جزئیات دقیقتری پرداخته شده است که در ادامه با آنها آشنا خواهید شد:
PID: شماره یا شناسه فرایند در حال اجرا.
User: کاربری که فرایند در حال اجرا مربوط به اوست.
PR یا Priority: اولویت فرایند.
NI با Nice Value: تا حدی به همان اولویت شباهت دارد، با این تفاوت که هر چه عدد NI کمتر باشد اولویت بالاتر است و هر چه بالاتر اولویت پایینتر.
VIRT: حافظه مجازی.
RES: حافظه حقیقی.
SHR: حافظه اشتراکی.
S: وضعیت هر فرایند را نشان میدهد که ممکن است هر یک از حالت های زیر باشد:
D: uninterruptible sleep
I: idle
R: running
S: sleeping
T: stopped by job control signal
t: stopped by debugger during trace
Z: zombie
CPU% و MEM%: این دو مورد همانطور که از نام آنها پیداست میزان استفاده از رم و پردازنده توسط هر یک از فرایند ها میباشند.
+TIME: مدت زمان در حال اجرا بود فرایند.
COMMAND: دستور مرتبط با فرایند.
اگر کار کردن با دستور top برای شما سخت و دشوار است و با محیط آن ارتباط برقرار نمیکنید، نگران نباشید. ابزاری جدید تر و با محیطی کاربر پسند تر به اسم htop که در برخی لینوکسها بصورت پیشفرض وجود دارد و در برخی هم باید آنرا نصب کنیم.
مانیتورینگ منابع با htop
در خط فرمان لینوکس خود کلمه htop را تایپ کنید، اگر با عبارتی مانند عبارتی که در تصویر زیر مشاهده میکنید رو به رو شدید، این به این معناست که htop بر روی سرور شما نصب نیست و ابتدا باید اقدام به نصب آن کنید.
با وارد کردن دستور apt install htop که در تصویر بالا هم به آن اشاره شده است اقدام به نصب میکنیم.
پس از نصب شدن پکیج های لازم، مجدد دستور htop را وارد میکنیم و با محیطی همانند تصویر زیر رو به رو میشویم.
همانطور که مشاهده میکنید در htop هم مانند top تمام فرایند ها و مقدار استفاده هریک از آنها از منابع اختصاص یافته به سرور قابل رویت میباشد.