是否有一个程序可以根据进程当前的网络 I/O 使用情况来列出进程?top
做CPU,至少在FreeBSD上,如果你通过它,它也会做磁盘I/O -m io
(我假设Linux上有某种类似的东西,但我不记得了)。但我想要的是特定的网络 I/O,以便我可以看到哪些进程正在使用它以及使用量。有没有一个程序可以用来以这种方式列出进程?如果没有,最好的选择是什么?
答案1
有ntop
和nethogs
。
Linux 上有iotop
io。
答案2
iftop
是您可以尝试的另一种选择。
答案3
nethogs
正如已接受的答案中所建议的,这可能是按进程查看网络使用情况的正确工具。
对于其他控制台网络监控工具,以下是 Debian 11(或 Ubuntu 20.04 LTS)上的当前工具列表。
apt show bwm-ng cbm dstat iftop iptraf-ng nethogs nload
按字母顺序排列,并附有描述摘录:
bwm-ng
(https://www.gropp.org/?id=projects&sub=bwm-ng)小巧简单的基于控制台的带宽监视器
cbm
(https://github.com/resurrecing-open-source-projects/cbm)颜色带宽计 (CBM) 是一个小程序,用于在简单的基于 Curses 的 GUI 中显示当前流经网络设备的流量。
dstat
(http://dag.wiee.rs/home-made/dstat/)多功能资源统计工具 Dstat 是 vmstat、iostat 和 ifstat 的多功能替代品。 Dstat 克服了这些程序的一些限制并添加了一些额外的功能。 Dstat 允许您立即查看所有网络资源,例如,您可以将磁盘使用情况与 IDE 控制器的中断相结合进行比较,或者直接将网络带宽数字与磁盘吞吐量进行比较(在相同的时间间隔内)。
dstat -n --nocolor -f
dstat -n --tcp --udp -f
- ETC。
iftop
(http://www.ex-parrot.com/~pdw/iftop/)显示网络接口上的带宽使用信息 iftop 对于网络使用情况的作用与 top(1) 对于 CPU 使用情况的作用相同。
iftop -i interface
#(指定接口。一次只能有1个)
iptraf-ng
(https://github.com/iptraf-ng/iptraf-ng)IPTraf-ng 是一个基于 ncurses 的 IP LAN 监视器,可生成各种网络统计信息,包括 TCP 信息、UDP 计数、ICMP 和 OSPF 信息、以太网负载信息、节点统计信息、IP 校验和错误等。
nethogs
(https://github.com/raboof/nethogs)Net top 工具对每个进程的带宽进行分组
nload
(http://www.roland-riegel.de/nload/)实时控制台网络使用监控
(使用←和→在界面之间移动显示)
答案4
邻居里来了一个新孩子——bandwhich
cargo
,不在 ootb 存储库中,但可以使用(用 Rust 编写)构建; github 项目页面上还提供了二进制文件。