روش سیستماتیک برای پیدا کردن گلوگاه
وقتی یک سرور کند شده، حدس زدن راه حل درست نیست؛ باید با ابزار مناسب مشخص کرد گلوگاه کجاست: 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) را بررسی کنید. یعنی چقدر از منبع استفاده میشود، آیا صفی برای آن منبع تشکیل شده، و آیا خطایی (مثل بستههای ازدسترفته شبکه) رخ داده. این رویکرد از حدس زدن تصادفی بسیار مؤثرتر است و باعث میشود در کمترین زمان به ریشه مشکل برسید، بهجای تغییر دادن تنظیمات تصادفی امیدوارانه.