مفهوم load average:
در دید اکثر کسانی که با سیستم های لینوکس و شبه یونیکسی آشنایی دارند، عبارت load average به معنای همان سه عدد اعشاری است که با دستور های top یا uptime در محیط SSH یا پایانه(Terminal) وارد میکنند و اولی مربوط به 1 دقیقه، دومی 5 دقیقه و سومی مربوط به 15 دقیقه اخیر است و هر چقدر این اعداد پایین تر باشند بهتر است!
اما واقعا load average چیست؟
load average (که تاکنون در زبان شیرین فارسی معادلی پیدا نکرده) نشان دهنده متوسط بار وارد شده به سیستم در یک بازه زمانی خاص است(1 ، 5 و 15 دقیقه که در بالا ذکر شد).
یک مثال: فرض کنیم سیستمی لینوکسی با یک پردازشگر “تک هسته ای” داریم
عدد 0.00 به معنای عدم وجود هر گونه ترافیک پردازشی روی واحد پردازش مرکزی است(CPU).-خوشحالیم چون همه چیز آرومه..!-
عدد 1.00 به معنای وجود ترافیک کاری بر روی پردازشگر دقیقا به اندازه ظرفیت پردازشگرست اما باز هم همه چیز در وضعیت مناسبی قرار داره هر چند اگر بار پردازشی کمی بیشتر شود ، مسائل کند تر حل میشوند!
بیشتر از عدد 1.00 به معنای وجود ترافیک بر روی پردازشگر بیش از ظرفیت آن است.مثلا عدد 2.00 بیان میکند که پردازش ها دو برابر ظرفیت CPU وجود دارند همان عدد 3.00 وجود ۳ برابری پردازش هارا نشان میدهد.
Load average: 0.50
Load average: 1.00
Load average: 1.70
تصاویر بالا مفهوم کننده های خوبی هستند برای مثالی که در بالا زده شد.
در پردازشگر های چند هسته ای چطور؟
در بالا مثال یک سیستم با پردازشگر تک هسته ای زده شد و گفتیم که برای این پرداشگر تا load average یک همه چیز مناسب است.
اما اگر پرداشگر دو هسته ای دارید، عدد ۱ برای سیستم شما به ۲ افزایش پیدا میکند و بدین ترتیب شما با لود ۲ از تمام ظرفیت پردازشگر سیستم استفاده میکنید.
همینطور برای پرداشگر های 4 هسته ای load average مناسب به 4 افزایش پیدا میکند و همینطور برای مابقی پرداشگر ها…
چگونه load average را ببینیم؟
ابتدا به SSH یا ترمینال سیستم مورد نظر وارد شوید.
اگر نمیدانید چگونه به SSH سرورتان متصل شوید قطعا این مقاله به شما کمک خواهد کرد.
سپس یکی از دستورات uptime یا top را وارد کنید.
اگر دستور top را وارد کنید صفحه ای مشابه اولین تصویر مقاله مشاهده میکنید که در مقابل عبارت Load Average سه عدد اعشاری وجود دارند!
اما اگر از دستور uptime استفاده کردید خروجی مشابه متن زیر خواهید داشت که load average بسیار مشخص قرار گرفته:
$ uptime 14:34:03 up 10:43, 4 users, load average: 0.06, 0.11, 0.09
یک پیشنهاد حرفه ای
اگر بدنبال برنامه ای میگردید تا بتوانید دقیق تر وضعیت منابع سرورتان زیر نظر بگیرید ما “htop” را پیشنهاد میکنیم!
این برنامه با ظاهری آراسته و دقیق تر نسبت به top به شما کمک میکنند تا با اولین نگاه همه چیز را مورد تحلیل قرار دهید.
برای نصب htop در توزیع های Centos , REHL , Fedora از دستور yum کمک میگیریم!(باید به مخزن EPEL متصل شده باشد)
yum install htop
و اگر عضوی از خانواده دبیان هستید با apt-get این برنامه را نصب کنید:
apt-get install htop
برای حرفه ای ها
load average از کجا می آید؟
load average در واقع از فایل /proc/loadavg خوانده و در سایر برنامه های مانیتورینگ (هماهند top و htop) استفاده میشود.
با دستور زیر میتوانید از این فایل بهره مند شوید!
cat /proc/loadavg
در خروجی دستور بالا سه ستون اول حاوی load average پردازشگر است که در بالا بصورت مفصل در مورد آن بحث شد.
در ستون چهارم که حاوی دو عدد است که با اسلش / از هم جدا شدند، عدد اول نشان دهنده تعداد پردازش های در حال انجام و عدد دوم تعداد کل پردازش های غیرفعال(sleep proccess) است.
و در ستون پنجم شماره آخرین پردازش شروع شده قابل مشاهده است.
چند پردازشگر یا یک پردازشگر چند هسته ای؟
بد نیست حالا که بحث پردازش و پردازشگر شد کمی هم در مورد این صحبت کنیم که چند پردازشگر بهتر است یا یک پردازشگر با چند هسته؟
با کمی ارفاق شاید بتوان گفت که دو پردازشگر با یک هسته ، با یک پرداشگر دو هسته ای برابری میکند هر چند که اینجا مباحث پیچیده ای همچون فرکانس پردازش یا مقدار حافظه موقت (Cache) پیش می آید ولی باید توجه داشته باشیم که شما اگر چند پردازشگر داشته باشید یا یکی تعداد کل هسته های سیستم شما مورد نظر است.
برای مثال در سروری که از دو پرداشگر 6 هسته ای استفاده میکند حداکثر لود قابل قبول عدد 12.00 است و بیش از آن، عبور از حد ظرفیت پرداشگر است.