Load Average یا به عبارت دگیر میانگین بار یکی از مفاهیم بسیار مهم و کاربردی در مدیریت و مانیتورینگ سرورهای لینوکسی شماست. شما با آشنایی با این مفهوم میتوانید وضعیت کلی سرورهای خود را مورد ارزیابی قرار دهید و متوجه شوید که به صورت کلی چه باری روی سرور شما می باشد. این پارامتر میتواند در اثر اجرای اسکریپت های تحت سرور و یا بدافزارهای مخرب روی سرور شما بالا رفته و جوب داون شدن سرور شما شود.
ابتدا شاید بهتر باشد معنای دقیق دو عبارتی که در سیستم های لینوکسی با آن سر و کار داریم را بهتر بدانیم:
- System load/CPU load: این عبارت به معنای اندازه گیری cpu میباشد. به عبارت دیگر تعداد پروسه هایی که توسط cpu به اجرا در می آیند.
- Load average: این عبارت به معنای بار اندازه گیری شده متوسط سیستم در دوره های زمانی ۱ دقیقه، ۵ دقیقه و ۱۵ دقیقه می باشد.
دو دستور top و uptime به صورت پیش فرض معمولا در همه توزیع های لینوکسی یافت میشود و شما با استفاده از اجرای این دستورات میتوانید به میزان load average سیستم خود پی ببرید:
به طور مثال خروجی دستور uptime به صورت زیر میتواند باشد:
1 |
06:06:51 up 32 min, 3 users, load average: 0.56, 0.48, 0.53 |
و یا در بالای خروجی دستور top در هدر بخش زیر یافت میشود:
1 |
top - 06:30:42 up 56 min, 3 users, load average: 0.56, 0.48, 0.53 |
همچنین شما میتوانید از طریق فایل loadavg نیز مقدار load average سیستم خود را مشاهده کنید:
1 |
root@arshatech:~# cat /proc/loadavg |
1 |
0.34 0.43 0.39 4/589 3781 |
در هر دو خروجی همانطور که ملاحظه میکنید رو به روی عبارت :load average سه عدد که هر کدام با کاما (,) از یکدیگر جدا شده اند وجود دارد:
- ۰٫۵۶: بیانگر میزان load average در یک دقیقه اخیر
- ۰٫۴۸: بیانگر میزان load average در پنج دقیقه اخیر
- ۰٫۵۳: بیانگر میزان load average در پانزده دقیقه اخیر
مقدار مناسب load average چگونه تعیین میگردد؟
میزان استاندارد میانگین بار روی سیستم شما ارتباط مستقیم با cpu سرور شما دارد. اگر خیلی ساده بخواهیم توضیح دهیم هر هسته cpu شما مقداری برابر ۰٫۰۰ تا ۱٫۰۰ میگیرد. و به ازای هر واحد میتوان گفت عدد ۰٫۷ یا ۰٫۷۰ عددی طبیعی به نظر میرسد.
در مثال بالا اعداد ۰٫۵۶ و ۰٫۴۸ و ۰٫۵۳ در یک سیستم دو هسته وجود دارند. پس به طور تقریبی میتوان گفت تا هنگامی که این عدد به ۱٫۷۰ نرسیده باشد همه چیز طبیعیست و بعد از آن میتواند نگرانی هایی برای بار سیستم وجود داشته باشد.
تشخیص هسته های cpu
شاید شما نیاز داشته باشید تا تعداد هسته های cpu خود را بدانید تا بتوانید متناسب با آن نسبت به بار متوسط سیستم خود تصمیم بگیرید. برای این کار ما به شما دو راه را نشان میدهیم:
فایل cpuinfo
برای مشاهده دقیق اطلاعات cpu خود کافیست با دستوری مانند less خروجی این فایل را بررسی کنید. البته در این مثال ما دستور مستقیم بررسی هسته های cpu را برای شما قرار میدهیم:
1 2 3 4 5 |
# cat /proc/cpuinfo | grep cores cpu cores : 2 cpu cores : 2 cpu cores : 2 cpu cores : 2 |
استفاده از دستور lscpu
این دستور به شما اطلاعاتی را از cpu سیستم میدهد. در خروجی دستور زیر میتوانید تعداد هسته های cpu خود را مشاهده کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 42 Stepping: 7 CPU MHz: 800.000 BogoMIPS: 4589.02 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 3072K NUMA node0 CPU(s): 0-3 |