博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何在Linux下统计高速网络中的流量
阅读量:4107 次
发布时间:2019-05-25

本文共 2392 字,大约阅读时间需要 7 分钟。

如何在Linux下统计高速网络中的流量

转自
http://www.geekfan.net/5558/
本文由  -  翻译自 。欢迎加入,同我们一道翻译与分享。转载请参见文章末尾处的要求。


在Linux中有很多的流量监控工具,它们可以监控、分类网络流量,以花哨的图形用户界面提供实时流量分析报告。大多数这些工具(例如:, )都是基于 库的 ,这个函数库是用来截取流经网卡的数据包的,可在用户空间用来监视分析网络流量。尽管这些工具功能齐全,然而基于libpcap库的流量监控工具无法处理高速(Gb以上)的网络接口,原因是由于在用户空间做数据包截取的系统开销过高所致。

在本文中我们介绍一种简单的Shell 脚本,它可以监控网络流量而且不依赖于缓慢的libpcap库。这些脚本支持Gb以上规模的高速网络接口,如果你对“汇聚型”的网络流量感兴趣的话,它们可统计每个网络接口上的流量。

脚本主要是基于虚拟文件系统,这是由内核用来将设备或驱动相关的信息输出到用户空间的一种机制。网络接口的相关分析数据会通过“/sys/class/net/<ethX>/statistics”输出。

举个例子,eth0的网口上分析报告会输出到这些文件中:

  • /sys/class/net/eth0/statistics/rx_packets: 收到的数据包数据
  • /sys/class/net/eth0/statistics/tx_packets: 传输的数据包数量
  • /sys/class/net/eth0/statistics/rx_bytes: 接收的字节数
  • /sys/class/net/eth0/statistics/tx_bytes: 传输的字节数
  • /sys/class/net/eth0/statistics/rx_dropped: 当收到包数据包下降的数据量
  • /sys/class/net/eth0/statistics/tx_dropped: 传输包数据包下降的数据量

这些数据会根据内核数据发生变更的时候自动刷新。因此,你可以编写一系列的脚本进行分析并计算流量统计。下面就是这样的脚本(感谢  提供)。第一个脚本是统计每秒数据量,包含接收(RX)或发送(TX)。而后面的则是一个描述网络传输中的接收(RX)发送(TX)带宽。这些脚本中安装不需要任何的工具。

测量网口每秒数据包:

网络带宽测量

下面的屏幕截图显示了上面的两个脚本的输出。

你可能感兴趣的文章
Edit Distance 字符串距离(重重)
查看>>
Gray Code 格雷码
查看>>
对话周鸿袆:从程序员创业谈起
查看>>
初学必读:61条面向对象设计的经验原则 (转)
查看>>
程序员寓言
查看>>
工厂模式----易懂版(转)
查看>>
生命有两层含义
查看>>
然后就去远行
查看>>
Gosling称java应用最酷的一举
查看>>
C++知名的库
查看>>
Eclipse启动运行速度调优
查看>>
6个变态的C语言Hello World程序
查看>>
Unix道德经(英文版)
查看>>
PHP程序员最易犯10种错误
查看>>
javascript 基础
查看>>
javascript 进阶
查看>>
如何减少网页的内存与CPU占用
查看>>
如何快速的呈现我们的网页
查看>>
加速图片显示
查看>>
IT业界2011年的十大热门领域浅谈
查看>>