رفع مشکل

پینگ بالا و Packet Loss در سرور؛ تشخیص گام‌به‌گام با mtr

تهیه: کلودیفای (نگارش با کمک هوش مصنوعی) · انتشار: · زمان مطالعه: ۴ دقیقه

PacketLossmtrرفع مشکلپینگ بالا و Packet Lossدر سرور؛ تشخیصگام‌به‌گام با mtrمجلهٔ کلودیفایclodify.net/blog
پاسخ کوتاه

پینگ بالا یا Packet Loss می‌تواند از چهار جا باشد: شبکهٔ خود شما (وای‌فای، مودم)، اپراتور اینترنت، مسیر بین‌المللی یا خود سرور. با mtr از سمت خودتان به سرور (و در صورت امکان از سرور به سمت شما) مشخص کنید loss از کدام گام شروع می‌شود و تا مقصد ادامه دارد یا نه. loss که فقط در یک گام میانی دیده شود و تا مقصد ادامه پیدا نکند، معمولاً مشکل نیست.

تعریف سه مفهوم

مفهوم معنی اثر
پینگ (Latency) زمان رفت‌وبرگشت یک بسته (میلی‌ثانیه) کندی پاسخ‌ها، تأخیر در تایپ SSH
نوسان (Jitter) تغییرات پینگ از یک بسته به بستهٔ بعد قطع‌ووصل صدا و تصویر، لگ بازی
Packet Loss درصد بسته‌هایی که نمی‌رسند کندی شدید TCP، قطعی اتصال‌ها

پینگ ثابت اما بالاتر معمولاً قابل‌تحمل‌تر از پینگ پایین با نوسان و loss است.

پینگ (Latency)زمان رفت‌وبرگشت یک بسته
Jitterنوسان پینگ بین بسته‌های پشت‌سرهم
Packet Lossدرصد بسته‌هایی که هرگز نمی‌رسند
شکل ۱ سه شاخصی که کیفیت حس‌شدهٔ یک اتصال را می‌سازند.

گام ۱: شبکهٔ خودتان را حذف کنید

پیش از هر چیز مطمئن شوید مشکل از اتصال محلی نیست:

# پینگ به مودم/روتر (آدرس معمول: 192.168.1.1)
ping -c 30 192.168.1.1
  • اگر به مودم هم loss دارید، مشکل از وای‌فای یا کابل است. با کابل یا نزدیک‌تر به مودم تست کنید.
  • دانلود سنگین هم‌زمان روی همان شبکه پینگ را بالا می‌برد.
  • اگر با اپراتور دیگر (مثلاً اینترنت موبایل) مشکل نیست، مشکل در مسیر اپراتور اول است.

گام ۲: mtr از سمت شما به سرور

mtr -rwzc 200 203.0.113.10

در ویندوز از WinMTR استفاده کنید. نمونهٔ ساده‌شدهٔ خروجی:

HOST                         Loss%   Snt   Avg  StDev
 1. 192.168.1.1               0.0%   200   2.1   0.5
 2. 10.x.x.x                  0.0%   200   8.4   1.2
 3. ...                       35.0%  200  20.3   3.1
 4. ...                       0.0%   200  95.7   4.0
 5. 203.0.113.10              0.0%   200  97.2   4.4

خواندن درست خروجی

  • loss فقط در یک گام میانی (مثل گام ۳ بالا) و صفر در گام‌های بعدی و مقصد: طبیعی است؛ بسیاری از روترها به بسته‌های تشخیصی با اولویت پایین پاسخ می‌دهند. مشکلی نیست.
  • loss از یک گام شروع و تا مقصد ادامه دارد: مشکل واقعی در همان گام یا بعد از آن است.
  • جهش ناگهانی Avg در یک گام و ادامه تا مقصد: معمولاً عبور از مرز کشور یا لینک بین‌المللی است؛ اگر مقدارش با فاصلهٔ جغرافیایی تناسب دارد، طبیعی است.
  • StDev بالا: نوسان زیاد؛ نشانهٔ شلوغی مسیر.
me@laptop: ~
$ mtr -rwzc 100 203.0.113.10HOST                          Loss%  Snt   Avg  1. 192.168.1.1                0.0%  100   1.9  2. ...                         0.0%  100   8.4  9. 203.0.113.10               0.0%  100  ...$ 
شکل ۲ mtr مسیر را hop به hop با درصد گم‌شدن و تأخیر نشان می‌دهد؛ گم‌شدنی مهم است که تا مقصد ادامه پیدا کند.

گام ۳: تست معکوس از سرور

مسیر رفت و برگشت می‌تواند متفاوت باشد. اگر آی‌پی عمومی ثابت دارید یا سرور دومی در شبکهٔ کاربران دارید، از سرور هم mtr بگیرید:

mtr -rwzc 200 YOUR_PUBLIC_IP

گام ۴: بررسی خود سرور

اگر شبکه سالم به نظر می‌رسد اما پاسخ‌ها کند است، مشکل ممکن است داخل سرور باشد:

uptime                  # load average
top                     # ستون st (steal) و پروسه‌های پرمصرف
free -h                 # رم
ss -s                   # تعداد اتصال‌ها
sudo iftop -i eth0      # مصرف لحظه‌ای شبکه (apt install iftop)
  • پردازندهٔ پر یا steal بالا، پاسخ‌ها را کند می‌کند حتی اگر پینگ خوب باشد.
  • مصرف کامل پهنای باند (مثلاً به‌خاطر بکاپ یا حمله) پینگ را بالا می‌برد.

علت‌های رایج و راه‌حل

علت نشانه راه‌حل
وای‌فای ضعیف loss به مودم کابل، تغییر کانال وای‌فای
شلوغی ساعات اوج اپراتور پینگ شب‌ها بالا، روزها خوب تست با اپراتور دیگر؛ گزارش به اپراتور
اختلال مسیر بین‌الملل loss در گام مرزی تا مقصد صبر یا سرور ایران برای کاربران داخلی؛ CDN
مسیر نامناسب به یک کشور خاص پینگ بالا فقط به یک لوکیشن ساخت سرور در لوکیشن دیگر و مقایسه
بار سرور load و steal بالا بهینه‌سازی یا پلن بزرگ‌تر
اشباع پهنای باند سرور iftop پر محدود کردن بکاپ‌ها، CDN، بررسی حمله

راهکارهای ساختاری

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

چه اطلاعاتی برای پشتیبانی بفرستیم؟

اگر مشکل را به سمت سرور می‌بینید، این موارد بررسی را بسیار سریع‌تر می‌کند:

  1. خروجی کامل mtr -rwzc 200 از سمت شما (و در صورت امکان از سمت سرور).
  2. زمان دقیق مشکل و اینکه پایدار است یا گاه‌به‌گاه.
  3. اپراتور و شهر شما و نتیجهٔ تست با اپراتور دیگر.
  4. خروجی uptime و top در زمان مشکل.

اگر افت بسته فقط در مسیر بین‌الملل است و برای همه اتفاق می‌افتد، احتمالاً با اختلال شبکهٔ کشور روبه‌رو هستید؛ روش‌های تشخیص اختلال اینترنت ایران را ببینید.

سؤالات متداول

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

در ساعات اوج، مسیرهای اپراتورها و لینک‌های بین‌المللی شلوغ‌ترند. اگر الگوی ثابتی می‌بینید، مقایسه با اپراتور دیگر کمک می‌کند علت را بیابید.

loss در گام دوم یا سوم mtr یعنی سرور خراب است؟

اگر تا مقصد ادامه پیدا نکند، خیر؛ آن روتر فقط به بسته‌های تشخیصی کم‌اولویت پاسخ نمی‌دهد.

پینگ صفر درصد loss دارد اما سایت کند است؟

مشکل احتمالاً در خود سرور یا برنامه است (پردازنده، دیتابیس، کد). با top و لاگ‌های برنامه بررسی کنید.

پینگ خوب برای سرور بازی چقدر است؟

عدد ثابتی نمی‌توان گفت؛ برای بازی‌های رقابتی هرچه کمتر و پایدارتر بهتر. سرور را نزدیک بازیکنان قرار دهید و از محل آن‌ها تست کنید.

ICMP روی سرور بسته است و ping جواب نمی‌دهد؛ چه کنم؟

mtr را با TCP اجرا کنید: mtr -T -P 22 -rwzc 100 IP (پورت را با پورت باز سرور جایگزین کنید).

آماده‌اید؟ سرورتان را بسازید.

از ۱٬۲۰۰ تومان در ساعت · پرداخت ریالی

سرورتان را همین حالا بسازید.

ساعتی بپردازید. هر وقت خواستید حذف کنید.