日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Alibaba Cloud Linux 2系統的ECS實例執行ss命令時返回的Send-Q字段值為0,如何處理?

本文為您介紹Alibaba Cloud Linux 2系統的ECS實例執行ss命令時返回的Send-Q字段值為0的原因及解決方案。

問題描述

在符合如下條件的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.

問題原因

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接口介紹文檔

ss -lnt命令輸出的Send-Q字段表示listening TCP socket全連接隊列的最大容量。用戶態network相關的工具套件有net-tools與iproute2兩種,其中net-tools自2001年已經停止維護,取而代之的是iproute2套件。而ss命令正是iproute2套件的一部分,net-tools中與ss實現類似功能的則是netstat命令。ss命令與netstat命令獲取網絡信息的區別如下:

  • netstat通過/proc/net/tcp接口獲取TCP socket的相關統計信息。

  • ss默認使用socket接口與tcp_diag內核模塊通訊,獲取TCP socket的相關統計信息。當內核不支持tcp_diag內核模塊時,會回退到/proc/net/tcp模式。

解決方案

升級ECS實例的內核到kernel-4.19.43-13.1.al7.x86_64及之后的版本。