تاثیر CDN بر سرعت سایت چیست؟
تاثیر CDN بر سرعت سایت چیست و آیا تفاوت چشم گیری ایجاد میکند؟ تقریباً بیشتر ما که از اینترنت و وب استفاده میکنیم ناخودآگاه از مزایای CDN (شبکه توزیع محتوا) تاکنون بهره بردهایم. امروزه بیشتر غولهای تکنولوژی مانند گوگل، اپل و مایکروسافت از CDN ها برای کاهش تأخیر در بارگذاری محتوای صفحه وب استفاده میکنند.
یک شبکه توزیع محتوا به صورت معمول سرورها را در نقاط تبادل بین شبکههای مختلف قرار میدهد. این نقاط مبادله اینترنتی (IXP) مکانهای اولیهای هستند که ارائهدهندگان اینترنت مختلف به یکدیگر متصل میشوند تا دسترسی یکدیگر به منابع موجود در شبکههای مختلف خود را فراهم کنند. علاوه بر IXP ها، این شبکههای توزیع محتوا سرورها را در مراکز داده در مکانهایی در سراسر جهان در مناطق پرترافیک و مکانهای استراتژیک قرار میدهد تا بتوانند ترافیک را در سریعترین زمان ممکن جابجا کنند. مزایای اصلی CDN این است که میتواند محتوا را سریع به کاربر ارائه دهد.
تاثیر CDN بر سرعت سایت
بهینهسازی عملکرد و مزایای CDN به صورت کلی در سه دسته قرار میگیرند:
- کم کردن فاصله – CDN فاصله فیزیکی بین سرور داده درخواستی و کاربر را کم میکند و در نتیجه سرعت انتقال داده بالا میرود.
- بهینهسازی سخت افزار و نرم افزار – CDN میتواند زیرساختهای سخت افزاری و نرم افزاری را متعادل و بهینه کند.
- کاهش اندازه داده – CDN میتواند با کاهش اندازه فایل باعث افزایش سرعت انتقال آن به کاربر شود.
برای اینکه تاثیر CDN بر سرعت سایت را بهخوبی و در عمل درک کنیم در بخش بعدی یک مثال عملی از انتقال داده بین سرور و مشتری را با استفاده از CDN و بدون استفاده از CDN بررسی میکنیم.
تفاوت زمان بارگذاری با و بدون CDN چیست؟
برای درک بهتر تاثیر خرید CDN بر سرعت سایت ابتدا فرض کنید که شخصی در نیویورک آمریکا میخواهد به وبسایتی دسترسی داشته باشد که سرور آن در کشور سنگاپور است. فاصله فیزیکی بین این دو نقطه از جهان زیاد بوده و حدود ۹۵۲۰ مایل است. حال اگر یک سرور اصلی یا سرور میزبان در سنگاپور واقعشده باشد، هر درخواست برای هر دادههای صفحه وب باید از نیویورک به سنگاپور و دوباره برگردد. این به این معنی است که برای هر درخواست اتصال باید از روترهای زیادی عبور کند.
برای آنکه بفهمید که تعداد اتصالات لازم برای برقراری یک ارتباط چند است، میتوان از ابزار tracert/traceroute در سیستمعاملهای مختلف برای به ست آوردن آن استفاده کرد. به این دلیل که درخواست از نیویورک به سنگاپور باید از تعداد اتصالات روترهای زیادی بور کند در نتیجه زمان تأخیر و زمان پردازش قابلتوجهی خواهد داشت و این خود به خود زمان رفت و برگشت یا RTT را افزایش میدهد و باعث میشود که محتوای صفحه وب با تأخیر بارگذاری شود. اندازهگیری کل این سفر رفت و برگشت در دنیای ارتباطات به عنوان RTT (زمان رفت و برگشت) شناخته میشود. با نادیده گرفتن پهنای باند موجود و تراکم شبکه بالقوه، بیایید نمونهای از عوامل تأخیر را بررسی کنیم.
مثال ۱: اندازهگیری زمان رفت و برگشت بدون CDN
مثال زیر زمان رفت و برگشت بدون CDN را برای مثال فرضی بالا نشان خواهد داد.
برای مثال:
- ۲۵۰ میلیثانیه طول میکشد تا درخواست از نیویورک به سنگاپور برود.
- برقراری یک اتصال TCP/IP 3 250 میلیثانیه تأخیر اضافه میکند.
- صفحه وب به بارگذاری ۵ داده د متشکل از تصاویر، فایلهای جاوا اسکریپت و خود صفحه وب نیاز دارد.
حال باید محاسبه کنیم که چقدر طول میکشد تا این صفحه وب بارگیری شود. به صورت تقریبی مدت زمان لازم برای بارگیری به صورت زیر است:
- ۷۵۰ میلیثانیه: اتصال TCP/IP بین مشتری در نیویورک و سرور اصلی در سنگاپور ایجاد میشود.
- ۲۵۰ میلیثانیه: درخواست HTTP برای صفحه وب از نیویورک به سنگاپور میرود.
- ۲۵۰ میلیثانیه: درخواستکننده در نیویورک پاسخی از سرور مبدأ در سنگاپور با کد وضعیت ۲۰۰ و صفحه وب شامل تمام داراییهای اضافی مورد نیاز دریافت میکند.
- ۲۵۰ میلیثانیه: هر یک از ۵ دارایی توسط مشتری در نیویورک درخواست شده است.
- ۱۵۰۰ میلیثانیه: پنج دارایی به صورت ناهمزمان از سرور مبدأ در سنگاپور به مشتری تحویل داده میشوند.
در این مثال ساده، کل زمان رفت و برگشت برای بارگیری این صفحه وب حدود ۳۰۰۰ میلیثانیه است. همانطور که میبینید، با هر بار درخواست و ارسال پاسخ، کل مسیر بین کاربر در نیویورک و مبدأ سنگاپور طی میشود. با بزرگتر شدن وبسایتها و نیاز به لود تعداد بیشتری از دادهها، تأخیر بین نقطه A و نقطه B همچنان افزایش مییابد و اینجاست که تاثیر CDN بر سرعت سایت نمایان میشود.
مثال ٢: اندازهگیری زمان رفت و برگشت با CDN
در این مثال تاثیر CDN بر سرعت سایت را خواهیم دید.
حال بیایید همین درخواستهای بالا را این بار با استفاده از یک شبکه توزیع محتوا اندازه بگیریم تا مزایا CDN برای ما بیشتر آشکار شود. فرض کنیم در طول مسیر سایت سنگاپور از یک CDN با سروری در آتلانتا استفاده میکند که حاوی یک نسخه کش شده از وبسایت استاتیک است که در این صورت:
- یک درخواست برای رفتن از نیویورک به آتلانتا ۵۰ میلیثانیه طول میکشد.
- برقراری یک اتصال TCP/IP 3 نمونه ۵۰ میلیثانیه تأخیر اضافه میکند
- صفحه وب به ۵ نوع داده متشکل از تصاویر، فایلهای جاوا اسکریپت و خود صفحه وب نیاز دارد.
بیایید ببینیم تقریباً چقدر طول میکشد تا این صفحه وب با استفاده از CDN بارگیری شود:
- ۱۵۰ میلیثانیه: اتصال TCP/IP بین کلاینت در نیویورک و سرور CDN در آتلانتا ایجاد میشود.
- ۵۰ میلیثانیه: درخواست HTTP GET برای صفحه وب از مشتری به سرور CDN میرود.
- ۵۰ میلیثانیه: مشتری یک پاسخ از حافظه پنهان سرور CDN همراه با صفحه وب دریافت میکند که شامل لیستی از تمام دادههای اضافی هنوز مورد نیاز است.
- ۵۰ میلیثانیه: هر یک از ۵ داده توسط مشتری درخواست میشود.
- ۸۰۰ میلیثانیه: پنج داده به صورت ناهمزمان از سرور CDN به مشتری تحویل داده میشوند.
کل زمان رفت و برگشت برای بارگیری این صفحه وب حدود ۱۱۰۰ میلیثانیه است و این تاثیر CDN بر سرعت سایت است. در این مثال، کاهش فاصله بین مشتری و محتوا، ۱۹۰۰ میلیثانیه بهبودی در تأخیر محتوای استاتیک ایجاد میکند که نشاندهنده بهبودی نزدیک به ۲ ثانیه در زمان بارگذاری است و این مزیت اصلی CDN در یک مثال واقعی است.
با کاهش کل مسافتی که تمام ترافیک لازم برای پیمودن نیاز دارد، هر کاربر تا وبسایت مقداری در زمان بارگذاری صرفهجویی میکند. ازآنجاییکه با افزایش زمان انتظار، کاربران خیلی سریع شروع به ترک سایت میکنند (پرش)، این بهبود نشاندهنده تجربه کاربری بهتر و زمان کاربر بیشتر در صفحه است.
چگونه یک CDN محتوا را بارگیری می کند؟
همانطور که قبلاً ذکر شد، معمولاً وقتی یک کلاینت، فایلی را از یک سرور اصلی درخواست میکند، درخواست باید به آن سرور رفته و دوباره برگردد این همان زمان رفت و برگشت است. شبکه توزیع محتوا با انتقال دادهها از سرور مبدأ به سرور CDN در فرآیندی به نام کش، تأخیر را بسیار بهبود میبخشد. امروزه اغلب CDN ها دارای امکانات پیشرفتهای هستند که کش محتوای پویا را نیز برای ما فراهم میکنند. هنگامیکه دادهها کش میشوند، CDN محتوا را از نزدیکترین مرکز داده CDN به مشتری ارائه میدهد. خواند مقاله نحوه کش محتوای ایستا و پویا در این رابطه خالی از لطف نیست.
تصویر زیر نحوه کش بدون CDN را بیان میکند.
تصویر زیر نحوه کش با CDN را نشان میدهد:
پس از برقراری اتصال TCP، کلاینت یا مشتری یک درخواست HTTP را به شبکه CDN ارسال میکند. اگر تابهحال کشی صورت نگرفته باشد، شبکه توزیع محتوا ابتدا با درخواست اضافی بین سرور مبدأ و سرور CDN، محتوا را از مبدأ دانلود میکند.
به صورت کلی کش CDN در ۴ مرحله زیر انجام میگیرد و تاثیر CDN بر سرعت سایت اتفاق خواهد افتاد:
- زمانی که کاربر قصد داری یک صفحه وب را درخواست کند، درخواست کاربر به نزدیکترین سرور CDN هدایت میشود.
- پس از آن سرور CDN برای محتوایی که کاربر درخواست کرده است، درخواستی را به سرور اصلی یا همان سرور مبدأ ارسال میکند.
- سرور مبدأ به درخواست سرور CDN پاسخ میدهد.
- در نهایت سرور CDN به درخواست کاربر پاسخ میدهد.
مقدار نزدیکی CDN با کاربر پس از درخواست اولیه به سرور مبدأ معلوم میشود. زمانی که دیتای درخواستی از سرور مبدأ به شبکه CDN کش شوند، هر درخواست بعدی از سوی کاربر فقط باید تا نزدیکترین سرور CDN برود. این یعنی اگر نزدیکترین سرور CDN به سرور مبدأ نزدیکتر باشد، میتوان تأخیر را کاهش داد و محتوا را بسیار سریعتر ارائه کرد.
باید به این نکته توجه داشته باشیم که زمان مورد نیاز برای اینکه دیتا دانلود شود و درخواستها پردازش شوند در اینجا لحاظ نشده است و فقط زمان رفت و برگشت بین این دو مکان محاسبه شده است. سایر عوامل میتوانند در تأخیر نقش داشته باشند. مثلاً عواملی مانند سرعت هارددیسک، ترافیک شبکه و سایر موارد.
تاثیر CDN بر سرعت سایت با کاهش حجم فایل
برای اینکه زمان بارگذاری صفحه بین مبدأ و مقصد بهبود یابد، CDN نقش اساسی در کاهش این زمان دارد و آن هم با کاهش مقدار کلی داده انتقالی امکانپذیر است. برای این منظور CDN هر دو زمان تأخیر و پهنای باند مورد نیاز کاهش را کاهش میدهد. نتیجه این کار بارگذاری سریعتر صفحات و از طرفی صرف هزینههای پهنای باند کمتری است و تاثیر CDN بر سرعت سایت قابل مشاهده خواهد بود.
دو مؤلفه کلیدی در این کاهش نقش دارند:
کوچک سازی با CDN
کوچکسازی در CDN به فرآیندی گفته میشود که در آن بلوکهای کد اندازه بلوکهای کد کاهش میابد. بهینهسازی کد در CDN بهگونهای صورت میگیرد که کد فشردهتر و سبکتر شود و این باعث کاهش زمان بارگذاری یک صفحه میشود. به مثال زیر در این رابطه توجه کنید.
در اینجا یک نمونه بلوک کد قبل و بعد از کوچکسازی با CDN وجود دارد:
قبل از کوچکسازی: هشت خط کد
پس از کوچکسازی: به یک خط کد کاهش مییابد
اکنونکه قطعه کد از هشت خط به یک خط کاهشیافته است، اندازه کلی فایل نیز کاهشیافته است. این بدان معنی است که انتقال فایل زمان کمتری میبرد که تأخیر را کاهش میدهد و به بارگذاری سریعتر محتوا کمک میکند.
فشرده سازی فایل با CDN
فشردهسازی فایل یکی از بهترین راهها برای کاهش پهنای باند مورد نیاز هنگام انتقال دادهها و بارگذاری سریعتر صفحات است و به صرت کلی موجب تاثیر CDN بر سرعت سایت خواهد شد. در این میان GZip یک روش رایج فشردهسازی است و بهترین روش برای استفاده در هنگام انتقال صفحات وب در نظر گرفته میشود. بسیاری از ارائهدهندگان CDN بهطور پیشفرض GZip را فعال کردهاند. صرفهجویی در فشردهسازی GZip بسیار قابل توجه است و معمولاً فایلهای فشرده حدود ۵۰ تا ۷۰ درصد از اندازه فایل اولیه کاهش مییابد.
CDN از چه سخت افزاری میتواند برای بهبود سرعت استفاده کند؟
تا آنجا که به بهینهسازی سخت افزار CDN مربوط میشود، استفاده از هارد درایوهای حالت جامد (SSD) نسبت به درایوهای هارددیسک سنتی (HDD) مزایای قابلتوجهی دارد. درایوهای حالت جامد میتوانند فایلها را تا ۳۰ درصد سریعتر از هارددیسک سنتی باز کنند و انعطافپذیرتر و قابلاعتمادتر هستند.
در اولین CDN ها، دادهها بر روی هارددیسک سنتی ذخیره میشد. اکنون با برخی از سرویسهای CDN، حافظه پنهان میتواند در درایوهای حالت جامد رخ دهد. نقطهضعف SSD ها هزینه است. یک SSD میتواند تا ۵ برابر گرانتر هارددیسکهای سنتی باشد. به همین دلیل، برخی از سرویسهای CDN اغلب از استفاده از SSD اجتناب میکنند و در عوض فناوری قدیمیتر را انتخاب میکنند. امیدوارم که مقاله ما در رابطه با تاثیر CDN بر سرعت سایت برای شما مفید بوده باشد.
سرویس CDN ابری هاست ایران
سرویس CDN ابری هاست ایران، با نقاط مختلف ترافیکی (PoP Site) فعال و قدرتمند در مناطق جغرافیایی مختلف ایران و جهان، محتوای سایت شما را از نزدیکترین دیتاسنتر با سریعترین و امنترین حالت ممکن، در اختیار کاربران قرار میدهد. هدف اولیهی این سیستم، صرفه جویی در زمان، بالا بردن سرعت پاسخ به درخواست کاربران و افزایش ظرفیت پاسخ دهی است. هم اکنون از طریق صفحه سرویس CDN ابری میتوانید از مزایای این سرویس هاست ایران آگاه شوید.