بررسی Load سرور در لینوکس

Calendar

انتشار:

1404/08/09
Update Calendar

به روز رسانی:

1404/08/09

در این مقاله قصد داریم یاد بگیریم چگونه میزان load یا بار پردازشی سرور لینوکسی را بررسی کنیم تا متوجه شویم آیا سرور تحت فشار است یا عملکرد طبیعی دارد. این موضوع به مدیران سرور کمک می‌کند تا مشکلات کندی یا افزایش مصرف منابع را سریع‌تر شناسایی و برطرف کنند.

مرحله اول: مشاهده وضعیت کلی لود با دستور uptime

بعد از ورود از طریق SSH به سرور، دستور زیر را وارد کنید تا بتوانید میانگین لود سیستم را مشاهده کنید:

uptime

خروجی مشابه زیر نمایش داده می‌شود:

13:22:11 up 3 days, 5:10,  1 user,  load average: 0.75, 0.60, 0.45

در انتهای خروجی، سه عدد دیده می‌شود که میانگین بار سیستم در ۱، ۵ و ۱۵ دقیقه گذشته را نشان می‌دهد. اگر این اعداد کمتر از تعداد هسته‌های CPU سرور شما باشند، یعنی عملکرد سیستم نرمال است. اما اگر عددها بیشتر از تعداد هسته‌ها شوند (مثلاً برای سرور ۴ هسته‌ای عدد بالاتر از ۴)، نشانه فشار زیاد روی سیستم است و باید بررسی شود چه فرآیندهایی باعث این اتفاق شده‌اند.

نمای خروجی uptime

مرحله دوم: بررسی دقیق‌تر فرآیندها با دستور top

برای مشاهده زنده‌ی مصرف منابع توسط پردازش‌ها، دستور زیر را وارد کنید:

top

در قسمت بالای خروجی، اطلاعاتی درباره زمان روشن بودن سیستم، کاربران متصل و مقدار load average دیده می‌شود. در بخش پایین‌تر، فهرست کامل پردازش‌ها نمایش داده می‌شود که شامل میزان مصرف CPU، حافظه، وضعیت اجرا و شناسه هر فرآیند است.

اگر مشاهده کردید یکی از پردازش‌ها مقدار CPU زیادی مصرف می‌کند (مثلاً بالای ۹۰٪)، ممکن است باعث افزایش لود سرور شود. در چنین شرایطی، می‌توانید شناسه (PID) آن را پیدا کرده و در صورت لزوم متوقف کنید. برای خروج از این محیط کافیست کلید q را فشار دهید.

نمای خروجی top

مرحله سوم: استفاده از ابزار htop برای نمایش گرافیکی‌تر

دستور htop نسخه‌ی به‌روزشده و گرافیکی‌تر از top است. با این ابزار، اطلاعات CPU، RAM، Swap و پردازش‌ها را با رنگ و ساختار خواناتر مشاهده می‌کنید.

برای نصب در اوبونتو و دبیان از دستور زیر استفاده کنید:

sudo apt install htop -y

و در CentOS، AlmaLinux یا Rocky Linux از دستور زیر:

sudo yum install htop -y

سپس برای اجرا بنویسید:

htop

در این محیط می‌توانید با کلیدهای جهت‌دار بین پردازش‌ها حرکت کنید، با F6 ستون‌ها را تغییر دهید و با F9 یک فرآیند را متوقف کنید. این ابزار به‌خصوص زمانی مفید است که بخواهید به‌صورت زنده تغییرات لود را تحت نظر داشته باشید.

نمای htop

مرحله چهارم: بررسی لود در بازه‌های زمانی طولانی با sar

اگر می‌خواهید بدانید در چند ساعت گذشته چه مقدار لود روی سرور وجود داشته، باید از ابزار sar استفاده کنید که بخشی از بسته sysstat است.

ابتدا آن را نصب کنید:
در اوبونتو و دبیان از دستور زیر استفاده کنید:

sudo apt install sysstat -y

در CentOS و AlmaLinux هم این دستور را بزنید:

sudo yum install sysstat -y

بعد از نصب باید سرویس جمع‌آوری اطلاعات را روشن و همزمان فعال کنید:

sudo systemctl enable --now sysstat

و در نهایت دستور زیر را بزنید تا میانگین لود در لحظه را مشاهده کنید:

sar -q 1 10

عدد اول (۱) فاصله زمانی بین هر بررسی را نشان می‌دهد و عدد دوم (۱۰) تعداد دفعات تکرار است. با این ابزار می‌توانید متوجه شوید لود سیستم در چه بازه‌هایی بالا یا پایین بوده است.

نمای خروجی sar

مرحله پنجم: تحلیل منابع با vmstat

گاهی اوقات افزایش لود فقط به CPU مربوط نیست و ممکن است به دلیل صف پردازش‌ها، تأخیر در دیسک یا کمبود رم باشد. در این حالت، دستور زیر مفید است:

vmstat 2 5

این دستور هر دو ثانیه به مدت پنج مرتبه وضعیت کلی منابع را نمایش می‌دهد. ستون r نشان‌دهنده تعداد پردازش‌های در حال انتظار برای CPU است. اگر مقدار آن بالا باشد (مثلاً بالای ۲ در سیستم تک‌هسته‌ای)، نشانه فشار زیاد روی CPU است.

نمای خروجی vmstat

مرحله ششم: بررسی دقیق مصرف CPU و RAM

برای بررسی جزئی‌تر مصرف CPU می‌توانید از دستور زیر استفاده کنید:

mpstat 1 5

این دستور میانگین استفاده از CPU را در هر ثانیه نمایش می‌دهد. ستون %idle درصد بیکار بودن CPU را نشان می‌دهد؛ هرچه کمتر باشد یعنی CPU درگیرتر است.

برای مشاهده حافظه RAM نیز دستور زیر را بزنید:

free -h

در بخش Mem مقدار کل حافظه، میزان استفاده‌شده و مقدار باقیمانده نمایش داده می‌شود. اگر عدد available کمتر از ۲۰٪ کل حافظه باشد، لازم است وضعیت رم را بررسی و در صورت نیاز آن را بهینه‌سازی یا ارتقا دهید.

نمای خروجی mpstat و free

مرحله هفتم: شناسایی پردازش‌های سنگین

زمانی که مقدار load زیاد است و می‌خواهید بدانید دقیقاً چه پردازشی باعث سنگینی آن شده، می‌توانید از دستور زیر کمک بگیرید:

ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head

این دستور پردازش‌هایی را که بیشترین مصرف CPU دارند از بالا به پایین فهرست می‌کند. ستون %cpu مقدار مصرف CPU را برای هر فرآیند نشان می‌دهد. با توجه به نام فرآیند و مقدار مصرف آن، می‌توانید علت اصلی افزایش لود را شناسایی کنید.

نمای خروجی ps

بررسی لود سرور در فواصل زمانی منظم باعث می‌شود عملکرد VPS شما پایدار و سریع باقی بماند. با شناخت ابزارهایی مانند uptime، top، htop و sar می‌توانید به‌صورت دقیق، بار پردازشی سیستم را زیر نظر بگیرید و در زمان مناسب برای بهینه‌سازی یا ارتقای منابع تصمیم بگیرید.

آیا توانستیم چالش شما را حل کنیم؟