![如何在 Linux 下监控每个进程的网络 I/O 使用情况?](https://linux22.com/image/487374/%E5%A6%82%E4%BD%95%E5%9C%A8%20Linux%20%E4%B8%8B%E7%9B%91%E6%8E%A7%E6%AF%8F%E4%B8%AA%E8%BF%9B%E7%A8%8B%E7%9A%84%E7%BD%91%E7%BB%9C%20I%2FO%20%E4%BD%BF%E7%94%A8%E6%83%85%E5%86%B5%EF%BC%9F.png)
诸如 iftop/iptraf 之类的已知工具会显示每个接口和每个连接的网络 I/O。有没有办法查看每个进程的网络 I/O 统计信息?
答案1
网猪看起来它会做你想做的事。
编辑:我需要安装 ncurses-devel、libpcap 和 libpcap-devel 来构建。
答案2
要查找与每个进程关联的连接,请使用 lsof。例如:
lsof | grep TCP
这将为您提供一个连接列表,如下所示:
bash 10887 luke 3u IPv4 44638801 0t0 TCP littleyerry.example.com:55212->barista.example.com:ldap (ESTABLISHED)
bash 10913 luke 3u IPv4 44638905 0t0 TCP littleyerry.example.com:55216->barista.example.com:ldap (ESTABLISHED)
ssh 10935 luke 3u IPv4 44639001 0t0 TCP littleyerry.example.com:55219->barista.example.com:ldap (ESTABLISHED)
ssh 10935 luke 4u IPv4 44639008 0t0 TCP littleyerry.example.com:59459->launchpad.example.com:ssh (ESTABLISHED)
bash 10938 luke 3u IPv4 44639107 0t0 TCP littleyerry.example.com:55221->barista.example.com:ldap (ESTABLISHED)
从那里,您应该能够使用您提到的工具(iftop、iptraf)单独查找每个连接。您可以构建一个小脚本来汇总您正在寻找的特定数据。