LINUX查看网络链接,线程情况等

10 篇文章 1 订阅
2 篇文章 0 订阅
本文详细介绍了如何使用Linux命令检查当前系统中ESTABLISHED和TIME_WAIT的TCP连接数,并解析了time_wait状态在TCP连接终止过程中的必要性,包括确保可靠连接关闭和处理延迟报文。此外,还提供了查看进程线程和IP连接情况的命令。
摘要由CSDN通过智能技术生成

下面这一行命令可以输出当前的ESTABLISHED和TIME_WAIT数

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

下面这一行命令也可以输出当前的ESTABLISHED和TIME_WAIT数

netstat -ant | awk '
    {++s[$NF]} END {for(k in s) print k,s[k]}
'

下面这一行命令也可以输出当前的ESTABLISHED和TIME_WAIT数

ss -ant | awk '
    {++s[$1]} END {for(k in s) print k,s[k]}
'

查看这两个状态的详情

netstat -antp

关键词释义
time_wait 是「主动关闭 TCP 连接」一方的状态,可能是「客服端」的,也可能是「服务器端」的。
time_wait 高并发情况下数据量大几百几千很正常。不需要对这个调优。不然会出现其他不可预知的问题(实际上就是通过性能换效率- TCP通过四次握手完成发完数据,会到这个状态,为避免数据出错,这个状态下的数据会进行重发,如果直接CLOSE。万一数据发送失败(报文),重发机制失效,那么TCP的所谓可靠性就降低了,即变得不可靠了(类UDP-个人理解))
专业回答如下:
time_wait 状态,存在的
必要性

可靠的实现 TCP 全双工连接的终止:四次挥手关闭 TCP 连接过程中,最后的 ACK 是由「主动关闭连接」的一端发出的,如果这个 ACK 丢失,则,对方会重发 FIN 请求,因此,在「主动关闭连接」的一段,需要维护一个 time_wait 状态,处理对方重发的 FIN 请求;处理延迟到达的报文:由于路由器可能抖动,TCP 报文会延迟到达,为了避免「延迟到达的 TCP 报文」被误认为是「新 TCP 连接」的数据,则,需要在允许新创建 TCP 连接之前,保持一个不可用的状态,等待所有延迟报文的消失,一般设置为 2 倍的 MSL(报文的最大生存时间),解决「延迟达到的 TCP 报文」问题.

线程查看
// 打印所有进程及其线程

pstree -p

// 打印某个进程的线程数

pstree -p {pid} | wc -l

打印当前地址IP链接情况

netstat -antp |grep "ESTABLISHED" |awk '{print $5}'|awk -F : '{print $4}'|sort |uniq -c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值