原文:http://coolnull.com/4134.html
说明:
有很多适用于Linux系统的开源网络监视工具.比如说,你可以用命令iftop来检查带宽使用情况. netstat用来查看接口统计报告,还有top监控系统当前运行进程.但是如果你想要找一个能够按进程实时统计网络带宽利用率的工具,那么NetHogs值得一看。
NetHogs是一个小型的net top工具,不像大多数工具那样拖慢每个协议或者是每个子网的速度而是按照进程进行带宽分组.NetHogs不需要依赖载入某个特殊的内核模块. 如果发生了网络阻塞你可以启动NetHogs立即看到哪个PID造成的这种状况.这样就很容易找出哪个程序跑飞了然后突然占用你的带宽.
简单地说,可以通过nethogs查看linux下进程的流量。
安装:
1. 编译安装nethogs依赖包,centos默认rpm仓没有nethogs的包,所以需要我们手动编译。nethogs编译依赖2个库,在编译前需要安装下
# yum install libpcap libpcap-devel
2.下载nethogs最新版,这个是截止到2015年9月23日能看到的最新包
# wget 'http://downloads.sourceforge.net/project/nethogs/nethogs/0.8/nethogs-0.8.0.tar.gz' # tar -xzvf nethogs-0.8.0.tar.gz # cd nethogs # make && make install
#默认安装好后的路径是/usr/local/sbin/nethogs
运行:
# nethogs NetHogs version 0.8.0 PID USER PROGRAM DEV SENT RECEIVED 3152 nobody nginx: worker process eth0 0.786 0.144 KB/sec ? root 10.21.2.22:80-27.15.5.12:1233 0.263 0.106 KB/sec ? root 10.21.2.22:80-27.15.5.12:1216 0.176 0.106 KB/sec ? root 10.21.2.22:80-27.15.5.12:1153 0.106 0.079 KB/sec ? root 10.21.2.22:43097-23.15.8.26:10050 0.057 0.059 KB/sec ? root 10.21.2.22:43102-23.15.8.26:10050 0.059 0.059 KB/sec ? root 10.21.2.22:43109-23.15.8.26:10050 0.059 0.059 KB/sec ? root 10.21.2.22:60234-19.29.10.3:10050 0.059 0.058 KB/sec ? root 10.21.2.22:60224-19.29.10.3:10050 0.059 0.058 KB/sec ? root 10.21.2.22:60222-19.29.10.3:10050 0.059 0.058 KB/sec ? root 10.21.2.22:60221-19.29.10.3:10050 0.059 0.058 KB/sec
命令行参数:
# nethogs --help nethogs: invalid option -- '-' usage: nethogs [-V] [-b] [-d seconds] [-t] [-p] [device [device [device ...]]] -V : prints version. -d : delay for update refresh rate in seconds. default is 1. -t : tracemode. -b : bughunt mode - implies tracemode. -p : sniff in promiscious mode (not recommended). device : device(s) to monitor. default is eth0 When nethogs is running, press: q: quit m: switch between total and kb/s mode
实例:
实例1:设置5秒钟刷新一次,通过-d来指定刷新频率
# nethogs -d 5 实例2:监视eth0网络带宽 # nethogs eth0 实例3:同时监视eth0和eth1接口 # nethogs eth0 eth1
交互命令:
以下是NetHogs的一些交互命令(键盘快捷键)
m : 修改单位
r : 按流量排序
s : 按发送流量排序
q : 退出命令提示符
关于NetHogs命令行工具的完整参数列表,可以参考NetHogs的手册,使用方法是在终端里输入man nethogs。更多信息请参考nethogs主页: