تأثیر لوکیشن سرور بر سرعت سایت و تجربه کاربری

تأثیر لوکیشن سرور بر سرعت سایت و تجربه کاربری
azarsys team
مدت زمان مطالعه : 21 دقیقه
0 کامنت
۱۴۰۵/۰۷/۰۲

یه سایت می‌تونه واسه کاربرهای کشورهای مختلف، سرعت و عملکرد متفاوتی داشته باشه که یکی از اصلی‌ترین دلایلش لوکیشن سروره. ارتباط بین مرورگر کاربر و سرور، بسته به کیفیت اینترنت، مسیرهای شبکه‌ای و عملکرد خودِ سرور، زمان متفاوتی طول می‌کشه. توی این پست قراره ببینیم لوکیشن سرور چطور روی سرعت سایت و تجربه کاربرها اثر می‌ذاره.

تأثیر فاصله کاربر تا دیتاسنتر و مسیر شبکه بر Latency و سرعت سایت

لوکیشن سرور (Server Location) چیه و چرا مهمه؟

وقتی حرف از موقعیت سرور زده می‌شه منظور موقعیت جغرافیایی دیتاسنتریه که سرور در اون قرار گرفته. فاصله فیزیکی ای که بین سرور میزبانِ یه سایت و بازدیدکنندگانش وجود داره روی تجربه کاربران و سرعت بالا اومدن همون سایت تاثیر داره. البته لوکیشن سرور تنها عاملی نیست که می‌تونه روی سرعت سایت اثر بزاره و مواردی مثل کیفیت شبکه، Network Routing ،Peering ،CDN و RTT هم روی Latency یا تاخیر شبکه نقش دارن و می‌تونن روی عملکرد سایت تاثیر مستقیم یا غیرمستقیم بزارن.

تاثیر لوکیشن سرور روی Core Web Vitals

گوگل برای بررسی بعضی از جنبه‌های تجربه کاربر در صفحات وب، سه معیار اصلی به اسم Core Web Vitals معرفی کرده. لوکیشن سرور می‌تونه به صورت غیرمستقیم روی هرکدوم از این معیارهای اثر متفاوتی بزاره:

Largest Contentful Paint :LCP یکی از معیارها واسه اندازه‌گیری سرعت بارگذاری محتوای اصلی صفحه هست. لوکیشن سرور می‌تونه با افزایش یا کاهش زمان پاسخ سرور، روی LCP اثر بذاره؛ در حالی که INP و CLS معمولاً بیشتر تحت تأثیر عوامل دیگری قرار دارن.

Interaction to Next Paint :INP میزان پاسخگویی صفحه به تعاملات کاربر رو بررسی می‌کنه و معمولاً بیشتر تحت تأثیر پردازش JavaScript و عملکرد مرورگر قرار داره. موقعیت سرور بیشتر زمانی می‌تونه روی INP اثر داشته باشه که پاسخ به تعامل کاربر نیازمند ارسال درخواست جدید به سرور باشه.

CLS یا Cumulative Layout Shift مربوط می‌شه به پایداری بصری سرویس یعنی بررسی می‌کنه که عناصر سایت خود به خود جابه‌جا می‌شن یا نه. لوکیشن سرور خیلی روی این معیار تاثیر نداره و اگه هم داشته باشه به صورت غیرمستقیمه. مثلا موقعی که یک منبع داینامیک دیرتر دریافت شود و بعد از نمایش محتوا وارد صفحه شود.

تأثیر متفاوت لوکیشن سرور بر معیارهای Core Web Vitals شامل LCP و INP و CLS

معیارهای بررسی عملکرد شبکه با تاثیرپذیری از لوکیشن سرور

وقتی کاربر وارد یه سایتی می‌شه، داده‌ها از مسیرها و شبکه‌های مختلفی می‌گذرن و بین مرورگر و سرور سایت جایجا می‌شن. موقعیت سرور می‌تونه روی مسیر و تعداد شبکه‌هایی که داده‌ها ازشون عبور می‌کنن تاثیر بزاره و درنتیجه عملکرد شبکه رو هم تحت تاثیر قرار بده:

Latency: تاخیر شبکه شاخصی هست که تاثیر مستقیم روی سرعت سایت داره. هرچقدر لوکیشن سرور از کاربر دورتر باشه و مسیری که دیتا قراره از سرور تا مرورگر کاربر طی کنه پیچیده تر و طولانی تر باشه، زمانی که طول می‌‌کشه تا سایت براش بالا بیاد هم بیشتر می‌شه. البته Latency فقط به فاصله جغرافیایی بستگی نداره ولی جزو مواردی هست که می‌تونه ازش تاثیر مستقیمی بپذیره.

RTT (Round Trip Time): معیاریه که به مدت زمان رفت و برگشت داده‌ها در طول شبکه مربوط می‌شه. RTT پایین‌تر می‌تونه به پاسخگویی بهتر سایت کمک کنه و در نتیجه به‌صورت غیرمستقیم روی تجربه کاربر اثر بذاره. این شاخص توی مواردی مثل درخواست‌های متعدد، API و ارتباطات داینامیک اهمیت بیشتری داره. البته مثل بقیه معیارها نمی‌شه قطعی گفت که بالا یا پایین بودن این معیار فقط به لوکیشن سرور وابسته هست.

Packet Loss: این اتفاق می‌تونه بخاطر شلوغ بودن شبکه، مشکلات ISP، مشکلات سخت افزاری و… باشه. فاصله جغرافیایی به تنهایی باعث پکت لاس (Packet Loss) نمیشه، اما مسیرهای طولانی‌تر معمولاً از شبکه‌ها و تجهیزات واسط بیشتری رد می‌شن. واسه همین، توی یه سری شرایط خاص، احتمال اینکه بسته در طول مسیر با مشکلات شبکه‌ای مواجه بشه بالاتر میره! نتیجه Packet Loss می‌تونه مواردی مثل Timeout، قطع ارتباط، دانلود ناقص و تاخیرهای زیاد باشه که همین موضوع روی تجربه کاربری هم تاثیر می‌زاره.

Routing: مسیرهایی که داده‌ها ازشون عبور می‌کنن می‌تونن از نظر تعداد Hop، فاصله، کیفیت، تراکم و ظرفیتشون باهمدیگه فرق داشته باشن. لوکیشن سرور تا حدی مشخص می‌کنه که داده‌ها باید به کدوم منطقه و شبکه‌ها برسند البته لزوما قرار نیست نزدیک ترین سرور همیشه روتینگ بهتری داشته باشه! روتینگ مناسب می‌تونه باعث کاهش تاخیر، ارتباط پایداتر و مسیر کارآمدتر بشه.

Peering: ارتباط بین دو شبکه یا Autonomous System می‌تونه توی مسیر مستقیم و مناسب یا برعکس توی مسیر نامناسبی باشه. لوکیشن سرور مستقیما خوب یا بد بودن مسیر رو تعیین نمی‌کنه ولی خب مشخص می‌کنه که شما توی چه دیتاسنتر، منطقه و شبکه قرار می‌گیرین و هرکدوم از اینا می‌تونن ارتباطات Peering متفاوتی داشته باشن. Peering مناسب می‌تونه تاخیر شبکه رو کمتر، RTT رو بهتر و ارتباط رو پایدارتر کنه.

بررسی اثرات TTFB بالا در پاسخگویی سرور

(TTFB (Time To First Byte وقتی بالا باشه یعنی مرورگر اولین بایت جواب سرور رو دیرتر می‌گیره. لوکیشن سرور یکی از عوامل مهمی هست که می‌تونه روی این شاخص تاثیر بزاره. لوکیشن سرور بیشتر روی بخش انتقال داده توی شبکه اثر می‌ذاره، اما TTFB به فاکتورهای دیگه‌ای مثل عملکرد بک‌اند، دیتابیس، سیستم کش و میزان منابع خودِ سرور هم وابسته‌ست. وقتی کاربر یه درخواستی رو به سایت می‌فرسته فرایند زیر اتفاق می‌افته:

کاربر ← درخواستش رو از طریق شبکه ارسال می‎‌کنه ← درخواست به سرور می‌رسه ← توسط Backend پردازش می‌شه ← با Database/Cache ارتباط برقرار می‌شه ← جواب آماده و اولین بایت جواب به کاربر ارسال می‌شه

مسیر درخواست کاربر تا سرور و عوامل مؤثر بر TTFB شامل شبکه بک‌اند دیتابیس کش و CDN

موقعیت سرور می‌تونه توی بخش‌های مختلف این فرایند بسته به اینکه هرکدوم کجا قرار دارن تاثیر بزاره مخصوصا اگه روی یک سرور نباشن:

  • لوکیشن سرور معمولا روی پردازش Backend مستقیم تاثیر نمیزاره، ولی لوکیشن اجزای مختلف شبکه با بک اند و سرویس‌هایی که استفاده میشن می‌تونن زمان پردازش درخواست رو بیشتر کنن. اگه درخواست به سرور برسه و بک اند نیاز باشه که کد PHP، Python یا Node.js اجرا کنه، اطلاعات کاربر رو بررسی کنه، دیتابیس رو Query کنه یا واسه تکمیل درخواست منتظر جواب API باشه بحث تاخیر شبکه هم مطرح می‌شه که لوکیشن سرور عامل مهمی هست که می‌تونه روش تاثیر بزاره.
  • لوکیشن و موقعیت جغرافیایی سرور، خودش به تنهایی عملکرد داخلی دیتابیس رو عوض نمی‌کنه، ولی فاصله فیزیکی و تاخیر شبکه (Latency) بین بک‌اند و دیتابیس می‌تونه زمان رفت‌وبرگشت Query دیتابیس رو بالا ببره. توی این وضعیت، بک‌اند باید مدت زمان بیشتری منتظر جواب دیتابیس بمونه و همین باعث می‌شه زمان آماده شدن پاسخ سرور و در نهایت مقدار TTFB بیشتر بشه.
  • توی این فرایند Cache روی پردازش و زمان پاسخ دهی اثر می‌زاره و یجورایی برای اینه که Backend مجبور نباشه واسه هر درخواستی هی به دیتابیس مراجعه کنه. لوکیشن سرور روی سرعت خود Cache تأثیر مستقیمی نداره، اما محل قرارگیری Cache می‌تونه روی زمان ارتباط بین اجزای مختلف زیرساخت اثر بذاره. CDN هم با ارائه فایل‌های استاتیک و محتوای کش‌شده از سرورهای Edge نزدیک‌تر به کاربر، می‌تونه زمان دریافت این محتوا رو کاهش بده.
  • منابع سرور مشخص میکنه که توانایی سرور واسه پردازش درخواست‌ها چقدر می‌تونه باشه و هرکدوم از منابع تحت فشار باشن میتونه عمل Processing با تاخیر انجام بشه. لوکیشن سرور و دیتاسنتر میتونن بصورت غیرمستقیم در این زمینه اثر داشته باشن، مثلا وقتی یه لوکیشن رو انتخاب میکنی معمولا Region ،Cloud Provider و دیتاسنتر رو هم انتخاب میکنی و توی Regionهای مختلف ممکنه نوع Instance، ظرفیت منابع و شرایط شبکه متفاوت باشه.

لوکیشن سرور چه تأثیری روی سئوی سایت و تجربه کاربرها می‌ذاره؟

لوکیشن سرور مستقیماً رتبه گوگل رو تغییر نمیده، اما تأثیرش روی تأخیر شبکه و سرعت سایت، غیرمستقیم روی سئو و تجربه کاربر اثر میذاره. انتخاب غلط زیرساخت باعث بالا رفتن تأخیر (Latency) و کندی سایت میشه و کاربرها رو می‌پرونه؛ این موضوع توی فروشگاه‌های آنلاین و کارهای مالی که ثانیه‌ها توش کلاً سرنوشت‌سازن، خیلی حیاتی‌تره. واسه پروژه‌های بین‌المللی هم ترکیبِ یه سرور اصلیِ خوش‌مسیر با سیستم CDN، تفاوت سرعتِ مناطق مختلف رو کمتر می‌کنه.

چجوری تاثیر لوکیشن سرور روی سایتم رو محاسبه کنم؟

برای محاسبه تاثیر موقعیت سرور روی سایت، بهتره سایت رو از چندتا موقعیت جغرافیایی مختلف تست کنی و بعد نتایجی که از هرموقعیت به دست اومده رو باهم مقایسه کنی. نکته مهمی که باید توی مقایسه نتایج بهش توجه کنید اینه که فقط سرعت کلی صفحه رو نگاه نکنید؛ باید معیارهای مختلفی مثل تاخیر شبکه، TTFB و زمان بارگذاری سایت و.. رو هم درنظر بگیرین و ببینین چقدر تغییر می‌کنن.

چگونه لوکیشن سرور مناسب انتخاب کنیم؟

واسه انتخاب سرور مناسبِ سایتتون نباید فقط به موقعیت جغرافیایی اون سرور توجه کنید. باید از لحاظ‌های مختلف سایتتون رو بررسی کنین و بعد تصمیم بگیرین:

  • شاید بشه گفت مهم ترین سوال اینه که از خودتون بپرسین ” مخاطبان سایت من کیا هستن و اکثرا کجا زندگی می‌کنن؟” یا اینکه “بیشتر کاربرای سایت من از کجا به سرویسم وصل می‌شن؟”. اگه سرویستون کاربران بین المللی داره، اینجا در کنار لوکیشن سرور، استفاده از CDN می‌تونه خیلی کمک کننده باشه. با اینکه CDN نمیتونه جایگزین انتخاب لوکیشن مناسب واسه سرور باشه ولی می‌تونه محتوای Cache‌شده و فایل‌های استاتیک رو به کاربر نزدیک کنه.
  • RTT مورد مهم دیگه ای هست که باید بهش توجه کنین. خود RTT به عامل‌های مختلفی مثل کیفیت شبکه دیتا سنتر، ارتباطی که بین شبکه ها وجود داره، تعداد مسیرها و..  ربط داره ولی خب اگه بخوایم کلی بررسی کنیم، معمولا وقتی کاربرای یه سایتی مثلا توی هلند زندگی میکنن، سروری هم که توی هلنده معمولا RTT کمتری واسه کاربرای اونجا داره.
  • نوع سایت یا سرویسی که می‌خواین براش سرور تهیه کنین هم مهمه. واسه سایت‌هایی که بیشتر متنی و وبلاگ طور هستن تاخیر چند ده میلی ثانیه ای ممکنه خیلی مهم نباشه ولی خب واسه موردهایی مثل فروشگاه‌های اینترنتی و بازی های آنلاین یا اپلیکیشن‌هایی که real-time هستن، لوکیشن سرور اهمیت بیشتری داره و مخاطبان بیشتری رو تحت تاثیر قرار میده.
  • موقعیت دیتابیس، Backend، Frontend و بقیه زیرساخت‌ها رو هم باید بررسی کنین. بهتره بخش‌هایی که ارتباط زیادی با هم دارن، از نظر شبکه‌ای و جغرافیایی نزدیک به هم باشن. مثلاً اگه بک‌اند توی یه ریجن باشه و دیتابیس توی یه ریجن خیلی دور قرار بگیره، تأخیر ارتباط بین اون‌ها می‌تونه زمان پاسخگویی به درخواست‌ها رو بالا ببره. البته CDN هم می‌تونه با نزدیک کردن فایل‌های استاتیک و محتوای کش‌شده به کاربرها، زمان دریافت این محتوا رو کاهش بده.
  • توی انتخاب لوکیشن سرور باید به نوع داده‌هاتون هم دقت کنید. بعضی وقتا بخاطر مواردی مثل قوانین حفاظت از داده، قوانین داخلی شرکت، قرارداد با مشتری، الزامات قانونی صنعت و یا Data Residency ممکنه یه شرکت نیاز پیدا کنه که اطلاعات کاربران و مشتریانش رو توی یه محدوده خاص و مشخص نگه داره. لوکیشن سرور فقط یه تصمیم فنی مربوط به سرعت نیست و گاهی وقت‌ها قوانین یا بندهای قرارداد می‌تونن انتخاب ریجن (Region) رو محدود کنن.

عوامل مؤثر در انتخاب لوکیشن سرور شامل محل کاربران Latency نوع سایت CDN و موقعیت زیرساخت

کدام لوکیشن سرور برای چه کاری پیشنهاد میشه؟

وقتی می‌خواین لوکیشن سرور مناسب برای سایت یا کسب و کارتون رو انتخاب کنین باید مواردی مثل نوع کسب و کارتون، محل کاربران اصلیتون، نوع درخواست کاربرا، میزان حساسیت سرویستون به تاخیر شبکه و… رو درنظر بگیرین. توی جدول زیر سعی شده با چند مثال توی زمینه های مختلف این موضوع دقیق تر بررسی بشه:

نوع سایت یا کسب‌و‌کار محل کاربران اصلی حساسیت به Latency لوکیشن سرور پیشنهادی
سایت محلی یک شهر یا منطقه خاص  متوسط نزدیک منطقه کاربران با معماری Origin نزدیک + CDN اختیاری
سایت شرکتی یک کشور یا چند منطقه محدود متوسط نزدیک بازار اصلی با معماری یک Origin + CDN
فروشگاه بین المللی چند کشور زیاد Region مرکزی نزدیک بازارهای اصلی با معماری Origin استراتژیک + CDN + Multi-region در مقیاس بالا
بازی آنلاین کاربران همزمان خیلی زیاد نزدیک خوشه کاربران با معماری  Regional Game Servers

تجربه شخصی

بررسی موقعیت واقعی کاربرها با ابزارهای آنالیتیکس (Analytics) کلاً دیدِ بهتری درباره بازار اصلی سایت، کشورهایی که بیشترین ترافیک رو دارن و حتی بازار هدف آینده میده. توی پروژه‌های واقعی، تکیه بر دیتای این ابزارها خیلی دقیق‌تر از حدس و گمان یا انتخاب سنتی لوکیشن سرور عمل می‌کنه. در واقع، شناخت دقیقِ محل استقرار کاربرهای واقعی و تحلیل ترافیک ورودی، از معیارهای مهم برای انتخاب زیرساخت و ریجن سرور به‌حساب میاد و جلوی هدررفت منابع رو می‌گیره.

نتیجه گیری

در مجموع می‌شه گفت لوکیشن سرور روی سرعت ارتباط کاربر با سایت اثر می‌ذاره، ولی همه‌چیز نیست؛ چون فاکتورهایی مثل مسیرهای شبکه‌ای، قدرت بک‌اند، وضعیت دیتابیس و سیستم‌های کش و CDN هم پایاپای اون روی سرعت تاثیر دارن. واسه یه انتخاب درست، باید مدل سایت، میزان حساسیتش تاخیر شبکه و لوکیشن مشتری‌های اصلی رو کنار هم چید و بعد از تست گرفتن از چندتا نقطه مختلف، بهترین کانفیگ رو واسه زیرساخت نهایی کرد.

این پست را به اشتراک بگذارید
سوالات متداول

مواردی مثل کیفیت شبکه و Routing، میزان Latency و RTT، عملکرد Backend، سرعت Database، سیستم Cache، منابع سرور و استفاده از CDN هم می‌تونن روی زمان پاسخگویی و بارگذاری سایت تأثیر بذارن. برای همین، حتی یه سرور نزدیک به کاربران هم اگه زیرساخت یا عملکرد مناسبی نداشته باشه، لزوماً سرعت بالایی ارائه نمی‌ده.

قبل از جابه‌جایی سرور، بررسی موقعیت کاربرهای اصلی، میزان Latency و RTT، کیفیت شبکه و مسیریابیِ (Routing) دیتاسنتر جدید خیلی اهمیت داره. همچنین باید مطمئن شد که دیتابیس، بک‌اند و بقیه بخش‌های زیرساخت بعد از این انتقال، فاصله زیادی از هم پیدا نکنن و نزدیک به هم بمونن.

اگه کاربرهای سایت از کشورهای مختلفی باشن، انتخاب لوکیشن سرور اصلی (Origin Server) باید بر اساس محل استقرار کاربرهای اصلی و ساختار زیرساخت انجام بشه و واسه بقیه مناطق هم سیستم CDN به کار بیاد. اگه مقیاس پروژه خیلی بزرگ باشه یا تعداد درخواست‌های داینامیک بالا بره، رفتن سراغ معماری چندمنطقه‌ای (Multi-region) می‌تونه بهترین راهکار باشه.

0

دیدگاه و پرسش