آموزش دستور VMstat در سرور های لینوکسی : کار کردن با ابزار /usr/bin/vmstat از ملزمات دوره لینوکس LPIC-2 201 میباشد. و به عنوان ادمین لینوکس لازم است در کنار سایر دستورات مانیتورینگ مانند mpstat به این دستور نیز تسلط داشته باشید.
در صورتی که این دستور را به تنهایی وارد کنید (vmstat) خروجی به صورت زیر خواهد بود:
همینطور که ملاحظه میکنید خروجی به ۶ ستون تقسیم شده است:
- procs
- memory
- swap
- io
- system
- cpu
Procs:
خود به دو بخش r و b تقسیم میشود
- r: تعداد ترد (Thread) های پروسس های در حال اجرا (Running) که با توجه به Multithreading و تعداد هسته های پردازنده میتواند افزایش یابد.
- b: تعداد ترد (Thread) های بلوکه شده (Blocked) میباشدکه منتظر آزاد شدن منابع جهت ورود به روند پردازش هستند. در صورت بالا بودن این عدد هنگام عملکرد عادی سرور, لازم است نگران مشکلات سرعت هارد دیسک و رم باشید.
Memory:
نیازی به توضیح زیاد نیست. این قسمت وضعیت فضای رم (RAM) سرور را نشان میدهد که شامل ۴ ستون میباشد:
- Swpd: swap فضایی است که روی هارد دیسک برای ذخیره کردن موارد غیر ضروری رم استفاده میشود.
- Free: فضای آزاد رم را نشان میدهد.
- Buff: بافر, حافظه ای برای نگهداری موقت اطلاعات ورودی و خروجی است. که منتظر پاسخگویی ورودی و خروجی میماند.
- Chache: فضایی است که خروجی پردازش های موقت پردازنده در آن نگهداری میشود.
Swap:
- Si: حجم داده ای است که در هر ثانیه از از فضای swap مشخص شده در دیسک خوانده میشود.
- So: حجم داده ای است که در هر ثانیه روی فضای swap دیسک نوشته میشود.
IO:
I/O یا input output داده هایی است که سخت افزار از دستگاه های ورودی و خروجی دریافت میکند. یا به آنها ارسال میدارد. دارای دو ستون زیر میباشد:
- Bi: بلوک هایی که در هر ثانیه وارد میشود.
- Bo: تعداد بلوک هایی که در هر ثانیه در خروجی نوشته میشود.
System:
- In: تعداد وقفه های ورودی در هر ثانیه.(interrupt)
- Cs: تعداد context switch های انجام شده در هر ثانیه. در واقع دفعات جابجایی بین برنامه های مختلف و پروسس های مختلف است. تا امر چند وظیفگی یا multi tasking به درستی انجام شود, این عدد روی یک سرور مجازی ارزان و معمولی میتواند تا ۱۰۰۰ هم برسد.
CPU:
این مقادیر همه بر حسب درصد میباشند.
- Us: درصد مصرف پردازنده برای پروسه های غیر از هسته (کرنل) سیستم عامل میباشد. User
- Sy: یا system درصد اشغال پردازنده توسط هسته سیستم عامل میباشد.
- Id: یا idle درصد بیکار بودن یا ازادی پردازنده از انجام پردازش میباشد.
- Wa: یا waiting زمان مورد نیاز برای انتظار IO میباشد که پردازنده برای دریافت داده باید منتظر سخت افزار بماند.
- St: یا Stolen یا Steal Time زمان دزدیده شده از سرور مجازی است. در واقع مدت زمانی است که پردازنده مجازی سرور مجازی منتظر پردازنده واقعی میماند.
در صورتی که ارائه دهنده سرور مجازی بار پردازشی زیادی را به سرور اختصاصی خود اعمال کند, این مقدار افزایش خواهد یافت.
طبق تعریفIBM
Steal time is the percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor.
اگر دستور را به همراه پارامتر های زیر وارد کنید:
vmstat -S M
مقدایر حافظه به جای کیلوبایت, برحسب مگابایت محاسبه خواهد شد.
با وارد کردن عدد به صورت زیر:
vmstat 3 5
این ابزار به دفعات ۵ بار و به فاصله زمانی ۳ ثانیه خروجی را چاپ خواهد کرد. مشاهده چند خروجی با فاصله زمانی چندثانیه به شما کمک خواهد کرد مقدار میانگین مقادیر را درک کنید.