آنچه در این مقاله میخوانید:
- Cache Hit Ratio چیست؟
- Cache Hit Ratio برای وبسایتها چه مقداری باید باشد؟
- محاسبه Cache Hit Ratio
- آیا Cache Hit Ratio بالا همیشه به معنای موثر بودن CDN است؟
- چگونه میتوان Cache Hit Ratio را در CDN افزایش داد؟
استفاده از Cache (حافظه پنهان) در فناوریهای مختلف، از جمله شبکههای توزیع محتوا (CDN) بسیار مهم و کاربردی است. بنابراین، اجرای درست و قابل اطمینان عملیات Caching امری ضروری محسوب میشود. چگونه میتوان از عملکرد صحیح Caching اطمینان حاصل کرد؟
برای پاسخ به این سوال، نیاز به محاسبه Cache Hit Ratio (نسبت کش هیت) است. این معیار نشان میدهد که محتوای وبسایت تا چه میزان به جای سرور مبدأ از حافظه پنهان به کاربر ارائه میشود.
قبلا در مقاله “Cache (حافظه کش) چیست و چگونه کار میکند؟” بهطور مفصل راجع به Cache توضیح دادیم. حال، در این مقاله میخواهیم بدانیم که معیار Cache Hit Ratio چیست و چگونه میتوانیم آن را اندازهگیری کنیم.
Cache Hit Ratio چیست؟
Cache Hit Ratio یک معیار بسیار مهم برای اندازه گیری میزان مؤثر بودن Cache در CDN است. این معیار، وضعیتی را توصیف میکند که در آن محتوای شما به جای سرور اصلی، از حافظه پنهان (Cache) سرور لبه ارائه میشود.
مقدار Cache Hit Ratio برای وبسایتهای داینامیک (محتوای پویا) که در آن محتوا بهطور مکرر تغییر میکند، در مقایسه با وبسایتهای استاتیک (محتوای ثابت)، کمی کمتر خواهد بود. با این حال، CDNهای مدرن، مانند CDN اَبر دِراک، میتوانند کش داینامیک را نیز انجام دهند.
مهم: Cache Hit Ratio معیاری است که برای هر نوع کش اعمال میشود و فقط برای اندازه گیری عملکرد CDN نیست. با این حال، این معیار برای CDNها اهمیت ویژهای دارد.
اگر از CDN اَبر دِراک استفاده میکنید، میتوانید مقدار Cache Hit Ratio را در بخش گزارش عملکرد خود مشاهده کنید.
Cache Hit Ratio برای وبسایتها چه مقداری باید باشد؟
مقدار Cache Hit Ratio به تعداد Cache Hit (کش هیت) و Cache Miss (کش میس) بستگی دارد.
به طور کلی، برای اکثر وبسایتها، hit ratio بین 95% الی 99% و miss ratio بین 1% الی 5% ایدهآل است. البته باید به این نکته توجه داشت که این اعداد معمولا برای وبسایتهایی که بیشتر محتوای ثابت دارند، در نظر گرفته میشود؛ برای محتوای پویا یا برای فایلهای خاصی که میتوانند اغلب تغییر کنند، این اعداد بسیار متفاوت خواهند بود.
محاسبه مقدار Cache Hit Ratio
فرمول محاسبه Cache Hit Ratio به شرح زیر است:
برای مثال، اگر cache hit = 49 و cache miss = 12 باشد، طبق فرمول بالا، نتیجه برابر با 0.803 میشود که با ضرب این مقدار در 100، نتیجه نهایی 80.3% خواهد بود.
آیا Cache Hit Ratio بالا همیشه به معنای موثر بودن CDN است؟
درست است که Cache Hit Ratio معیار مهمی برای CDN محسوب میشود، اما معیارهای دیگری نیز در اثربخشی CDN مهم هستند، مانند RTT (زمان رفت و برگشت) و مکان ذخیرهسازی محتوای کش. برای بهینه سازی این معیارها، سرویس CDN باید محتوا را تا حد امکان نزدیک به کاربران نهایی (کاربران و مشتریان وبسایت) ذخیره کند.
چگونه میتوان Cache Hit Ratio را در CDN افزایش داد؟
برای افزایش مقدار Cache Hit Ratio چند راه حل وجود دارد که در ادامه به برخی از آنها اشاره میکنیم:
1- بهینه سازی cache-control header
هدر Cache-Control شامل دستورالعملهای مکانیزم کش کردن و ویژگیهایی مانند زمان انقضا (TTL) است. همچنین، در این هدر مشخص میشود که محتوای مورد نظر کاربر دقیقا از چه طریقی (حافظه پنهان یا سرور اصلی) ارائه شده است.
مقادیر ویژگیهای هدر باید با توجه به میزان تغییرات محتوا مشخص شوند. بهینهسازی این مقادیر میتواند به افزایش تعداد بازدیدهای کش در CDN کمک کند.
مثال: زمان TTL را طوری تنظیم کنید که به بهترین حالت ممکن با محتوای شما مطابقت داشته باشد. برای مثال، اگر یک محتوا (مانند متن یا عکس) تقریبا هر دو هفته یکبار تغییر میکند، زمان کش هفت روزه میتواند مناسب باشد. با این حال، اگر دسترسی به این محتوا باید بهطور مکرر انجام شود، ممکن است بخواهید TTL آن را یک روزه یا حتی کمتر تنظیم کنید.
2- غیرفعال سازی کوکیها (Cookies)
کوکیها غیرقابل کش هستند، بنابراین هر فایلی که حاوی کوکی باشد نیز غیرقابل کش خواهد بود. پس بهتر است کوکی محتواهایی که میخواهید توسط CDN و از طریق کش به کاربر ارائه شوند را غیرفعال کنید.
3- غیرفعال سازی کوئری استرینگ (Query Strings)
کوئری استرینگ کاربردهای زیادی دارد، مانند تعامل با برنامههای کاربردی وب و APIها و جمعآوری معیارهای کاربران وبسایت. اما، مشکل زمانی ایجاد میشود که کوئری استرینگ در URL گنجانده میشود. در این حالت، CDN هر یک از این نوع URLها را به عنوان یک آبجکت منحصربفرد در نظر میگیرد و آن را به سمت سرور مبدأ هدایت میکند، حتی اگر محتوای درخواستی در حافظه پنهان CDN موجود باشد. بر این اساس، هر درخواست به عنوان Cache Miss طبقه بندی شده و در نتیجه، منجر به کاهش غیر ضروری Cache Hit Ratio میشود.
4- افزایش فایلهای قابل کش
با افزایش تعداد فایلهای قابل کش و فضای کش در سمت CDN میتوان مقدار Cache Hit Ratio را افزایش داد. برای دریافت راهنمایی بیشتر در رابطه با انجام این کار در پنل کاربری اَبر دِراک، با پشتیبان فنی تماس بگیرید.
5- جداسازی فضای ذخیرهسازی فایلهای داینامیک و استاتیک
بهتر است که فضای ذخیرهسازی فایلهای داینامیک و استاتیک از یکدیگر جدا باشند تا محاسبه Cache Hit Ratio با دقت بیشتری انجام گیرد. برای این کار، میتوان از دستورات سفارشی (Costume Rule) استفاده کرد.
تمام موارد ذکر شده در بالا (به جز مورد 4) در پنل کاربری اَبر دِراک قابل تنظیم هستند و شما میتوانید به راحتی از امکانات موجود در پنل برای اجرای راه حلهای گفته شده استفاده کنید.
کش کردن (Caching) بخش مهمی از عملیات CDN است و محاسبه میزان مؤثر بودن این کشها میتواند معیار خوبی از عملکرد CDN را نشان دهد. اما، این تنها معیار برای اندازهگیری مؤثر بودن CDN نیست. هدف اصلی CDN افزایش سرعت و حفظ قابلیت اطمینان وبسایتها است و مجموعهای از معیارهای مختلف در این نتیجهگیری مؤثر خواهند بود.
برای آشنایی بیشتر با محصول CDN اَبر دِراک کلیک کنید.