Article / 文章中心

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

发布时间:2021-03-17 点击数:362

问题描述

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

问题原因

可能是以下原因所导致:

  • 在/etc/sysctl.conf文件中net.core.somaxconn和net.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.somaxconn和net.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参数。


如果您有其他问题,可以联系北京志远天成阿里云代理商,为您提供一对一专业全面的技术服务,同时新老阿里云会员,均可享受我公司代理商价格,欢迎咨询! 欢迎咨询.gif