Linux如何監控每個進程所消耗流量


  • 查看整個系統的網卡流量使用情況

可以參考下這篇總結比較全面的文章

  • 監控具體的某個進程所消耗的流程

首先,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,所以沒有顯現出來


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM