云服务器带宽占用高怎么办?

云服务器带宽占用高怎么办?

每天一个小知识,不定期更新


在运维和服务器管理过程中,有时会遇到服务器带宽占满的情况,导致网站响应缓慢或无法访问。这时候需要及时排查并解决问题,以保障服务器的正常运行。

本文将介绍针对服务器带宽占满的问题排查方法和解决方案。

如果出现带宽异常被占满的情况,想要减少带宽使用,从而不影响其他服务的正常使用,就需要将这个异常占满带宽的服务找出来。

一般流程:

  1. 确定是带宽跑满的网卡
  2. 确认具体占用流量的IP和端口
  3. 确认端口对应的进程

问题

某个风和日丽的中午,突然发现又个环境的服务访问及其缓慢,并且链接到该集群执行命令也非常卡顿,但是访问集群内部并未出现卡顿的情况,那么很有可能就是带宽出现异常。

果然,一看该集群的主节点的出网带宽被打满。

image-20230804133924632

工具

进行排查需要两个工具,执行以下命令进行工具的安装

yum install -y sysstat

yum install -y iftop

Sysstat 是一款 Linux 系统性能监控工具,它可以收集和报告系统的性能数据,帮助管理员实时监控系统资源的使用情况,定位性能瓶颈,并进行性能分析。Sysstat 包含了一组命令行工具,主要包括以下几个组件:

  1. sar: sar 命令用于收集系统性能数据,如 CPU 使用率、内存使用情况、磁盘 I/O、网络流量等,并以一定时间间隔记录这些数据。管理员可以使用 sar 查看历史性能数据,以便分析系统的性能趋势。
  2. iostat: iostat 命令用于报告 CPU 和磁盘 I/O 的统计信息。它可以显示每个 CPU 的使用率,以及每个磁盘的 I/O 活动情况,包括读写速率、等待时间等。
  3. mpstat: mpstat 命令用于报告多核 CPU 的使用率。它可以显示每个 CPU 核心的使用情况,包括用户态、内核态、空闲时间等。
  4. pidstat: pidstat 命令用于报告指定进程的资源使用情况。它可以显示特定进程的 CPU 使用率、内存使用情况、磁盘 I/O 等。
  5. nfsiostat: nfsiostat 命令用于报告 NFS 客户端和服务器的 I/O 统计信息。它可以显示 NFS 文件系统的 I/O 活动情况,包括读写速率、等待时间等。
  6. ifstat: ifstat 命令用于报告网络接口的统计信息。它可以显示网络接口的流量情况,包括传输速率、数据包数量等。

Sysstat 可以通过在后台运行的 sar 守护进程定期收集系统性能数据,并保存在特定的文件中。管理员可以根据需要查看历史数据,也可以通过实时监控来即时了解系统的运行情况。Sysstat 提供了丰富的信息,可以帮助管理员优化系统配置,提高系统性能,同时也是故障排查和性能分析的有力工具。

iftop 是一款用于实时监控网络流量的命令行工具,它可以显示系统中各个网络接口的实时传输速率和流量统计信息。通过使用 iftop,管理员可以快速了解当前系统的网络使用情况,包括哪些进程正在占用网络带宽,以及流量的传输方向。

排查

确认网卡

执行以下命令查看异常的网卡:

sar -n DEV 1 5

sar -n DEV 1 5 是 Linux 系统中用于查看网络设备的使用情况的命令。

解释每个参数的含义:

  • sar: 是系统性能统计命令,用于查看系统各项资源的使用情况。
  • -n: 是 sar 命令的选项之一,用于指定要查看的资源类型,这里使用 DEV 表示查看网络设备的使用情况。
  • 1: 表示每隔1秒输出一次统计信息。
  • 5: 表示总共输出5次统计信息。

综合来说,sar -n DEV 1 5 命令会每隔1秒输出一次网络设备的使用情况,总共输出5次。其中,网络设备的使用情况包括接收和发送的数据包数量、数据包大小、错误数量、丢失数量等信息,可以帮助我们监控网络设备的运行状态,及时发现网络问题。

可以注意到一张虚拟网卡的流量出现异常的情况,即calicf982c55123

01:21:57 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
01:21:58 PM cali99d977da0d3      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM cali8c73a903812      1.00      1.00      0.06      0.06      0.00      0.00      0.00
01:21:58 PM calia4b840dd720      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM calicf982c55123    231.00     81.00    615.07      5.34      0.00      0.00      0.00
01:21:58 PM cali488894f05d4     18.00     15.00     51.80      0.97      0.00      0.00      0.00
01:21:58 PM calia666aa2fa20      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM cali722cd6496cf      9.00     11.00      3.32      2.69      0.00      0.00      0.00
01:21:58 PM cali0ee274fc0d3      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM calif3773a8831b      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM cali1e02b2fa693      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM calie02cf561048      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM cali0ead4623d83      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM calieb3ef0b9a91      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM cali12ecbe34072      1.00      1.00      0.06      0.96      0.00      0.00      0.00
01:21:58 PM cali2a13f1c9879     15.00     20.00      2.63      8.58      0.00      0.00      0.00
01:21:58 PM cali8bfe4f9ed09      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM calib66d6d8f2f2      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM      eth0    197.00    329.00     39.65    696.61      0.00      0.00      0.00
01:21:58 PM cali9ee112c7997      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM        lo    907.00    907.00    187.64    187.64      0.00      0.00      0.00
01:21:58 PM cali278a311208b      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM cali89ab5e61ca5      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM calieb5b27ace30      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM cali5b80114dd98      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM cali967646fbd38      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM cali18fc2d48e17      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM calid3fd3ae04a4      2.00      1.00      0.17      0.10      0.00      0.00      0.00
01:21:58 PM cali26bc6c35f82      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM calibc60a7bcb5f     24.00     18.00      9.00      3.01      0.00      0.00      0.00
01:21:58 PM calif20690e7a04      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM cali669d01636ff      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM cali95fcea29a11      3.00      4.00      0.39      0.41      0.00      0.00      0.00
01:21:58 PM cali10e222e0e64      6.00      6.00      0.94      0.60      0.00      0.00      0.00
01:21:58 PM calibb4888d24d5      1.00      1.00      0.06      0.06      0.00      0.00      0.00
01:21:58 PM calie03ee727e82      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM cali577d2644601      1.00      1.00      0.06      0.06      0.00      0.00      0.00
01:21:58 PM cali22c25d67502      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM cali4cb4ca85c47      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM cali6ccef10259c      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM cali22fa0a65a9d      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM     tunl0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM caliefa122f2386      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM cali70eee232dee      0.00      0.00      0.00      0.00      0.00      0.00      0.00
01:21:58 PM cali4f61cb67a6f     11.00     14.00      0.85      7.21      0.00      0.00      0.00
01:21:58 PM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

确认IP和端口

执行以下命令查看异常的IP和端口:

iftop -i calicf982c55123 -P

解释 iftop 命令中的参数:

  • -i calicf982c55123:指定要监视的网络接口,这里使用 calicf982c55123 表示监视网络接口 calicf982c55123 的流量。
  • -P:启用端口监视模式。默认情况下,iftop 会显示网络流量的来源和目标 IP 地址,而使用 -P 参数后,还会显示源和目标的端口号。

综合起来,iftop -i calicf982c55123 -P 命令会在终端中实时显示网络接口 calicf982c55123 上的流量信息,包括源 IP 地址、目标 IP 地址、源端口号、目标端口号以及相关的流量统计信息。这样可以帮助你了解指定网络接口的实时流量状况,有助于排查网络流量异常或高占用的问题。

这里可以查看使用网卡calicf982c55123的进程的ip和端口。

  • =>代表发送数据,<=代表接收数据。

  • TX表示发送流量,RX表示接收流量,TOTAL表示总流量。

  • cum:表示第一列各种情况的总流量。

  • peak:表示第一列各种情况的流量峰值。

  • rates:表示第一列各种情况2秒、10秒、40秒内的平均流量。

image-20230804131728285

如果使用的是k8s集群,那么到这里基本可以确认问题出在哪个服务了,毕竟通过IP和端口可以查看相应的Pod和改Pod使用的svc的端口,然后进行相应处理即可。

确认进程

若是主机的服务异常,可通过netstat -tunlp |grep 30005查看相应进程.

  • 如果消耗带宽较多的进程为业务进程,财力恰好雄厚的话可以直接把带宽拉满。

  • 如果消耗带宽较多的进程为异常进程,可能是病毒或木马导致,建议自行终止进程或者使用安全软件进行查杀。

lomtom

标题:云服务器带宽占用高怎么办?

作者:lomtom

链接:https://lomtom.cn/f3tmnkz7jy1k