Chinaunix首页 | 论坛 | 博客
  • 博客访问: 140835
  • 博文数量: 68
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 720
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-28 20:01
文章分类

全部博文(68)

文章存档

2015年(68)

我的朋友

分类: 系统运维

2015-08-31 18:56:44

通过查看socket可以得知系统的网络连接状况,我知道的有下面的几方法可以获取系统的socket的使用情况。

1.netstat  

nestat的使用方法没什么好说的,运维的家常必备,如果连这个都不会那是相当不靠谱

[root@localhost ]# netstat -n  

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State      

tcp        0      0 192.168.22.240:55197        192.168.22.238:81           TIME_WAIT   

tcp        0      0 192.168.22.240:22              192.168.22.76:52426         ESTABLISHED

tcp        0      0 192.168.22.240:55229        192.168.22.238:81           TIME_WAIT   

tcp        0      0 192.168.22.240:39833        192.168.22.238:81           TIME_WAIT   

----- 略-------------


如果系统连接数很多、负载飚高,使用netstat命令可能会半天出不了结果,这个时候下面的2个方法就派上用场了。

2. ss

通过ss命令可以获取系统的所有TCP/UDP sockets使用情况以及已经建立的ssh/ftp/http等连接情况。

//显示系统的socket汇总信息

[root@localhost ]# ss -s

Total: 318 (kernel 467)

TCP:   327 (estab 101, closed 189, orphaned 7, synrecv 0, timewait 185/0), ports 245


Transport Total     IP        IPv6

*         467       -         -        

RAW       1         1         0        

UDP       6         5         1        

TCP       138       92        46       

INET      145       98        47       

FRAG      0         0         0  


//显示运行的进程及其使用的端口

[root@localhost ]# ss -pl


//显示所有TCP/UDP信息

[root@localhost ]# ss -t/-u -a


//显示所有状态为established的http连接

[root@localhost examples]# ss -o state established '( dport = :http or sport = :http )'

ecv-Q Send-Q                                                       Local Address:Port                                                           Peer Address:Port   

82     0                                                    ::ffff:192.168.22.240:http                                                  ::ffff:192.168.22.238:41934    timer:(keepalive,120min,0)

82     0                                                    ::ffff:192.168.22.240:http                                                  ::ffff:192.168.22.238:41933    timer:(keepalive,119min,0)

0      0                                                    ::ffff:192.168.22.240:http 


TCP的状态不少,可以根据自已的需要过滤

established

syn-sent

syn-recv

fin-wait-1

fin-wait-2

time-wait

closed

close-wait

last-ack

listen

closing

all : All of the above states

connected : All the states except for listen and closed

synchronized : All the connected states except for syn-sent

bucket : Show states, which are maintained as minisockets, i.e. time-wait and syn-recv.

big : Opposite to bucket state.

示例就列这些吧,更详细的用法可以 man ss                    



3./proc/net/socketstat

[root@localhost ]#cat /proc/net/sockstat


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段数量

阅读(12024) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~