• netstat -ano或tunlp socket过多,会缓慢


    ss是iproute2工具包中的工具。
    ss is used to dump socket statistics. It allows showing information similar to netstat.  It can display more TCP and state informations than other tools.
    1. 为什么用ss替换netstat?    
    这要从netstat的先天缺陷说起,netstat通过遍历proc来获取socket信息,当socket数据上万后,netstat的输出就非常耗时(用过的都知道)
    而与之不同的ss使用netlink与内核tcp_diag模块通信获取socket信息。
    2.ss命令输出解释之Recv-Q Send-Q
    先来看一下ss的输出:
    tingw:~ # ss -at
    State       Recv-Q Send-Q                                            Local Address:Port                                                Peer Address:Port   
    LISTEN      0      128                                                          :::sunrpc                                                        :::*       
    LISTEN      0      128                                                           *:sunrpc                                                         *:*       
    LISTEN      0      128                                                          :::http                                                          :::*       
    LISTEN      0      128                                                   127.0.0.1:ipp                                                            *:*       
    LISTEN      0      128                                                         ::1:ipp                                                           :::*       
    LISTEN      0      100                                                         ::1:smtp                                                          :::*       
    LISTEN      0      100                                                   127.0.0.1:smtp                                                           *:*       
    LISTEN      0      64                                                           :::59642                                                         :::*       
    LISTEN      0      128                                                           *:54107                                                          *:*       
    LISTEN      0      128                                                          :::xinupageserver                                                       :::*       
    LISTEN      0      128                                                           *:xinupageserver                                                        *:*       
    LISTEN      0      64                                                            *:50341                                                          *:*       
    LISTEN      0      50                                                            *:mysql                                                          *:*       
    ESTAB       0      52                                                  192.168.0.1:xinupageserver                                             192.168.0.96:50599  

    输出所有的tcp socket信息。
    第一列表示tcp socket的状态,第二列和第三列的内容与socket所处的状态有关,查看tcp_diag代码

     

    处于LISTEN状态的socket,Recv-Q表示了current listen backlog队列元素数目(等待用户调用accept的完成3次握手的socket),而Send-Q表示了listen socket最大能容纳的backlog。这个数目由listen时指定,且不能大于 /proc/sys/net/ipv4/tcp_max_syn_backlog;对于非LISTEN socket,Recv-Q表示了receive queue中的字节数目(等待接收的下一个tcp段的序号-尚未从内核空间copy到用户空间的段最前面的一个序号);Send-Q表示发送queue中容纳的字节数(已加入发送队列中最后一个序号-输出段中最早一个未确认的序号)
    3.ss命令输出解释之timer

    linux-19:~ # ss -a -t -o -4
    State       Recv-Q Send-Q                                            Local Address:Port                                                Peer Address:Port   
    LISTEN      0      128                                                           *:sunrpc                                                         *:*       
    LISTEN      0      128                                                           *:47093                                                          *:*       
    LISTEN      0      3                                                  192.168.86.1:domain                                                         *:*       
    LISTEN      0      3                                                  192.168.0.86:domain                                                         *:*       
    LISTEN      0      3                                                    10.0.64.19:domain                                                         *:*       
    LISTEN      0      3                                                 192.168.100.3:domain                                                         *:*       
    LISTEN      0      3                                                172.16.132.189:domain                                                         *:*       
    LISTEN      0      3                                                     127.0.0.2:domain                                                         *:*       
    LISTEN      0      3                                                     127.0.0.1:domain                                                         *:*       
    LISTEN      0      128                                                           *:ssh                                                            *:*       
    LISTEN      0      128                                                   127.0.0.1:ipp                                                            *:*       
    LISTEN      0      100                                                           *:smtp                                                           *:*       
    LISTEN      0      128                                                   127.0.0.1:953                                                            *:*       
    LISTEN      0      64                                                            *:33914                                                          *:*       
    LISTEN      0      64                                                            *:nfs                                                            *:*       
    LISTEN      0      128                                                           *:35659                                                          *:*       
    LISTEN      0      128                                                           *:remotefs                                                        *:*       
    LISTEN      0      128                                                  10.0.64.19:6380                                                           *:*       
    LISTEN      0      128                                                           *:openvms-sysipc                                                        *:*       
    ESTAB       0      0                                                172.16.132.189:ssh                                                172.16.132.93:hs-port  timer:(keepalive,65min,0)
    ESTAB       0      0                                                    10.0.64.19:35225                                                10.0.64.129:61616   
    ESTAB       0      0                                                    10.0.64.19:46617                                                10.0.64.107:61616   
    ESTAB       0      0                                                    10.0.64.19:openvms-sysipc                                                10.0.64.2:videotex 
    ESTAB       0      0                                                    10.0.64.19:49462                                                10.0.64.107:61616   
    ESTAB       0      0                                                172.16.132.189:ssh                                                172.16.132.85:63934    timer:(keepalive,38min,0)
    ESTAB       0      0                                                    10.0.64.19:60569                                                10.0.64.107:61616   
    ESTAB       0      0                                                    10.0.64.19:52745                                                10.0.64.129:61616   
    ESTAB       0      52                                               172.16.132.189:ssh                                                172.16.132.92:50598    timer:(on,476ms,0)
    ESTAB       0      0                                                    10.0.64.19:56401                                                10.0.64.107:61616   
    ESTAB       0      0                                                    10.0.64.19:54805                                                10.0.64.129:61616   
    ESTAB       0      0                                                    10.0.64.19:60772                                                10.0.64.129:61616   
    ESTAB       0      0                                                    10.0.64.19:55510                                                10.0.64.129:61616   
    ESTAB       0      0                                                    10.0.64.19:45663                                                10.0.64.129:61616   
    ESTAB       0      0                                                    10.0.64.19:39262                                                10.0.64.129:61616   
    ESTAB       0      0                                                    10.0.64.19:57775                                                10.0.64.129:61616   
    ESTAB       0      0                                                    10.0.64.19:52205                                                 10.0.64.18:6379    
    ESTAB       0      0                                                    10.0.64.19:remotefs                                               10.0.64.12:sentinel 

    这个输出更上次输出相比,多了一个timer输出。这个输出描述的是tcp socket上的定时器,在说明这个之前先了解一下linux对一个tcp socket可能设置的定时器。
    tcp socket总共有7个定时器,通过4个timer实现。分别是
    通过icsk_retransmit_timer实现的重传定时器、零窗口探测定时器;通过sk_timer实现的连接建立定时器、保活定时器和FIN_WAIT_2定时器;通过icsk_delack_timer实现的延时ack定时器;以及TIME_WAIT定时器。

    off: 当前socket没有timer
    on: 重传timer
    keepalive:连接建立timer or fin_wait_2 timer or 保活timer;具体是那个timer,可以根据连接的状态来确定。
    timewait: TIME_WAITtimer
    persist:零窗口探测timer 

  • 相关阅读:
    LRU算法简介
    linux下安装nginx+php+mysql环境 详细教程
    CentOS 6.6编译安装Nginx1.6.2+MySQL5.6.21+PHP5.6.3
    unicode 格式 转汉字
    js 操作cookie
    哈希函数
    php商城秒杀活动
    php 栈、 出栈、入栈
    php单例模式
    封装PHP增删改查方法
  • 原文地址:https://www.cnblogs.com/fpcbk/p/14242470.html
Copyright © 2020-2023  润新知