tencent cloud

文档反馈

使用 MTR 分析网络延迟及丢包

最后更新时间:2024-01-06 17:32:18

    问题描述

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

    问题分析

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

    解决方案

    本文档以 Linux 和 Windows 云服务器为例,介绍如何使用 MTR 以及如何对 MTR 的报告结果进行分析。
    说明:
    如果本地或云服务器禁用 Ping,则 MTR 将无结果。
    请根据运行 MTR 的主机操作系统的不同,查看 MTR 的介绍和使用方法。
    WinMTR 的介绍和使用(Windows 操作系统)
    MTR 的介绍和使用(Linux 操作系统)
    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 平台上诊断网络状态的工具,继承了 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. 
    往上查看报告结果
    ,定位第一次丢包的节点。
    如果丢包发生在目的服务器,则可能是目的服务器的网络配置不当引起,请检查目的服务器的防火墙配置。
    如果丢包开始于前三跳,一般为本地运营商网络问题,建议检查访问其他网址是否存在相同情况。如果存在相同情况,请反馈给您的运营商进行处理。
    如果有频繁丢包的情况,确实为网络不稳定的场景,则请 提交工单 进行咨询,并附上测试截图,以便工程师进行定位。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持