因为新工厂的机器上面的业务混合部署非常严重,加上内网外网共用一个网卡(这个更不可思议),导致有时要定位一些进程流量的问题非常困难,所以最近花了点时间在网上搜集了一把 (aptitude search top$),粗略比较了一下,大概结果如下
atop — 跟 sar 类似,配合内核模块可以做到进程级别的流量统计(netatop) ,最方便的是 aptitude 可以直接安装(包括内核模块),软件本身到今年一直有更新,【推荐学习】
htop – 类似 top ,但不涉及网络
iftop — 交互式,类似 top ,以带宽使用排序,其他特色没有
jnettop — 类似 iftop 和 iptraf,但支持输出到文本以便于后续处理,算是一个特色。 但 2006年7月27日之后就不再更新了
ntop — 交互 或者 daemon 模式,提供 web 接口,支持top N host 和 top N protocol 【推荐学习】
sntop — 是用于监控的,不是用于流量分析的
iptraf — 交互式,也可以看出最占流量的端口,不过 2005年9月之后就没有再更新了
trafshow — 比较简洁、小巧的工具,跟 iftop 一样,可以比较直观的看出那个机器的流量大 【推荐】
sar — 老牌工具,不过命令太复杂,过于庞大,适合于细化的分析,如果只是需要定位流量问题,用不上。
latencytop — 这个是跟踪系统调用的,不是网络相关的
logtop — 一个有趣的小工具,可以将输入的按照出现的次数进行排序,就是完成一个 watch ‘tail FILE | sort | uniq -c | sort -gr’ 的功能
nethogs查看进程流量
查看系统版本及位数
uname -a
uname -r
这两个可以查看版本号及位数
getconf LONG_BIT
上面三个都可以查看位数
下载
wget ftp://ftp.muug.mb.ca/mirror/fedora/epel/6/x86_64/nethogs-0.8.0-1.el6.x86_64.rpm
安装
yum install nethogs -y后面的用tab调出来
安装完后直接运行nethogs就可以了
默认是监视eth0
如果要监视多个网卡
nethogs eth0 eth1
这样把网卡加到后面就行了
加-d参数是指定刷新时间
nethogs -d 1 eth0 eth1
是每一秒更新一次网卡eh0和eth1的流量信息
能显示出PID,用户,进程,网卡,发送流量,接收接收,总流量
按m是切换流量单位
B ,KB ,MB ,KB/SEC
q 和ctrl c 都是退出
看linux连接进程占用的实时流量iftop netatop NetHogs