مانیتورینگ، لاگ، nginx و bash پیشرفته

عیب‌یابی کارایی سیستم: CPU، حافظه، I/O

روش سیستماتیک برای پیدا کردن گلوگاه

وقتی یک سرور کند شده، حدس زدن راه حل درست نیست؛ باید با ابزار مناسب مشخص کرد گلوگاه کجاست: CPU، حافظه، دیسک یا شبکه. هر کدام از این منابع ابزار تشخیصی خاص خودش را دارد.

› بررسی کلی CPU و load average
uptime
vmstat 1 5

› بررسی مصرف حافظه، شامل کش و بافر
free -h

› بررسی فعالیت دیسک، ستون %util نزدیک ۱۰۰ یعنی دیسک گلوگاه است
iostat -x 1 5

› بررسی فرایندهایی که بیشترین I/O را مصرف می‌کنند
sudo iotop

› بررسی ترافیک شبکه به تفکیک اینترفیس
sar -n DEV 1 5

در خروجی vmstat، ستون r تعداد فرایندهای در صف اجرا را نشان می‌دهد؛ اگر این عدد به‌طور مداوم بیشتر از تعداد هسته‌های CPU باشد، سیستم از نظر CPU گلوگاه دارد. ستون‌های si و so فعالیت swap را نشان می‌دهند؛ مقدار غیرصفر مداوم یعنی حافظه فیزیکی کافی نیست و سیستم دارد به دیسک swap می‌کند که بسیار کندتر از RAM است.

یک روش سیستماتیک برای عیب‌یابی، رویکرد USE است: برای هر منبع (Utilization، Saturation، Errors) را بررسی کنید. یعنی چقدر از منبع استفاده می‌شود، آیا صفی برای آن منبع تشکیل شده، و آیا خطایی (مثل بسته‌های از‌دست‌رفته شبکه) رخ داده. این رویکرد از حدس زدن تصادفی بسیار مؤثرتر است و باعث می‌شود در کمترین زمان به ریشه مشکل برسید، به‌جای تغییر دادن تنظیمات تصادفی امیدوارانه.

برای ذخیره‌ی پیشرفت و شرکت در آزمون، وارد شوید — رایگان است.