在linux服务器上测量带宽使用(GB传输)

我有一个Linux电子邮件服务器,我正在考虑进入“云”。 在调查定价后,我看到我的主要成本将在带宽。 你们如何build议衡量一段时间内传输的数据总量?

过去我已成功在服务器上运行vnstat 。 它可以打包fedora和Ubuntu(也可能是其他发行版)。 还有一个PHP前端可用,这是很容易安装。

  • ifconfig告诉你接口的用法,包括传输的数据量。
  • ntop以很多方式logging和分析stream量。
  • iftop和iptraf实时显示连接和其他数据

如果你想要低技术的版本,你可以cat / proc / net / devlogging时间,然后再做一次,并从中计算出来。 但是,请注意,计数器以2 ^ 32字节(4GB)(至less在我最近使用的32位内核)上换行:

 Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo: 51433 617 0 0 0 0 0 0 51433 617 0 0 0 0 0 0 eth0:3270597247 14887385 0 0 0 0 0 0 694109632 7720886 0 0 0 0 0 0 pan0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

有一个perl例程来parsing这个在我的博客文章: debuggingparsing/ proc / net / dev的脚本

通过cron在你的服务器上运行sysstat; networking信息( sar -n ALL )会给你rxkB / s和txkB / s,你可以很容易地把它变成一个总的stream量数字。

snmp + mrtg / rrdtool(cacti)

正如别人提到的, vnstat是一个很好的工具,易于设置,并且可以轻松地为您提供所需的信息。

请注意,您的提供商应该让您查看他们用于带宽计费的工具。 有多种方法可以跟踪和计费带宽使用情况(交换机端口测量值与虚拟机计数器相比,95%百分比与总发送位数,发送和接收比较仅发送),这将对您的最终计费产生重大影响 – 把它们用来计费的工具放在一个非常重要的位置,以便真实地了解你的带宽成本是多less。 通过这种方式,您可以准确采取措施来改变或最大限度地减less您的带宽使用,然后才能获得带宽的主要费用。

munin有一个networkusage的基本插件

我使用collectd来收集接口stream量计数,以及稍微改变的这个脚本的版本,以生成漂亮的graphics和计数。 输出看起来像这样,虽然是相当可变的,如果你有特定的喜好,你可以从rrdtool画廊看到。 如果您需要比简单的接口stream量计数更多的细节,那么您可以使用collectd中的iptables模块来计算更具体的stream量组。