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

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

更新时间:2020-09-02 11:25:20

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

问题描述

在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

如果您的问题仍未解决,您可以在阿里云社区免费咨询,或提交工单联系阿里云技术支持。