文档中心 云服务器 故障处理 网络相关故障 云服务器网络延迟和丢包

云服务器网络延迟和丢包

最近更新时间:2019-08-09 18:45:14

问题描述

本地访问云服务器,或者在云服务器上访问其他网络资源时,发现网络卡顿。使用 ping 命令,发现网络存在丢包或时延较高的情况。

问题分析

丢包或时延较高可能是骨干链路拥塞、链路节点故障、服务器负载高、系统设置问题等原因引起。在排除云服务器自身原因后,您可以使用 MTR 进行进一步诊断。
MTR 是一款网络诊断工具,其工具诊断出的报告可以帮助您确认网络问题的症结所在。

解决方案

说明:

本文档以 Linux 和 Windows 云服务器为例,介绍如何使用 MTR 以及如何对 MTR 的报告结果进行分析。

请根据运行 MTR 的主机操作系统的不同,查看 MTR 的介绍和使用方法。

WinMTR 的介绍和使用(Windows 操作系统)

WinMTR:适用于 Windows 系统的免费网络诊断工具,集成了 Ping 和 tracert 的功能,具有图形界面,可以直观地看到各个节点的响应时间和丢包情况。

安装 WinMTR

  1. 登录 Windows 云服务器。
  2. 在操作系统界面,通过浏览器访问官方网站(或合法渠道)下载对应操作系统类型的 WinMTR 安装包。
  3. 解压缩 WinMTR 安装包。

使用 WinMTR

  1. 双击 WinMTR.exe,打开 WinMTR 工具。
  2. 在 WinMTR 窗口的 Host 处,输入目的服务器 IP 或者域名,单击【Start】。如下图所示:
  3. 根据实际情况,等待 WinMTR 运行一段时间,单击【Stop】,结束测试。如下图所示:

    测试结果的主要信息如下:
    • Hostname:到目的服务器要经过的每个主机 IP 或名称。
    • Nr:经过节点的数量。
    • Loss%:对应节点的丢包率。
    • Sent:发送的数据包数量。
    • Recv:接收到响应的数量。
    • Best:最短的响应时间。
    • Avrg:平均响应时间。
    • Worst:最长的响应时间。
    • Last:最近一次的响应时间。

MTR 的介绍和使用(Linux 操作系统)

MTR:Linux 平台上诊断网络状态的工具,继承了 Ping、traceroute、nslookup 的功能,默认使用 ICMP 包测试两个节点之前的网络连接情况。

安装 MTR

目前现有的 Linux 发行版本都预装了 MTR,如果您的 Linux 云服务器没有安装 MTR,则可以执行以下命令进行安装:

  • CentOS 操作系统:
    yum install mtr
  • Ubuntu 操作系统:
    sudo apt-get install mtr

MTR 相关参数说明

  • -h/--help:显示帮助菜单
  • -v/--version:显示 MTR 版本信息
  • -r/--report:结果以报告形式输出
  • -p/--split:与 --report 相对,分别列出每次追踪的结果
  • -c/--report-cycles:设置每秒发送的数据包数量,默认是10
  • -s/--psize:设置数据包的大小
  • -n/--no-dns:不对 IP 地址做域名解析
  • -a/--address:用户设置发送数据包的 IP 地址,主要用户单一主机多个 IP 地址的场景
  • -4:IPv4
  • -6:IPv6

使用示例

以本机到 IP 为119.28.98.39的服务器为例。
执行以下命令,以报告形式输出 MTR 的诊断报告。

mtr 119.28.98.39 -- report

返回类似如下信息:

[root@VM_103_80_centos ~]# mtr 119.28.98.39 -- report
Start: Mon Feb  5 11:33:34 2019
HOST:VM_103_80_centos            Loss%    Snt    Last    Avg    Best    Wrst    StDev
1.|-- 100.119.162.130             0.0%     10     6.5    8.4     4.6    13.7      2.9
2.|-- 100.119.170.58              0.0%     10     0.8    8.4     0.6     1.1      0.0
3.|-- 10.200.135.213              0.0%     10     0.4    8.4     0.4     2.5      0.6
4.|-- 10.200.16.173               0.0%     10     1.6    8.4     1.4     1.6      0.0
5.|-- 14.18.199.58                0.0%     10     1.0    8.4     1.0     4.1      0.9
6.|-- 14.18.199.25                0.0%     10     4.1    8.4     3.3    10.2      1.9
7.|-- 113.96.7.214                0.0%     10     5.8    8.4     3.1    10.1      2.1
8.|-- 113.96.0.106                0.0%     10     3.9    8.4     3.9    11.0      2.5
9.|-- 202.97.90.206               30.0%     10    2.4    8.4     2.4     2.5      0.0
10.|-- 202.97.94.77               0.0%     10     3.5    4.6     3.5     7.0      1.2
11.|-- 202.97.51.142              0.0%     10   164.7    8.4   161.3   165.3      1.2
12.|-- 202.97.49.106              0.0%     10   162.3    8.4   161.7   167.8      2.0
13.|-- ix-xe-10-2-6-0.tcore2.LVW 10.0%     10   168.4    8.4   161.5   168.9      2.3
14.|-- 180.87.15.25              10.0%     10   348.1    8.4   347.7   350.2      0.7
15.|-- 180.87.96.21               0.0%     10   345.0    8.4   343.4   345.0      0.3
16.|-- 180.87.96.142              0.0%     10   187.4    8.4   187.3   187.6      0.0
17.|-- ???                      100.0%     10     0.0    8.4     0.0     0.0      0.0
18.|-- 100.78.119.231             0.0%     10   187.7    8.4   187.3   194.0      2.5
19.|-- 119.28.98.39               0.0%     10   186.5    8.4   186.4   186.5      0.0

主要输出的信息如下:

  • HOST:节点的 IP 地址或域名。
  • Loss%:丢包率。
  • Snt:每秒发送的数量包的数量。
  • Last:最近一次的响应时间。
  • Avg:平均响应时间。
  • Best:最短的响应时间。
  • Wrst:最长的响应时间。
  • StDev:标准偏差,偏差值越高,说明各个数据包在该节点的响应时间相差越大。

报告结果分析及处理

说明:

由于网络状况的非对称性,遇到本地到服务器的网络问题时,建议您收集双向的 MTR 数据(从本地到云服务器以及云服务器到本地)。

  1. 根据报告结果,查看目的服务器 IP 是否丢包。
    • 如果目的地没有丢包,则表示网络正常。
    • 如果目的地发生丢包,则执行 步骤2
  2. 往上查看报告结果,定位第一次丢包的节点。
    • 如果丢包发生在目的服务器,则可能是目的服务器的网络配置不当引起,请检查目的服务器的防火墙配置。
    • 如果丢包开始于前三跳,一般为本地运营商网络问题,建议检查访问其他网址是否存在相同情况。如果存在相同情况,请反馈给您的运营商进行处理。
    • 如果丢包发生在接近目的服务器的几跳,则可能为目的服务器运营商的网络问题,请 提交工单 进行反馈处理。
      提交工单时,请附上本地到目的服务器,以及目的服务器到本地的 MTR 测试截图,以便工程师进行定位。