• 查看整个系统的网卡流量使用情况

可以参考下这篇总结比较全面的文章

  • 监控具体的某个进程所消耗的流程

首先,Linux没有自带这样的工具,通过这款第三方开源工具,也是比较好用,如果有其他的办法欢迎留言

# yum -y install nethogs

    PID USER     PROGRAM                                             DEV        SENT      RECEIVED       
   3052 root     sshd: root@pts/0                                      ens32      50.203	1.239 KB/sec
  12095 root     curl                                                          ens32       0.093	0.611 KB/sec
  12093 root     curl                                                          ens32       0.093	0.611 KB/sec
  TOTAL                                                                                                                    59.390      62.250 KB/sec

这是我在后台执行了一个循环使用while结合curl,最下面的是总流量,上面是各个进程的pid

随之,我又在后台执行一个ping,应该也是有流量,但是并没有新的进程产生

NetHogs version 0.8.5

    PID USER     PROGRAM                                                                                        DEV        SENT      RECEIVED       
   3052 root     sshd: root@pts/0                                                                               ens32       0.196	0.070 KB/sec
      ? root     unknown TCP                                                                                                0.000	0.000 KB/sec

  TOTAL                                                                                                                     0.196       0.070 KB/sec
 

根据理论推测,他应该是运行在root@pts/0 这个终端下的一个子进程或者是一个任务,查看了下原因

[root@localhost ~]# pstree 
 ├─sshd─┬─sshd───bash───nethogs
        │      ├─sshd───bash───ping
        │      └─sshd───bash───pstree

是因为我是ssh连接到远程主机的,所以按照进程数来看,sshd才是真正的进程,而ping只是在sshd下的bash里执行了一个ping,所以没有显现出来