nicstat 网络流量统计利器

标签: Linux 工具介绍 源码分析 nicstat 网络流量 | 发表时间:2013-02-27 13:16 | 作者:Yu Feng
出处:http://blog.yufeng.info

原创文章,转载请注明: 转载自 系统技术非业余研究

本文链接地址: nicstat 网络流量统计利器

前段时间看到brendangregg的 Linux Performance Analysis and Tools PPT里面提到的nicstat,研究了下是个不错的东西,分享给大家。

nicstat is to network interfaces as “iostat” is to disks, or “prstat” is to processes.

nicstat原本是Solaris平台下显示网卡流量的工具,Tim Cook将它移植到linux平台,官方网站见 这里。 相比netstat, 他有以下关键特性:

  • Reports bytes in & out as well as packets.
  • Normalizes these values to per-second rates.
  • Reports on all interfaces (while iterating)
  • Reports Utilization (rough calculation as of now)
  • Reports Saturation (also rough)
  • Prefixes statistics with the current time

我们来体验下,首先安装之,源码在 这里 下, 目前最新的版本是1.92。
解开后,由于这个版本默认是在32位linux下编译,所以需要改下Makefile.Linux:
$ diff Makefile.Linux64 Makefile.Linux
17c17
< CFLAGS = $(COPT) -m32
---
> CFLAGS = $(COPT)

$ sudo make -f Makefile.Linux install
就安装好了。

使用文档在这里: man nicstat
由于在linux下需要获取网卡的speed等信息,需要要以特权用户运行。

$ sudo enicstat -l
Int      Loopback   Mbit/s Duplex State
lo            Yes        -   unkn    up
eth0           No     1000   full    up
bond0          No        0   unkn    up

$ sudo enicstat 
    Time      Int   rKB/s   wKB/s   rPk/s   wPk/s    rAvs    wAvs %Util    Sat
13:04:10       lo   161.1   161.1   489.2   489.2   337.3   337.3  0.00   0.00
13:04:10     eth0   601.9   589.1  1868.1  1894.1   330.0   318.5  0.98   0.00
13:04:10    bond0   601.9   589.1  1868.1  1894.1   330.0   318.5  0.00   0.00

上面很特色的一个选项就是网卡的Util(利用率)以及Saturation(This the number of errors/second seen for the interface)在实践中用途挺大的。

通过strace和源码进行简单的分析:

open(“/proc/net/dev”, O_RDONLY) = 3
open(“/proc/net/snmp”, O_RDONLY) = 5
open(“/proc/net/netstat”, O_RDONLY) = 6
open(“/proc/uptime”, O_RDONLY) = 9

大部分统计信息是从上面3个文件获取到的,snmp提供了tcp和udp的统计信息。

默认统计信息 以KB为单位,-M选项可以更改为以M为单位。

$ sudo enicstat -M
    Time      Int   rMbps   wMbps   rPk/s   wPk/s    rAvs    wAvs %Util    Sat
13:14:51       lo    1.26    1.26   489.1   489.1   337.3   337.3  0.00   0.00
13:14:51     eth0    4.70    4.60  1868.0  1894.0   330.0   318.5  0.98   0.00
13:14:51    bond0    4.70    4.60  1868.0  1894.0   330.0   318.5  0.00   0.00

nicstat提供了tcp链接外联和内联的个数,重置,Drops信息还有包重传率等信息,这些信息对于诊断tcp问题挺有用的。

$ sudo enicstat -t
13:09:40    InKB   OutKB   InSeg  OutSeg Reset  AttF %ReTX InConn OutCon Drops
TCP         0.00    0.00  2123.7  2251.7  1.84  0.79 0.000   7.16   2.95  0.00

最后需要注意的是, 解读输出信息的时候:

NOTES
On Linux, the NoCP, Defer, TCP InKB, and TCP OutKB statistics are always reported as zero.

The way that saturation is reported is a best effort, as there is no standardized naming to capture
all errors related to an interface’s inability to receive or transmit a packet. Monitoring %Util and
packet rates, along with an understanding of the specific NICs may be more useful in judging whether
you are nearing saturation.

祝玩得开心!

Post Footer automatically generated by wp-posturl plugin for wordpress.

相关 [nicstat 网络流量 统计] 推荐:

nicstat 网络流量统计利器

- - 系统技术非业余研究
原创文章,转载请注明: 转载自 系统技术非业余研究. nicstat 网络流量统计利器. 前段时间看到brendangregg的 Linux Performance Analysis and Tools PPT里面提到的nicstat,研究了下是个不错的东西,分享给大家. nicstat原本是Solaris平台下显示网卡流量的工具,Tim Cook将它移植到linux平台,官方网站见 这里.

NetWorx v5.2.1 安装/绿色版 --- 实用网络流量监测,统计,控制软件

- - 姥姥精品软件坊
       对于经常出差或旅行的人士,3G移动上网是有需要的,但3G上网费用很高,收费方式多样,如计时收费,流量计费,包月等;不经常使用3G的用户,个人认为使用流量卡上网最佳,一来手续简单,买个流量资费卡就可以上网了(当然要配备上网卡),二来可以避免被斩的风险,用完流量就算了.        使用3G流量卡,每次使用到底耗用了多少流量,剩余多少流量.

用iftop监控网络流量

- - CSDN博客推荐文章
iftop是很有用的工具,下面的命令监控了我的笔记本的无线网卡. 比如我现在播放乐视一个视频,iftop显示的信息:. 屏幕主要部分都是表示两个机器之间的数据传送,有箭头表示方向,右边三个数值分别是过去2秒,10秒和40秒的平均流量. 2  左下角的TX 表示发出的数据,RX表示收到的数据,.  cum表示总流量, peak表示对应的峰值, Total就不用解释了.

Redis 与网络流量整形

- - leejun_2005的个人页面
我们希望服务器能在请求流量的控制上有一定的自动控制能力;本文通过简介令牌桶算法和讨论算法的 redis 实现给出流量整形(traffic shaping)的示例,来介绍网络流量整形. 令牌桶算法(token bucket) 并不是网络流量整形中的奇技淫巧,而是非常常用的算法,从百度百科上已经可以对它有一个概括的了解.

苹果iPad网络流量占全球平板类的89%

- ivan - Engadget 中国版
网络调查公司comScore发表最新研究报告称,全球平板电脑的互联网流量89%来自苹果的iPad. 报告发现,苹果iPad在所有被调查的13个地区都占主导地位,占平板电脑网络流量的89%左右. 虽然Android平板电脑在流量上远低于iPad,不过Android智能手机的流量超过iPhone,占智能手机总流量的35.6%,苹果为23.5%.

Firefox 6已达Web浏览器网络流量的8%

- Antoine - cnBeta.COM
8月16日Mozilla发布了Firefox稳定分支的最新版本Firefox 6,Chitika今天统计了16日到22日短短一周的数据,结果发现Firefox用户跟随新版本的能力非常强,Firefox 6在短时间内拿下了全球WWW互联网8%的流量,与此同时,Firefox 6在所有版本的Firefox浏览器中的流量达到45%,以下是统计图表:.

【数字】全球17.4%的网络流量来自移动终端

- - SocialBeta
当你们的父辈们开始聚精会神“打飞机”,玩爱消除的时候,当你远在农村或者其他三四线城市的表哥表弟和你微信聊天的时候,你已经不得不承认,原先和我们分属两个世界他们的正迎头赶上,享受这网络带来的巨大乐趣,而这仅仅只是一部手机的变化. 根据Gartner最近发布了 2013年第二季度手机销售报告,报告显示目前全球智能手机销量已经全面超过功能性手机,而两年前智能手机只在美国市场上的销量多余功能机,而现在来看这一趋势已遍及全球,越来越多的人通过一个小小的智能机链接到互联网,到2013年目前为止,全球有17.4%的流量来自移动终端,这和2012年相比增长了6%.

阿里支付宝进程被怀疑监控网络流量

- - Solidot
阿里支付宝程序的一个进程Alipaybsm.exe被怀疑监控网络流量,它会复制发送的数据到接收缓冲中. Alipaybsm.exe不是随支付宝安全控件(Aliedit.exe)安装到电脑上的,用户安装支付宝安全控件只会在Program Files (x86)\alipay下面建一个名字叫alieditplus的目录.

iOS 5正式发布5天即已占据iOS系统20%网络流量

- chas - cnBeta.COM
美国广告网络Chitika的最新数据显示,iOS 5发布5天就占到所有iOS上网流量的20%. Chitika的数据显示,10月11日至10月17日间的iOS 5流量大幅飙升. 由于iOS为用户提供了众多优秀功能,因此吸引用户升级完全在意料之中,但普及速度如此之快的确令人意外.

[信息图]报告称“机器人”已把持61%的网络流量 人类仅占38.5%

- - cnBeta.COM业界资讯
如果你正在观看这篇新闻,那么你肯定不会是唯一的访问者——除了人类,还有很大一部分是"机器人"(bots). 根据最近由Incapsula发布的一份报告,61.5%的网络流量,竟然是由"机器人"产生的. 相对的,在今年,人类访问只造就了38.5%的网络流量;而在去年,这一数字是49%. 在这些自动化软件工具中,有许多是恶意的——盗取数据、或者在评论部分发布诈骗性质的广告帖.