Linux实例TCP backlog缓存溢出导致无法远程连接实例

说明

本文可能由社区贡献或涉及第三方产品信息,建议您访问社区或第三方产品的官方网站获取帮助与支持。第三方产品不在阿里云售后支持范围。本文仅供参考,阿里云不做任何暗示或其他形式的承诺。

问题描述

在Linux实例内如果存在TCP backlog缓存溢出的现象,可能会影响Linux实例的网络性能,导致实例无法远程连接。

问题原因

可能是以下原因所导致:

  • /etc/sysctl.conf文件中net.core.somaxconnnet.ipv4.tcp_max_syn_backlog参数的值设置过低。/etc/sysctl.conf文件主要保存系统的配置信息,如果参数配置不合理,则会影响Linux实例的网络性能。

  • 应用的backlog参数设置不合理。

解决方案

说明
  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。

  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。

  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改

请根据现场情况,选择以下对应的步骤。

修改“/etc/sysctl.conf”文件

  1. 通过VNC远程登录Linux实例。关于如何远程登录,请参见ECS连接方式概述

  2. 执行以下命令,编辑/etc/sysctl.conf文件。

    说明

    修改配置文件之前,请先进行备份。

    vim /etc/sysctl.conf
  3. A键,请根据现场实际情况调整net.core.somaxconnnet.ipv4.tcp_max_syn_backlog参数的值,按Esc退出编辑模式。输入:wq,按Enter,保存并退出。

    说明
    • :wq中的冒号:需要按Shift+:键输出。

    • 修改net.core.somaxconn参数的值本文以1024为例,现场请根据实际情况调整。

    • 修改net.ipv4.tcp_max_syn_backlog参数的值本文以5000为例,现场请根据实际情况调整。

    系统操作界面类似如下。 {001E9C08-86CA-4A04-9BA5-1B43A5ECC4A3}_20200720113009.jpg

  4. 执行以下命令,使配置生效。

    sysctl -p

修改应用的backlog参数

请根据现场业务情况,修改应用的backlog参数。

适用于

  • 云服务器ECS