zoukankan      html  css  js  c++  java
  • Docker 容器中无ss命令解决方法

    在早期运维工作中,查看服务器连接数一般都会用netstat命令。其实,有一个命令比netstat更高效,那就是ss(Socket Statistics)命令!
    ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。
    ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。原因如下:
    1)当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用netstat等于浪费 生命,而用ss才是节省时间。
    2)而ss快的秘诀在于它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux内核中第一手的信息,这就确保了ss的快捷高效。当然,如果你的系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢(但仍然比 netstat要快)。

    为了验证ss比netstat更快更高效,可以如下做几个实验看看效果:
    几乎所有的Linux系统都会默认包含netstat命令,但并非所有系统都会默认包含ss命令。
    netstat命令是net-tools工具集中的一员,这个工具一般linux系统会默认安装的;ss命令是iproute工具集中的一员;
    net-tools是一套标准的Unix网络工具,用于配置网络接口、设置路由表信息、管理ARP表、显示和统计各类网络信息等等,但是遗憾的是,这个工具自2001年起便不再更新和维护了。
    iproute,这是一套可以支持IPv4/IPv6网络的用于管理TCP/UDP/IP网络的工具集

    如果没有ss命令,可以如下安装:
    [root@wang ~]# yum install iproute iproute-doc

    当服务器维持30000个socket连接时,使用netstat和ss命令统计连接数的耗时情况如下
    [root@wang ~]# netstat -at | wc -l     //耗时15.60秒 
    [root@wang ~]# ss -atr | wc -l          //耗时5.40秒(未利用tcp_diag) 
    [root@wang ~]# ss -atr | wc -l         //耗时0.47秒(利用tcp_diag)

  • 相关阅读:
    在主窗体中打开一个新子窗体,如果已有子窗体,则激活它,而不打开新的。
    文本的追加
    男人至少的品质底线
    做人,做事,生活,学习,爱情>人生
    日常中一些好用的小软件
    ◆2008 年广告创意设计师必备网址汇总◆
    在SharePoint中更改当前登录用户的密码
    SONY笔记本VGNSZ65装VISTA记
    Outlook收邮件速度超慢的原因
    Cisco路由器做限速
  • 原文地址:https://www.cnblogs.com/Presley-lpc/p/9390494.html
Copyright © 2011-2022 走看看