当前位置:网站首页>腾讯云国际云服务器网络访问丢包问题解决办法
腾讯云国际云服务器网络访问丢包问题解决办法
2022-06-24 19:50:00 【87cloud】
本文主要介绍可能引起云服务器网络访问丢包问题的主要原因,及对应排查、解决方法。下面来和87cloud一起了解腾讯云国际云服务器网络访问丢包问题解决办法:
可能原因
引起云服务器网络访问丢包问题的可能原因如下:
- 触发限速导致 TCP 丢包
- 触发限速导致 UDP 丢包
- 触发软中断丢包
- UDP 发送缓冲区满
- UDP 接收缓冲区满
- TCP 全连接队列满
- TCP 请求溢出
- 连接数达到上限
- iptables policy 设置相关规则
前提条件
在进行问题定位及处理前需登录实例,详情请参见 登录 Linux 实例 及 登录 Windows 实例。
故障处理
触发限速导致 TCP 丢包
云服务器实例具备多种规格,且不同规格有不同的网络性能。当实例的带宽或包量超过实例规格对应的标准时,会触发平台侧的限速,导致丢包。排查及处理步骤如下:
- 查看实例的带宽及包量。
Linux 实例可执行sar -n DEV 2命令查看带宽及包量。其中,rxpck/s和txpck/s指标是收发包量,rxkB/s和txkB/s指标是收发带宽。 - 使用获取的带宽及包量数据对比 实例规格,查看是否达到实例规格性能瓶颈。
- 是,则需升级实例规格或调整业务量。
- 否,若未达到实例规格性能瓶颈,则可通过 提交工单 进一步定位处理。
触发限速导致 UDP 丢包
参考 触发限速导致 TCP 丢包 步骤,判断是否由实例规格性能瓶颈引起丢包。
- 是,则需升级实例规格或调整业务量。
- 若未达到实例规格性能瓶颈,则可能是由平台对 DNS 请求额外的频率限制引起。在实例整体带宽或包量达到实例规格的性能瓶颈时,可能会触发 DNS 请求限速而出现 UDP 丢包。可通过 提交工单 进一步定位处理。
触发软中断丢包
当操作系统监测到 /proc/net/softnet_stat 的第二列计数值在增长时,则会判断为“软中断丢包”。当您的实例触发了软中断丢包时,可通过以下步骤进行排查及处理:
查看是否开启 RPS:
- 开启,则内核参数
net.core.netdev_max_backlog偏小时会引发丢包,需调大。内核参数详细信息请参见 Linux 实例常用内核参数介绍。 - 未开启,则查看是否为 CPU 单核软中断高,导致未能及时收发数据。若是,您可以:
- 选择开启 RPS,使软中断分配更为均衡。
- 检查业务程序是否会引发软中断分配不均匀。
UDP 发送缓冲区满
若您的实例因 UDP 缓冲区不足而导致丢包时,可通过以下步骤进行排查处理:
- 使用
ss -nump命令查看 UDP 发送缓冲区是否已满。 - 若是,则调大内核参数
net.core.wmem_max和net.core.wmem_default,并重启 UDP 程序以生效。内核参数详细信息请参见 Linux 实例常用内核参数介绍。 - 若仍存在丢包问题,则可通过
ss -nump命令查看发送缓冲区并没有按预期的增大。此时需要检查业务代码是否通过 setsockopt 设置了 SO_SNDBUF。若是,则请修改代码增大 SO_SNDBUF。
UDP 接收缓冲区满
若您的实例因 UDP 缓冲区不足而导致丢包时,可通过以下步骤进行处理:
- 使用
ss -nump命令查看 UDP 接收缓冲区是否已满。 - 若是,则调大内核参数
net.core.rmem_max和net.core.rmem_default,并重启 UDP 程序以生效。内核参数详细信息请参见 Linux 实例常用内核参数介绍。 - 若仍存在丢包问题,则可通过
ss -nump命令查看接收缓冲区并没有按预期的增大。此时需要检查业务代码是否通过 setsockopt 设置了 SO_RCVBUF。若是,则请修改代码增大 SO_RCVBUF。
TCP 全连接队列满
TCP 全连接队列的长度取 net.core.somaxconn 及业务进程调用 listen 时传入的 backlog 参数,两者中的较小值。若您的实例发生 TCP 全连接队列满导致丢包时,可通过以下步骤进行处理:
- 调大内核参数
net.core.somaxconn。内核参数详细信息请参见 Linux 实例常用内核参数介绍。 - 检查业务进程是否传入了 backlog 参数。若是,则相应调大。
TCP 请求溢出
在 TCP 接收数据时,若 socket 被 user 锁住,则会将数据送到 backlog 队列。若此过程若失败,则会引起 TCP 请求溢出导致丢包。通常情况下,假设业务程序性能正常,则可参考以下方式从系统层面排查及处理问题:
检查业务程序是否通过 setsockopt 自行设置了 buffer 大小:
- 若已设置,且该值不够大,可以修改业务程序指定一个更大的值,或不再通过 setsockopt 指定大小。
说明
setsockopt 的取值受内核参数
net.core.rmem_max和net.core.wmem_max限制。调整业务程序的同时,可以同步调整net.core.rmem_max和net.core.wmem_max。调整后请重启业务程序使配置生效。 - 若未设置,则可以调大
net.ipv4.tcp_mem、net.ipv4.tcp_rmem和net.ipv4.tcp_wmem内核参数来调整 TCP socket 的水位。
内核参数修改请参见 Linux 实例常用内核参数介绍。
连接数达到上限
云服务器实例具备多种规格,且不同规格有不同的连接数性能指标。当实例的连接数超过实例规格对应的标准时,会触发平台的限速,导致丢包。处理步骤如下:
说明
连接数指宿主机上保存的云服务器实例的会话数,包含 TCP、UDP 和 ICMP。该数值大于在云服务器实例上通过
ss或netstat命令获取的网络连接数。
查看您实例的连接数,并对比 实例规格,查看是否达到实例规格性能瓶颈。
- 是,则需升级实例规格或调整业务量。
- 否,若未达到实例规格性能瓶颈,则可通过 提交工单 进一步定位处理。
iptables policy 设置相关规则
在云服务器 iptables 未设置相关规则的情况下,可能是 iptables policy 相关规则设置导致到达云服务器的包都被丢弃。处理步骤如下:
- 执行以下命令,查看 iptables policy 规则。
iptables -L | grep policy
iptables policy 规则默认为 ACCEPT。若 INPUT 链 policy 非 ACCEPT,则会导致所有到服务器的包都被丢弃。例如,若返回如下结果,表示进入云服务器的包都会被 drop。
Chain INPUT (policy DROP)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
- 执行如下命令,按需调整
-P后的值。iptables -P INPUT ACCEPT
调整后,可再次执行 步骤1 命令查看,应返回如下结果:
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
边栏推荐
- Unimportant tokens can be stopped in advance! NVIDIA proposes an efficient visual transformer network a-vit with adaptive token to improve the throughput of the model
- 无需显示屏的VNC Viewer远程连接树莓派
- Ott marketing is booming. How should businesses invest?
- JDBC - database connection
- Microsoft won the title of "leader" in the magic quadrant of Gartner industrial Internet of things platform again!
- 中低速航空航天电子总线概述
- Use of JMeter easynmon
- Tape SVG animation JS effect
- How can I persuade leaders to use DDD to construct the liver project?
- Hibernate learning 3 - custom SQL
猜你喜欢

Reservoir dam safety monitoring

JPA learning 1 - overview, JPA, JPA core annotations, JPA core objects

Virtual machine - network configuration
Difficult and miscellaneous problems: A Study on the phenomenon of text fuzziness caused by transform
Fuxin Kunpeng joins in, and dragon lizard community welcomes a new partner in format document technical service
More pictures | explain the Nacos parameters in detail!

ServerSocket and socket connection

融合模型权限管理设计方案

How to delete the entire row with duplicate items in a column of WPS table

JDBC —— 数据库连接
随机推荐
Use of JMeter
Overview of medium and low speed aerospace electronic bus
[proteus simulation] example of using timer 0 as a 16 bit counter
iNFTnews | 国内NFT发展仅限于数字藏品吗?
Go crawler framework -colly actual combat (4) -- Zhihu answer crawl (2) -- visual word cloud
Domain Driven Design and coding
December 6, 2019 what happens after the browser enters a URL
人体改造 VS 数字化身
Apk slimming compression experience
Ott marketing is booming. How should businesses invest?
VIM use command
融合模型权限管理设计方案
Analysis report on development trend and investment forecast of global and Chinese D-leucine industry from 2022 to 2028
C# Winform 最大化遮挡任务栏和全屏显示问题
MySQL semi sync replication
2019 summary and 2020 outlook
无人驾驶: 对多传感器融合的一些思考
WordPress add photo album function [advanced custom fields Pro custom fields plug-in series tutorial]
Tutorial details | how to edit and set the navigation function in the coolman system?
[figure database performance and scenario test sharp tool ldbc SNB] series I: introduction to data generator & Application to ges service