侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

查看Linux每个进程的流量和带宽

2023-12-02 星期六 / 0 评论 / 0 点赞 / 73 阅读 / 6140 字

查看Linux每个进程的流量和带宽 作为一个系统管理员,有时候需要搞清楚一台机器上的哪个进程占用了较高的网络带宽。如果没有专用的工具,这并非易事。在这篇文章中,我们将要介绍这样的一款工具。在此之前呢,

查看Linux每个进程的流量和带宽

作为一个系统管理员,有时候需要搞清楚一台机器上的哪个进程占用了较高的网络带宽。如果没有专用的工具,这并非易事。在这篇文章中,我们将要介绍这样的一款工具。在此之前呢,我们会尽量采用其它方法来获取某个进程占用多少带宽的相关信息。
我建议读者们也分享一些类似的命令行技巧或工具。
在Linux桌面上有许多的图形用户界面工具使用一些基于GUI的小程序来获取这类信息,但是大多数都只给出了整个系统所消耗的总带宽(没有显示单独某个进程的情况)。生产环境中的服务器不可能有基于GUI工具来获取这些信息,因此我们只会讨论一些命令行工具或者技巧。
第一种方法是使用iptraf 或 iftop 来确定发送流量最大的端口,然后从列表中找出哪个进程运行在该端口之上。我多次采用过这种方法,均达到了目的。
如果你刚听说 iftop 和 iptraf,我推荐你阅读下面这篇文章,解释了这两种工具如何使用。

阅读:Iptraf and Iftop command usage and examples

首先使用根据你使用的发行版选择YUM 或者apt-get 安装好iptraf 或 iptop。然后使用iptraf 命令找出流量使用情况和接口、端口信息。iptraf 会给出如下所示的输出。结果给出了两样东西,源地址和网络端口号。在第一次出现的welcome屏幕上按下Enter,就可以看见具体的选项了。一旦你选择了在所有接口之上的“IP traffic monitor”选项,你会看到如下的输出结果。

 

IPTraf┌ Statistics for eth0 ─────────────────────────────────────────────────────────┐│                                                                              ││               Total      Total    Incoming   Incoming    Outgoing   Outgoing ││             Packets      Bytes     Packets      Bytes     Packets      Bytes ││ Total:         1032     200746         353      22884         679     177862 ││ IP:            1032     184348         353      15992         679     168356 ││ TCP:           1032     184348         353      15992         679     168356 ││ UDP:              0          0           0          0           0          0 ││ ICMP:             0          0           0          0           0          0 ││ Other IP:         0          0           0          0           0          0 ││ Non-IP:           0          0           0          0           0          0 ││                                                                              ││                                                                              ││ Total rates:         47.0 kbits/sec        Broadcast packets:            0   ││                      31.2 packets/sec      Broadcast bytes:              0   ││                                                                              ││ Incoming rates:       5.6 kbits/sec                                          ││                      10.6 packets/sec                                        ││                                            IP checksum errors:           0   ││ Outgoing rates:      41.4 kbits/sec                                          ││                      20.6 packets/sec                                        │└ Elapsed time:   0:00 ────────────────────────────────────────────────────────┘

 

 

iptop:

                        12.5Kb                   25.0Kb                   37.5Kb                   50.0Kb             62.5Kb192.168.26.61                                    => 192.168.2.41                                     1.47Kb  1.22Kb  1.31Kb                                                 <=                                                   320b    266b    234b192.168.26.61                                    => 68.128.128.61.cq.cq.cta.net.cn                      0b      0b     29b                                                 <=                                                     0b      0b     51b192.168.26.255                                   => 192.168.26.111                                      0b	0b	0b                                                 <=                                                     0b      0b     46bTX:             cum:   9.52KB   peak:   4.67Kb                                              rates:   1.47Kb  1.22Kb  1.33KbRX:                    2.14KB           2.05Kb                                                        320b    266b    331bTOTAL:                 11.7KB           4.83Kb                                                       1.78Kb  1.48Kb  1.66Kb

 

iptop -i eth0iptop -nman iptoplsof -i:8080与ps -ef 和netstat -anlp想配合

 

jnettop 命令在你希望监测一个特定的source和destination之间的流量的时候很有用。它给出了我们需要找到的那个进程所使用的端口信息。

不过还有专门为此目的设计的更好的工具。这就是nethogs。它和根据网络用途将进程排好序的top 命令很类似,很容易安装和使用。 
如果你是在ReadHat/Centos系统上运行,那么你需要安装EPEL yum repo来安装nethogs。对Ubuntu用户来说,只需要用apt-get搞定。

apt-get install jnettopyum install jnettopapt-get install nethogsyum install nethogs

 

广告 广告

评论区