如何在 Linux 下监控每个进程的网络 I/O 使用情况?

如何在 Linux 下监控每个进程的网络 I/O 使用情况?

诸如 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)单独查找每个连接。您可以构建一个小脚本来汇总您正在寻找的特定数据。

相关内容