پاسخ مستقیم و خلاصه اجرایی (Direct Answer):
راهنمای گامبهگام پیدا کردن و رفع گلوگاههای CPU، رم، دیسک و اتصالات آپاچی/PHP-FPM در سرور لینوکس هنگام افزایش ناگهانی ترافیک.
کالبدشکافی گلوگاه اول: اشباع پردازشگرهای PHP-FPM
هنگامی که ترافیک ناگهانی وارد میشود، پارامتر `pm.max_children` در صورتی که کم باشد خطای ۵۰۳ و در صورتی که زیاد باشد کل حافظه رم سرور را میبلعد. این پارامتر باید بر اساس میانگین مصرف رم هر پردازش PHP دقیقاً محاسبه گردد.
# فرمول استاندارد محاسبه max_children:
pm.max_children = (کل حافظه رم در دسترس برای پیاچپی) / (میانگین رم هر پردازش - معمولاً ۶۰MB)
کالبدشکافی گلوگاه دوم: انباشت کوئریهای کند دیتابیس (Slow Queries)
فعالسازی لاگ کوئریهای کند در MySQL برای شکار کوئریهایی که بیش از ۱ ثانیه دیسک را اشغال میکنند:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1.0
log_queries_not_using_indexes = 1
پرسشهای متداول
خیر؛ اگر کوئریهای دیتابیس ایندکس مناسب نداشته باشند یا سرعت دیسک پایین باشد، افزایش رم صرفاً هزینه را بالا میبرد و باید ابتدا گلوگاه کشف گردد.
استفاده از ابزارهایی نظیر `htop`، `iotop` و `glances` دقیقترین دید را در ساعات پیک به مدیر سرور ارائه میدهند.