本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
在Windows系统中,可以通过任务管理器、资源监视器或者Wireshark等工具查看网络流量指标。本文主要介绍Windows实例中带宽使用率较高问题的排查及解决方法。
问题现象
使用 Windows 系统的ECS实例时,出现如下现象。
服务响应时长较长或出现访问超时等问题。
通过ECS控制台查看实例网络指标监控时,发现网络带宽使用率较高(参考值:当前网络流量带宽使用率>80%,可认为网络流量带宽使用率较高)。
收到网络流量带宽使用率超过设定阈值的告警信息。
可能原因
带宽使用率较高可能有以下原因。
正常业务频繁访问,导致占用较高带宽。
恶意病毒、木马引起的网络流量。
说明有时,第三方恶意程序可能会利用操作系统中的svchost.exe或tcpsvcs.exe进行伪装,从而导致上述进程的带宽使用率较高。
Windows实例自身服务(例如:Windows Update服务)占用较高网络流量。
排查步骤
使用资源监视器查看网络指标
在Windows实例中,有多种工具可以定位带宽使用率过高的问题,包括任务管理器、资源监视器(Resource Monitor)、性能监视器(Performance Monitor)、Process Explorer等。此外,您还可以使用Wireshark抓取一段时间的网络包,以便进一步对流量数据包进行分析。
Windows Server 2008以上系统,通常使用系统自带的资源监视器监控带宽。
在任务栏上单击搜索,输入资源监视器并按回车键。
在资源监视器页面中,查看带宽使用率过高的进程。
说明如需查看进程的详细信息,请使用任务管理器。在任务管理器的进程选项卡视图中,找到在资源监视器中识别的异常进程。右键单击该进程名称,选择属性、转到详细信息或者打开文件位置,通过上述信息判断该进程是否为恶意程序。
(可选)使用TCPView查看网络连接信息
如果在资源监视器中未发现占用带宽使用率较高的进程信息,但实例带宽使用率依然很高,那么很可能是外部服务在进行访问。在这种情况下,您可以使用微软官方提供的TCPView工具进行进一步的分析。该工具能够显示系统上所有TCP和UDP网络连接的详细列表,包括本地和远程地址以及TCP连接的状态。
下载并解压TCPView工具。
访问微软官网下载TCPView工具,下载后对压缩文件进行解压。
双击打开TCPView工具并查看网络带宽详情。
如上图所示,可以看到远程地址123.xxx.xxx.74正在向实例传输数据,占用最大网络带宽资源。
(可选)使用Wireshark分析流量情况
若需对流量数据包进行深入分析,您可以利用Wireshark进行数据包的捕获与分析。
安装并打开Wireshark工具。
访问Wireshark官方网站,获取安装包并完成Wireshark工具的安装。
选择捕获 > 选项。
在Wireshark 捕获选项页面,根据接口名称或对应的IP地址选择需要进行抓包的网卡,然后单击开始。
在Wireshark工具栏中依次选择Statistics>Conversations。
在Conversations页面上,您可以看到所有网络通信,从链路层、IP层、TCP层分别给出了流量的具体情况和通信两端的流量情况。通过抓取一段时间的网络包可以分析究竟是哪些连接、端口占用了较高的流量。
您可以通过抓包进一步分析网络数据包,具体操作,请参见Windows实例中使用Wireshark工具。
处理网络带宽使用率较高问题
常见网络带宽使用率较高问题的原因及解决方案如下。
问题现象 | 原因 | 解决方案 |
异常用户程序或进程长时间占用大量网络资源,或者非法IP地址恶意访问服务,从而导致网络负载较高。 | 该程序为异常程序或进程,运行时占用过多网络资源。 | |
正常用户程序或进程长时间占用大量网络资源,或者有指定IP地址访问服务,从而导致网络负载较高。 | 该程序为正常业务程序或进程,运行时占用过多网络资源。 | 一般情况下,当频繁访问业务,或由于Windows自身服务(更新服务等)都可能会占用较高网络流量和CPU 。如果实例出现网络性能瓶颈,您可以结合实际情况选择相应的处理策略。
|
单个业务程序或进程偶发网络资源占用较高,但持续时间较短,且发生频率较低。 | 业务程序需要优化,以解决特殊业务场景(大文件上传、下载)触发的网络资源占用过高问题。 | 优化业务程序。 可以考虑优化业务代码,调整应用配置参数,如连接数、缓存配置以及Web和数据库的配置参数等。 |
没有单个程序或进程占用网络资源,但整体网络负载较高。 | 当前实例的服务正常运行所需网络资源性能大于实例的网络带宽。 | 如果实例出现网络性能瓶颈,您可以选择升级带宽。相关操作,请参见修改带宽配置。 说明 若当前实例的带宽已达到最大值,仍无法满足正常业务对带宽资源的需求,建议您考虑进行应用分离。通过不同的服务器承载各个应用服务,例如,您可以选择RDS来承载数据库服务,从而减轻ECS实例的资源消耗及其内部大量的调用。 |
相关文档
关于Linux系统网络带宽使用率较高的问题排查及解决方案,请参见Linux实例网络带宽使用率较高问题的排查与处理。
如果需要提前采集网络指标以便分析异常,您可以使用atop工具。相关内容,请参见使用atop工具监控Linux系统指标。