پیامک، تلگرام یا بله؟ انتخاب کانال هشدار بدون خستگی از هشدار
کدوم هشدارهای قطعی با پیامک برن و کدوم با تلگرام یا بله، چطور بر اساس فوریت مسیریابی کنیم و چطور هشدارهای مهم زیر هشدارهای بیمورد گم نشن.
کار روی سرعت وقتی سادهتره که اول بزرگترین تأخیر رو درست کنید. قبل از هر تغییری اندازه بگیرید، هر بار یه چیز رو عوض کنید و بعدش هم مانیتور رو روشن نگه دارید تا بهبود بیسروصدا با انتشار بعدی از بین نره.
noc724 سایت، سرور و APIهای شما رو شبانهروز چک میکنه و همون لحظهای که چیزی خراب شد با پیامک، تلگرام یا بله خبرتون میکنه.
مشکل رو دو قسمت کنید:
اگه TTFB بالای یه ثانیه است، دستکاری بخش جلویی نجاتتون نمیده. اگه TTFB صد و پنجاه میلیثانیه است ولی صفحه ۶ مگابایت وزن داره، مشکل سرور نیست.
صفحههایی که برای همهی بازدیدکنندهها یکسانان (صفحهی اصلی، مقالهها، صفحهی محصول برای کاربر واردنشده) رو میشه چند دقیقه از کش ارائه داد و کلاً برنامه رو دور زد.
نتیجهی کوئریهای کند یا تماسهای API بیرونی رو در یه کش حافظه مثل Redis با زمان انقضای معقول نگه دارید.
لاگ کوئریهای کند رو روشن کنید، برای فیلترها و مرتبسازیهایی که واقعاً استفاده میکنید ایندکس بذارید و الگوهای «N+1» رو که برای هر آیتم لیست یه کوئری اجرا میکنن حذف کنید.
عکس، CSS، جاوااسکریپت و فونت رو از CDN نزدیک کاربرها، با عمر کش طولانی و اسم فایل نسخهدار ارائه بدید.
پروتکلهای مدرن درخواستهای زیادی رو روی یه اتصال چندگانه میکنن و بخش بزرگی از هزینهی بارگذاری فایلهای کوچیک زیاد رو حذف میکنن.
Brotli یا gzip رو برای HTML، CSS، جاوااسکریپت، JSON و SVG روشن کنید:
# nginx
gzip on;
gzip_types text/css application/javascript application/json image/svg+xml;عکسها معمولاً سنگینترین بخش صفحهان. اونها رو به اندازهی نمایش، در قالب WebP یا AVIF ارائه بدید و عکسهای پایین صفحه رو با loading="lazy" با تأخیر بارگذاری کنید.
به اسکریپتهایی که لازم نیست قبل از نمایش صفحه اجرا بشن defer اضافه کنید و بستههای بزرگ رو تقسیم کنید تا هر صفحه فقط چیزی که لازم داره رو بارگذاری کنه.
ویجتهای چت، ردیابها و اسکریپتهای تبلیغاتی هر کدوم درخواست و زمان CPU اضافه میکنن؛ گاهی از سرورهای کند خارجی. اونهایی که کسی استفاده نمیکنه رو حذف کنید و بقیه رو بعد از محتوای اصلی بارگذاری کنید.
فونتها رو روی سرور خودتون میزبانی کنید، از قالب WOFF2 استفاده کنید، فقط وزنها و مجموعهکاراکترهای لازم رو بذارید و از font-display: swap استفاده کنید تا متن فوراً نمایش داده بشه.
مستقیم به آدرس نهایی لینک بدید. هر ریدایرکت یه رفتوبرگشت کامل قبل از شروع هر کار دیگهای اضافه میکنه.
برای عکسها و محتوای جاسازیشده عرض و ارتفاع تعیین کنید تا چیدمان موقع بارگذاری نپره؛ سریعتر حس میشه و از کلیکهای اشتباه جلوگیری میکنه.
سرعت بیصدا پسرفت میکنه: یه تگ جدید اینجا، یه کوئری بدون ایندکس اونجا. یه مانیتور زمان پاسخ با هشدار کندی روی صفحههای کلیدی بذارید و بعد از هر انتشار نمودار رو نگاه کنید.
هر چیزی که اندازهگیریها میگن بزرگتره؛ معمولاً زمان سرور در سایتهای پویا و عکسها در سایتهای پرمحتوا.
نه. یه سرور سریع میتونه صفحهای تحویل بده که به خاطر عکسها و اسکریپتهای سنگین دیر رندر میشه. هر دو طرف رسیدگی لازم دارن.
همون اندازهگیری رو قبل و بعد، از همون لوکیشنها و حداقل در طول یه روز مقایسه کنید تا الگوهای ترافیک عادی هم در نظر گرفته بشن.
نویسنده
تیم noc724
تیم فنی مانیتورینگ آپتایم
ما noc724 رو میسازیم و اداره میکنیم؛ سرویس مانیتورینگ آپتایمی که سایت، سرور و API رو از چند شهر ایران چک میکنه. این راهنماها از مشکلهایی میان که خودمون و کاربرهامون موقع آنلاین نگه داشتن سرویسها باهاشون روبهرو میشیم.
تماس با تیمکدوم هشدارهای قطعی با پیامک برن و کدوم با تلگرام یا بله، چطور بر اساس فوریت مسیریابی کنیم و چطور هشدارهای مهم زیر هشدارهای بیمورد گم نشن.
چرا مانیتورهای آپتایم هشدار اشتباه میدن (اختلال شبکه، timeout، محدودیت نرخ، تغییر محتوا) و تنظیماتی که اینها رو حذف میکنه و هشدار واقعی رو سریع نگه میداره.
چطور یه چرخهی آنکال ساده و سیاست ارجاع هشدار بچینیم که هر هشدار حیاتی جواب داده بشه، بدون اینکه یه تیم کوچیک فرسوده بشه.