شبکه

کاهش پینگ و تأخیر سایت — چرا محل دیتاسنتر این‌قدر مهم است؟

کاهش پینگ و تأخیر سایت: کارت ترمینالی که رفت‌وبرگشت‌های یک بازدید را از جست‌وجوی DNS و دست‌دادن TCP و TLS تا اولین بایت پاسخ می‌شمارد و نشان می‌دهد فاصله‌ی سرور تا کاربر ایرانی چه سهمی از TTFB را می‌سوزاند

کاهش پینگ و تأخیر سایت معمولاً از جایی شروع می‌شود که کمتر کسی نگاهش می‌کند: نقشه. سایت را بهینه کرده‌اید، تصاویر را فشرده کرده‌اید، کش هم فعال است — اما صفحه هنوز با مکث بالا می‌آید؟ پیش از آنکه دوباره سراغ کد بروید بپرسید: سرور کجاست؟ اینجا می‌بینیم پینگ و TTFB چه هستند، هر بازدید چند رفت‌وبرگشت هزینه دارد، چطور اندازه‌شان بگیریم و چرا محل دیتاسنتر مهم‌ترین اهرم شماست.

ping چیست و تأخیر سایت یعنی چه؟

اگر بپرسید ping چیست، ساده‌ترین جواب این است: زمان یک رفت‌وبرگشت. کامپیوتر شما یک بسته‌ی کوچک به سرور می‌فرستد، سرور جواب می‌دهد، و مدت این رفت‌وبرگشت بر حسب میلی‌ثانیه ثبت می‌شود. به این عدد RTT یا «تأخیر» (Latency) هم می‌گویند؛ تعریف RTT در MDN همین است: زمان رسیدن بسته به مقصد به‌علاوه‌ی زمان بازگشت تأییدیه‌اش.

تشبیهش پیک موتوری است: هرقدر هم رستوران سریع باشد، اگر پیک از آن سر شهر بیاید مسیرِ رفت‌وبرگشت کف زمان تحویل را تعیین می‌کند. باز شدن یک صفحه‌ی وب هم یک رفت‌وبرگشت نیست، چند رفت‌وبرگشت پشت‌سرهم است:

  • DNS — ترجمه‌ی دامنه به آی‌پی (حداقل یک رفت‌وبرگشت اگر کش نباشد)؛
  • TCP — دست‌دادن اولیه با سرور (یک رفت‌وبرگشت)؛
  • TLS — برقراری اتصال امن HTTPS (معمولاً یک تا دو رفت‌وبرگشت)؛
  • HTTP — ارسال درخواست و دریافت اولین بایت پاسخ.

مجموع این‌ها به‌علاوه‌ی زمان پردازش سرور می‌شود TTFB (Time To First Byte): فاصله‌ی کلیک کاربر تا اولین بایت HTML. پس هر میلی‌ثانیه پینگ تقریباً چهار برابر در TTFB ضرب می‌شود؛ یعنی تاخیر سایت سریع‌تر از تصور شما انباشته می‌شود.

کنار میانگین دو عدد دیگر را هم ببینید: نوسان (Jitter)، پراکندگی همین عدد بین بسته‌های پیاپی، و گم‌شدن بسته (Packet Loss). پینگ ثابتِ ۹۰ میلی‌ثانیه تجربه‌ی بهتری می‌سازد تا پینگی که بین ۴۰ و ۲۰۰ می‌پرد. ضمناً ping با ICMP کار می‌کند، نه HTTP؛ پس فقط «کف» تأخیر مسیر را نشان می‌دهد.

چرا فاصله‌ی فیزیکی و مسیریابی حرف آخر را می‌زنند؟

نور در فیبر نوری حدود ۲۰۰ هزار کیلومتر بر ثانیه حرکت می‌کند — دوسوم سرعت نور در خلأ، چون ضریب شکست شیشه‌ی فیبر نزدیک ۱٫۵ است. یک قاعده‌ی سرانگشتی از همین عدد بیرون می‌آید: هر ۱۰۰ کیلومتر مسیر، حدود یک میلی‌ثانیه به رفت‌وبرگشت اضافه می‌کند. مسیر فیبری تهران تا فرانکفورت (که هیچ‌وقت خط مستقیم نیست) حدود ۴ تا ۵ هزار کیلومتر است؛ یعنی فقط فیزیکِ رفت‌وبرگشت ۴۰ تا ۵۰ میلی‌ثانیه هزینه دارد، پیش از هر صف و هر ازدحامی. این کف تئوری است و هیچ بهینه‌سازی نرم‌افزاری آن را نمی‌شکند.

در عمل عدد واقعی بدتر است: ترافیک از ده‌ها روتر (hop) عبور می‌کند، در گذرگاه بین‌الملل صف می‌کشد و در ساعات پیک با بقیه‌ی ترافیک خروجی کشور رقابت می‌کند. نتیجه؟ پینگی که ظهر ۹۰ میلی‌ثانیه است شب می‌شود ۱۵۰ با نوسان بالا. در مقابل، سرور داخل کشور یعنی مسیر کوتاه، هاپ کم و نوسان ناچیز.

نکته‌ی غافلگیرکننده اینکه اینترنت مسیر را بر اساس سیاست‌های پیرینگ اپراتورها انتخاب می‌کند، نه کوتاه‌ترین خط روی نقشه — برای همین تغییر اپراتور گاهی بدون جابه‌جایی جغرافیایی ۲۰ تا ۳۰ میلی‌ثانیه تفاوت می‌سازد.

هر بازدید چند رفت‌وبرگشت هزینه دارد؟

بودجه‌ی یک بازدید تازه و بدون کش:

مرحلهرفت‌وبرگشت لازمبا پینگ ۱۵msبا پینگ ۱۲۰ms
جست‌وجوی DNS (کش‌نشده)۱ یا بیشتر۱۵ms۱۲۰ms
دست‌دادن TCP۱۱۵ms۱۲۰ms
دست‌دادن TLS 1.3۱۱۵ms۱۲۰ms
TLS 1.2 به‌جای آن۲۳۰ms۲۴۰ms
درخواست HTTP تا اولین بایت۱ + پردازش سرور۱۵ms +۱۲۰ms +
جمع تا اولین بایت با TLS 1.3۴حدود ۶۰msحدود ۴۸۰ms

ستون آخر تجربه‌ی کاربر ایرانیِ یک سرور اروپایی است: نزدیک نیم‌ثانیه سکوت پیش از رسیدن اولین بایت. راهنمای TTFB در web.dev توصیه می‌کند TTFB زیر ۰٫۸ ثانیه بماند؛ روی مسیر پرتأخیر، بخش عمده‌ی این بودجه پیش از اجرای یک خط کد سوخته است.

💡 ریدایرکت، گران‌ترین خط کدی است که نمی‌بینید. هر پرش یک چرخه‌ی کامل درخواست و پاسخ است، و اگر مقصد میزبان دیگری باشد DNS و TCP و TLS هم تکرار می‌شوند. زنجیره‌ی http://example.com → https://example.com → https://www.example.com روی مسیری ۱۲۰ میلی‌ثانیه‌ای نیم‌ثانیه به TTFB اضافه می‌کند.

تأخیر را اندازه بگیرید: ping، mtr و curl

حدس نزنید؛ اندازه بگیرید. ساده‌ترین ابزار ping است:

ping -c 5 example.com

PING example.com (203.0.113.10) 56(84) bytes of data.
64 bytes from 203.0.113.10: icmp_seq=1 ttl=54 time=118 ms
64 bytes from 203.0.113.10: icmp_seq=2 ttl=54 time=121 ms
64 bytes from 203.0.113.10: icmp_seq=3 ttl=54 time=117 ms
64 bytes from 203.0.113.10: icmp_seq=4 ttl=54 time=131 ms
64 bytes from 203.0.113.10: icmp_seq=5 ttl=54 time=122 ms

--- example.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 117.412/121.905/131.044/5.104 ms

خط آخر را بخوانید: min نزدیک‌ترین چیز به تأخیر خالص انتشار است، چون نویز صف از آن حذف شده؛ mdev همان نوسان است و اگر از ده درصد میانگین بیشتر شد مسیرتان شلوغ است. packet loss غیرصفر هم مهم‌تر از هر عدد دیگری در این خروجی است.

پیدا کردن هاپ مقصر با mtr

برای دیدن کل مسیر از mtr استفاده کنید — ترکیب ping و traceroute؛ در اوبونتو و دبیان با sudo apt install mtr-tiny و در راکی و آلما با sudo dnf install mtr نصب می‌شود:

mtr -rwzc 20 example.com

HOST: workstation                          Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. AS???    192.168.1.1                   0.0%    20    0.9   1.0   0.7   2.1   0.3
  2. AS58224  10.21.4.1                     0.0%    20    6.4   7.1   5.9  14.2   1.8
  3. AS58224  tehran-core-1.example-isp.ir   0.0%    20    9.8  10.4   9.1  19.7   2.2
  4. AS49666  border-gw.example-transit.net  0.0%    20   11.2  12.0  10.6  21.3   2.4
  5. AS49666  fra-ix.example-transit.net     0.0%    20  114.7 118.9 113.2 141.5   6.9
  6. AS24940  core.example-dc.de             0.0%    20  116.1 119.4 114.0 138.8   5.7
  7. AS24940  203.0.113.10                   0.0%    20  117.4 121.9 117.1 131.0   5.1

این خروجی یک داستان کامل است: تا هاپ چهارم داخل کشور هستیم و تأخیر زیر ۱۳ میلی‌ثانیه است؛ بین هاپ چهارم و پنجم عدد از ۱۲ به ۱۱۹ می‌پرد — همان‌جا که ترافیک از گذرگاه بین‌الملل عبور می‌کند — و بعد از آن چیزی اضافه نمی‌شود. هیچ تنظیمی روی سرور مقصد آن جهش ۱۰۷ میلی‌ثانیه‌ای را برنمی‌گرداند.

⚠️ خروجی mtr را از پایین به بالا بخوانید. روترهای میانی پاسخ ICMP را کم‌اولویت پردازش می‌کنند، پس Loss یا تأخیر بالا روی یک هاپ میانی که در هاپ‌های بعدی ادامه ندارد تقریباً همیشه بی‌معناست. فقط وقتی نگران شوید که گم‌شدن بسته تا خود مقصد ادامه داشته باشد.

اندازه‌گیری چیزی که کاربر حس می‌کند: curl

ping تأخیر شبکه را می‌دهد؛ TTFB واقعی را curl نشان می‌دهد:

curl -o /dev/null -s -w "DNS:   %{time_namelookup}s
TCP:   %{time_connect}s
TLS:   %{time_appconnect}s
TTFB:  %{time_starttransfer}s
Total: %{time_total}s
" https://example.com/

DNS:   0.0043s
TCP:   0.1261s
TLS:   0.2588s
TTFB:  0.4102s
Total: 0.9873s

این اعداد تجمعی هستند، نه مستقل؛ برای سهم هر مرحله باید تفریق کنید. اینجا DNS تقریباً رایگان بود (پاسخ کش‌شده)، TCP حدود ۱۲۲ میلی‌ثانیه گرفت — یعنی پینگ مسیر همین حدود است — TLS ۱۳۳ میلی‌ثانیه‌ی دیگر، و از پایان TLS تا اولین بایت ۱۵۱ میلی‌ثانیه که جمع یک رفت‌وبرگشت با زمان پردازش برنامه است. پس سه‌چهارم TTFB این صفحه هزینه‌ی فاصله بوده، نه کندی کد. برای جداکردن سهم شبکه، همین دستور را روی خود سرور علیه 127.0.0.1 بزنید.

برای دیدن وضع کلی سایت از بیرون هم آزمون رایگان سرعت سایت چند نمونه می‌گیرد و میانه‌ی TTFB، زنجیره‌ی ریدایرکت، حجم صفحه و وضعیت SSL را گزارش می‌کند. یک نکته‌ی صادقانه: این ابزار درخواست را از سرور خودِ مهران هاست بیرون از ایران می‌فرستد؛ پس عددش را برای مقایسه‌ی قبل و بعدِ خودتان بخوانید، نه به‌عنوان تجربه‌ی بازدیدکننده‌ی ایرانی.

نشانهعلت محتملکار بعدی
پینگ بالا اما یکنواخت، mdev پایینکف فیزیکی مسیر و فاصله‌ی جغرافیاییسرور را به مخاطب نزدیک کنید؛ تنظیمات کمکی نمی‌کند
پینگ خوب ولی TTFB بالاکندی برنامه یا دیتابیس، نه شبکههمان curl را روی 127.0.0.1 بزنید و مقایسه کنید
پینگ نوسانی و mdev بالا، شب‌هاازدحام و صف در گذرگاه بین‌المللبا mtr هاپ جهش را پیدا کنید
گم‌شدن بسته از یک هاپ تا مقصدلینک یا تجهیز معیوب در مسیرخروجی mtr را برای اپراتور بفرستید
فاصله‌ی زیاد time_connect تا time_appconnectTLS نسخه‌ی قدیمی یا بدون ازسرگیریTLS 1.3 و ازسرگیری نشست را فعال کنید

کاهش پینگ سرور با انتخاب دیتاسنتر درست

اعداد واقعی برای کاربر داخل ایران تقریباً چنین‌اند:

محل سرورپینگ معمول از ایرانTTFB تقریبی (HTTPS)نوسان
دیتاسنتر ایران۱ تا ۲۰ میلی‌ثانیهزیر ۱۰۰ میلی‌ثانیهبسیار کم
اروپا (آلمان، هلند)۸۰ تا ۱۵۰ میلی‌ثانیه۴۰۰ تا ۷۰۰ میلی‌ثانیهمتوسط تا زیاد
آمریکای شمالی۱۵۰ تا ۲۵۰ میلی‌ثانیهبالای ۷۰۰ میلی‌ثانیهزیاد

یعنی برای مخاطب داخلی، جابه‌جایی سرور از اروپا به داخل کشور به‌تنهایی می‌تواند TTFB را چهار تا هفت برابر بهتر کند — کاری که از هیچ افزونه‌ی کش و فشرده‌سازی برنمی‌آید.

یک تبصره: ستون اول برای خط ثابت است. روی اینترنت همراه بخش زیادی از تأخیر در شبکه‌ی رادیویی ساخته می‌شود و حتی برای سروری در همان شهر ۳۰ تا ۷۰ میلی‌ثانیه طبیعی است؛ پیش از متهم‌کردن دیتاسنتر، از خط ثابت هم تست کنید.

این اعداد برای سئو و فروش یعنی چه؟

گوگل در Core Web Vitals مستقیماً سرعت پاسخ را می‌سنجد. مستندات LCP در web.dev صریح می‌گوید زمان اتصال، زمان ریدایرکت و تأخیرهای TTFB داخل عدد LCP شمرده می‌شوند و آستانه‌ی «خوب» ۲٫۵ ثانیه است؛ یعنی نیم‌ثانیه‌ای که در بودجه‌ی رفت‌وبرگشت سوزاندیم، پیش از رندر شدن چیزی، از همان سهم کم شده است. کاهش پینگ سرور اینجا مستقیم روی همان عدد اثر می‌گذارد.

وقتی عدد پینگ خوب است اما تجربه بد

گاهی میانگین پینگ آبرومند است و کاربر باز از کندی می‌نالد. مظنون اول صف در تجهیزات میانی است: وقتی لینکی اشباع می‌شود بسته‌ها در بافرهای بزرگ روتر صف می‌کشند. تشخیصش ساده است: ping را حین یک دانلود سنگین اجرا کنید؛ اگر عدد از ۲۰ به ۳۰۰ پرید، مشکل ظرفیت لینک شماست، نه سرور. مظنون دوم گم‌شدن بسته است: یک درصد بی‌ضرر به نظر می‌رسد، اما TCP هر بسته‌ی گم‌شده را با یک رفت‌وبرگشت اضافه جبران می‌کند و پنجره‌ی ارسال را کوچک می‌کند.

و مظنون سوم به سرور شما ربطی ندارد: خودِ صفحه. اگر قالب به فونت و اسکریپت روی دامنه‌های خارجی اشاره کند، مرورگر برای هرکدام یک مسیر مستقل و پرتأخیر طی می‌کند — حتی اگر سرور شما داخل کشور باشد. روش حذف این وابستگی‌ها در راهنمای کندی سایت روی نت ملی آمده است.

چه تنظیم‌هایی روی سرور واقعاً رفت‌وبرگشت کم می‌کنند؟

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

  1. ریدایرکت‌های زنجیره‌ای را حذف کنید. پرهزینه‌ترین و ساده‌ترین برد؛ مقصد نهایی را مستقیم در لینک‌ها بنویسید.
  2. TLS 1.3 را فعال و ازسرگیری نشست را روشن کنید. دست‌دادن TLS 1.3 یک رفت‌وبرگشت است و TLS 1.2 دو تا. برای کاربر بازگشتی، ازسرگیری با کلید از پیش اشتراک‌گذاشته‌شده اجازه می‌دهد داده در همان اولین بسته برود — قابلیتی که RFC 8446 با نام 0-RTT تعریفش کرده و همان‌جا هشدار داده در برابر بازپخش محافظت‌شده نیست؛ پس فقط برای درخواست‌های بی‌خطر مثل GET.
  3. اتصال‌ها را زنده نگه دارید. keep-alive و مالتی‌پلکسِ HTTP/2 یعنی ده‌ها فایل روی یک اتصال موجود می‌روند، بدون تکرار TCP و TLS برای هرکدام.
  4. OCSP stapling فقط وقتی ارزش دارد که گواهی‌تان OCSP داشته باشد. این تنظیم یک رفت‌وبرگشت مرورگر به سرور صادرکننده را حذف می‌کند، اما «لتس‌انکریپت» از مه ۲۰۲۵ آدرس OCSP را از گواهی‌های تازه برداشت، در اوت ۲۰۲۵ پاسخ‌دهنده‌هایش را خاموش کرد و به CRL کوچید؛ روی چنین گواهی‌ای stapling چیزی برای صرفه‌جویی ندارد.
  5. تعداد دامنه‌های صفحه را کم کنید. هر میزبان جدید در HTML یعنی یک جست‌وجوی DNS و یک اتصال تازه؛ میزبانی محلی فونت و کتابخانه چند رفت‌وبرگشت را حذف می‌کند.

پیکربندی عملی این موارد در راهنمای راه‌اندازی سایت با Nginx آمده است. و توجه کنید چه چیزی در فهرست نیست: هیچ تنظیم کرنل و هیچ «بهینه‌ساز شبکه»‌ای تأخیر انتشار را کم نمی‌کند؛ آن‌ها روی توان عبوری اثر دارند، نه کف رفت‌وبرگشت.

HTTP/3 و QUIC چقدر به کاهش تأخیر کمک می‌کنند؟

روی کاغذ، QUIC برای همین مسئله ساخته شده است: دست‌دادن انتقال و رمزنگاری را در یک مرحله ادغام می‌کند، پس اتصال تازه یک رفت‌وبرگشت کمتر می‌گیرد. RFC 9114 استاندارد رسمی HTTP/3 است و روی مسیرهای پرتلفات مزیت دیگری هم دارد: چون هر جریان مستقل است، گم‌شدن یک بسته بقیه را متوقف نمی‌کند.

اما یک واقعیت میدانی: در آزمایش ما از یک میزبان داخل ایران، دست‌دادن QUIC v1 به سرورهای خارج از کشور بی‌پاسخ ماند و در ۱۰ ثانیه تایم‌اوت شد، در حالی که TCP به همان آی‌پی و پورت در کمتر از یک ثانیه پاسخ ۲۰۰ گرفت؛ همین رفتار برای چند سرویس بزرگ جهانی هم تکرار شد. انسداد پورت UDP نیست — بسته‌ی QUIC با نسخه‌ی ناشناخته بلافاصله پاسخ می‌گیرد — فقط دست‌دادن‌های واقعی نسخه‌ی ۱ ناپدید می‌شوند.

⚠️ نتیجه‌ی عملی برای سایتی با مخاطب ایرانی و سرور خارج از کشور: اگر وب‌سرورتان هدر alt-svc با h3 اعلام کند، مرورگر کاربر اول QUIC را امتحان می‌کند، منتظر می‌ماند، شکست می‌خورد و بعد به TCP برمی‌گردد — یعنی HTTP/3 به‌جای کم‌کردن تأخیر به آن اضافه می‌کند. این هزینه یک‌بار نیست: مرورگر اعلان را تا انقضای پارامتر ma نگه می‌دارد — بر حسب ثانیه، و اگر ننویسیدش پیش‌فرضِ RFC 7838 بیست‌وچهار ساعت است.

کی سرور خارجی هنوز انتخاب درستی است؟

محل دیتاسنتر باید تابع محل «مخاطب» باشد، نه سلیقه. سرور خارج وقتی منطقی است که:

  • مخاطب‌تان خارج از ایران است — سایتی برای کاربران اروپا باید در اروپا میزبانی شود؛ همان منطق فاصله، این‌بار به نفع سرور خارجی.
  • به سرویس‌های خارجی وابسته‌اید — اگر بک‌اند مدام با APIهایی کار می‌کند که از داخل کشور کند جواب می‌دهند، نزدیکی به آن سرویس‌ها مهم‌تر می‌شود.
  • کار غیروب انجام می‌دهید — بعضی بارهای پردازشی اصلاً کاربر نهایی داخل ایران ندارند.

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

CDN مکمل است، نه جایگزین

شاید بپرسید: «با CDN مشکل حل نمی‌شود؟» تا حدی. CDN فایل‌های استاتیک — تصویر، CSS، جاوااسکریپت — را روی نودهای لبه نزدیک کاربر کش می‌کند و برای همین دسته عالی است، اما دو محدودیت مهم دارد:

  1. درخواست‌های داینامیک همچنان به مبدأ می‌روند. صفحه‌ی محصول، سبد خرید و هر چیزی که با دیتابیس کار دارد باید تا خودِ سرور اصلی برود و برگردد — با همان پینگ بالا.
  2. اولین بایت HTML معمولاً از مبدأ می‌آید. یعنی همان TTFB که گوگل و کاربر می‌سنجند، هنوز اسیر فاصله‌ی سرور اصلی است.

ظرافت کمتر گفته‌شده: وقتی درخواست روی نود لبه MISS بخورد، کاربر «تا لبه» به‌علاوه‌ی «لبه تا مبدأ» را می‌پردازد — پس برای اولین بازدیدکننده‌ی هر فایل، CDN می‌تواند کمی کندتر از اتصال مستقیم باشد و سود واقعی از HITهای بعدی می‌آید. سازوکار کش لبه در راهنمای کامل CDN چیست آمده است.

فرمول درست این است: مبدأ نزدیک به مخاطب + CDN برای استاتیک‌ها + وب‌سرور بهینه. اگر مبدأ و نود لبه هر دو داخل ایران باشند، هیچ‌کدام از دو مسیر HIT و MISS از مرز خارج نمی‌شود؛ پایدارترین ترکیب برای مخاطب داخلی.

مهاجرت سرور بدون قطعی: ترتیب کارها

⚠️ پیش از هر کاری، TTL رکوردهای DNS را از چند روز قبل کوتاه کنید تا جابه‌جایی آی‌پی سریع منتشر شود؛ اگر با TTL یک‌روزه سوییچ کنید، تا ۲۴ ساعت بخشی از کاربران به سرور قدیمی می‌روند. جزئیات TTL و انواع رکورد در آموزش رکوردهای DNS آمده است.
  1. TTL رکورد A را به ۳۰۰ ثانیه کاهش دهید و به‌اندازه‌ی TTL قبلی صبر کنید.
  2. سایت را روی سرور جدید بالا بیاورید و پیش از تغییر DNS با سوییچ --resolve همان‌جا آزمایش کنید:
    curl -sI --resolve example.com:443:198.51.100.20 https://example.com/ | head -3
    
    HTTP/2 200
    server: nginx
    content-type: text/html; charset=UTF-8
  3. پینگ و TTFB سرور جدید را از چند شبکه — خط ثابت، اینترنت همراه و یک اپراتور دیگر — بگیرید و با اعداد قبلی مقایسه کنید.
  4. رکورد را عوض کنید، بعد سرور قدیمی را دست‌کم یک هفته روشن نگه دارید تا کش‌های دیرپا هم منتقل شوند؛ در پایان TTL را به مقدار عادی برگردانید.

فهرست کامل کارهای پیش و پس از انتقال در راهنمای انتقال سایت به هاست جدید است.

کاهش پینگ با سرویس‌های مهران هاست

تأخیر مالیاتی است که کاربران بابت فاصله می‌پردازند و با تغییر جغرافیا تقریباً صفر می‌شود. آنچه در مهران هاست برای همین کار در اختیار دارید:

  • سرور ابری در دیتاسنتر ایران، ماشین KVM با دیسک NVMe و صورتحساب ساعتی — دقیقاً برای همین تصمیم: یک سرور بسازید، پینگ و TTFB بگیرید، با اعداد فعلی مقایسه کنید و اگر قانع نشدید حذفش کنید. و توجه کنید: خاموش‌کردن ماشین کنتور را متوقف نمی‌کند، چون دیسک و رم رزرو می‌مانند؛ فقط حذف کامل هزینه را صفر می‌کند.
  • سرور و هاست خارج از کشور در دیتاسنترهای Hetzner — با فاکتور ریالی و بدون کارت ارزی. هاست اشتراکی روی cPanel و DirectAdmin ارائه می‌شود.
  • CDN با نود لبه در ایران و اروپا، که کنار هر رکورد A در پنل DNS با یک کلید روشن می‌شود؛ روی دامنه‌ای که DNS آن اینجا مدیریت شود هزینه‌ی جداگانه ندارد و مبدأ می‌تواند هر جای دنیا بماند.
  • DNS مدیریت‌شده با رکوردهای A، AAAA، CNAME، MX، TXT، NS، SRV و CAA و کمترین TTL شصت ثانیه — همان ابزار مرحله‌ی اول چک‌لیست مهاجرت.

قدم عملی همین امروز: با ping و curl از سرور فعلی اندازه بگیرید، یک سرور آزمایشی در دیتاسنتر ایران بسازید و همان دو دستور را تکرار کنید. برای شروع در مهران هاست ثبت‌نام کنید.

سؤالات پرتکرار

چطور پینگ و تأخیر سایتم را کم کنم؟

مؤثرترین کار، نزدیک‌کردن سرور به مخاطب اصلی است؛ تأخیر انتشار تابع فاصله‌ی فیزیکی است و هیچ تنظیم نرم‌افزاری آن را نمی‌شکند. بعد از آن تعداد رفت‌وبرگشت‌ها را کم کنید: زنجیره‌ی ریدایرکت را حذف کنید، TLS 1.3 و ازسرگیری نشست را فعال کنید، اتصال‌ها را با keep-alive و HTTP/2 زنده نگه دارید و فونت و اسکریپت را از سرور خودتان سرو کنید.

پینگ خوب برای یک سایت با مخاطب ایرانی چقدر است؟

از خط ثابت داخل کشور به سروری در دیتاسنتر ایران، پینگ زیر ۲۰ میلی‌ثانیه با نوسان اندک مطلوب است و تا حدود ۳۰ میلی‌ثانیه هم قابل قبول. روی اینترنت همراه ۳۰ تا ۷۰ میلی‌ثانیه طبیعی است، چون بخشی از تأخیر در شبکه‌ی رادیویی ساخته می‌شود، و سروری در اروپا معمولاً ۸۰ تا ۱۵۰ میلی‌ثانیه فاصله دارد. مهم‌تر از میانگین، پایداری عدد و صفر بودن گم‌شدن بسته است.

تفاوت پینگ و TTFB در چیست؟

پینگ زمان یک رفت‌وبرگشت بسته در لایه‌ی شبکه است و با پروتکل ICMP سنجیده می‌شود؛ TTFB فاصله‌ی آغاز درخواست تا رسیدن اولین بایت پاسخ HTTP است و علاوه بر شبکه، جست‌وجوی DNS، دست‌دادن TCP و TLS، ریدایرکت‌ها و زمان پردازش برنامه را هم در بر می‌گیرد. برای همین TTFB همیشه چند برابر پینگ است. اگر پینگ پایین ولی TTFB بالا باشد، مشکل در کد یا دیتابیس است، نه مسیر شبکه.

آیا CDN پینگ سایت را کم می‌کند؟

CDN تأخیر دریافت فایل‌های ایستا مانند تصویر و CSS و جاوااسکریپت را کم می‌کند، چون آن‌ها را از نود لبه‌ی نزدیک کاربر تحویل می‌دهد. اما صفحه‌های داینامیک و اولین بایت HTML معمولاً از سرور مبدأ می‌آیند و تأخیرشان به فاصله‌ی همان سرور بستگی دارد. اولین درخواست هر فایل کش‌نشده هم هزینه‌ی کاربر تا لبه به‌علاوه‌ی لبه تا مبدأ را می‌پردازد. پس CDN مکمل انتخاب درست دیتاسنتر است، نه جایگزین آن.

چرا پینگ سایتم شب‌ها بالا می‌رود؟

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

آموزش‌های مرتبط

آماده‌ی تمرین عملی هستید؟

سرور ابری ساعتی مهران هاست در ۶۰ ثانیه تحویل می‌شود — تمرین کنید و فقط بابت همان ساعت‌ها پرداخت کنید. هزینه را پیش از ثبت‌نام با محاسبه‌گر برآورد کنید.