最新消息:

Linux socket 状态

未分类 admin 3572浏览 0评论

Linux中查看socket状态:
cat /proc/net/sockstat #(这个是ipv4的)

sockets: used 137
TCP: inuse 49 orphan 0 tw 3272 alloc 52 mem 46
UDP: inuse 1 mem 0
RAW: inuse 0
FRAG: inuse 0 memory 0

说明:
sockets: used:已使用的所有协议套接字总量
TCP: inuse:正在使用(正在侦听)的TCP套接字数量。其值≤ netstat –lnt | grep ^tcp | wc –l
TCP: orphan:无主(不属于任何进程)的TCP连接数(无用、待销毁的TCP socket数)
TCP: tw:等待关闭的TCP连接数。其值等于netstat –ant | grep TIME_WAIT | wc –l
TCP:alloc(allocated):已分配(已建立、已申请到sk_buff)的TCP套接字数量。其值等于netstat –ant | grep ^tcp | wc –l
TCP:mem:套接字缓冲区使用量(单位不详。用scp实测,速度在4803.9kB/s时:其值=11,netstat –ant 中相应的22端口的Recv-Q=0,Send-Q≈400)
UDP:inuse:正在使用的UDP套接字数量
RAW:
FRAG:使用的IP段数量

IPv6请看:cat /proc/net/sockstat6

TCP6: inuse 3
UDP6: inuse 0
RAW6: inuse 0
FRAG6: inuse 0 memory 0

通过这些值,可以很容易计算出当前的tcp请求数,然后做相关的监控。

Out of socket memory

这几天出现一下错误:

Out of socket memory
kernel: TCP: too many of orphaned sockets

都是因为net.ipv4.tcp_mem参数设置太小引起的

RHEL4.6里默认是:
net.ipv4.tcp_mem = 786432 1048576 1572864
改大些就可以了。

转载请注明:爱开源 » Linux socket 状态

您必须 登录 才能发表评论!