linux - 命令 'ss' 的结果是网络使用情况的快照吗?

标签 linux networking tcp command ss

我使用命令'ss'来检查网络情况。

由于存在巨大的 tcp 连接,因此需要很多分钟。

“ss”命令的结果仍然是网络快照吗?

最佳答案

嗯,,不是真正的快照

因为它的工作基于解析 proc 中的信息。虚拟文件系统,其内容随着您实际访问其目录和文件而变化。这些文件和目录实际上并不存在,它们是在您访问它们时由内核动态生成的,这可能需要一些时间。 因此您无法拍摄 proc 的“快照” . top 等程序也是如此。 :它访问所有/proc/<PID>/目录,并且它一直在变化。

有几件事可能有助于加快速度,为您提供更多“类似快照”(但不是快照)的结果:

从其手册页可以看出,ss首先解析 /proc/net/tcp ,这可能需要一些时间。因此 --summary选项:

   -s, --summary
          Print  summary  statistics.  This  option  does not parse socket
          lists obtaining summary from various sources. It is useful  when
          amount  of  sockets  is  so  huge  that parsing /proc/net/tcp is
          painful.

您可能还想使用-n “无解析”选项(其他一些程序,例如 tcpdumpwireshark 也有这样的选项,这可以大大加快速度)。

   -n, --numeric
          Do not try to resolve service names.

关于linux - 命令 'ss' 的结果是网络使用情况的快照吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36076097/

相关文章:

java - 如何在 Linux centOS 中安装 JDK

linux - ID小于500的群组详情

python - Twisted 在连接关闭之前不发送任何内容

c++ - LibNet 读取 ARP 响应?

C# NetworkStream.DataAvailable 似乎不可靠

c - 如何在 Linux 上通过静态库同步进程?

ruby - 获取 ruby​​ 版本时出错

swift - RxSwift 链接请求

Java Socket - read() 方法如何知道是否已到达流的末尾?

java - java中的TCP套接字