在符合如下条件的ECS实例中执行ss -lnt
命令时,返回的Send-Q字段值为0。
aliyun-2.1903-x64-20G-alibase-20190507.vhd
及之前的版本。kernel-4.19.43-13.al7.x86_64
及之前的内核版本。系统显示类似如下。
# ss -lnt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 0 *:35107 *:* LISTEN 0 0 *:38727 *:* LISTEN 0 0 *:5355 *:* LISTEN 0 0 *:111 *:*
而查看ss命令的说明会发现,对于监听中(listening)的TCP socket,Send-Q字段表示该Socket的syn backlog最大值。在Linux系统中,该字段实际输出该listening socket全连接队列的最大容量,所以其值不应该为0。
Send-Q Established: The count of bytes not acknowledged by the remote host. Listening: Since Kernel 2.6.18 this column contains the maximum size of the syn backlog.
ss -lnt
命令输出的Send-Q字段表示listening TCP socket全连接队列的最大容量。用户态network相关的工具套件有net-tools与iproute2两种,其中net-tools自2001年已经停止维护,取而代之的是iproute2套件。而ss命令正是iproute2套件的一部分,net-tools中与ss实现类似功能的则是netstat命令。ss命令与netstat命令获取网络信息的区别如下:
/proc/net/tcp
接口获取TCP socket的相关统计信息。/proc/net/tcp
模式。kernel-4.19.43-13.al7.x86_64
及之前的内核版本未集成tcp_diag模块,因此ss命令会回退到/proc/net/tcp
模式,而/proc/net/tcp
接口(不推荐使用)输出结果中listening TCP socket的tx_queue字段值均为0,从而导致ss -lnt
命令输出的Send-Q字段值也为0。详情可参见/proc/net/tcp接口介绍文档。
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
升级ECS实例的内核到kernel-4.19.43-13.1.al7.x86_64
及之后的版本。
在文档使用中是否遇到以下问题
更多建议
匿名提交