Chinaunix

标题: 给出一个测试你服务器上流量和带宽的程序 [打印本页]

作者: 思一克    时间: 2007-04-19 09:29
标题: 给出一个测试你服务器上流量和带宽的程序
给出一个测试你服务器上流量和带宽的程序。

为了测试出带宽,你必须让服务器满负荷传输,看最大的used_bandwidth可以是多少。


  1. if [ "$1" = "" ]; then
  2. echo usage:
  3. echo nr TIME_IN_SECOND
  4. echo for example:
  5. echo ./nr 10
  6. exit

  7. fi

  8. echo see network speed. by seeker

  9. TXDATA=`ifconfig | grep "TX bytes:" | head -n 1 | awk -F':' '{print $3}' | awk -F' ' '{print $1}'`
  10. RXDATA=`ifconfig | grep "RX bytes:" | head -n 1 | awk -F':' '{print $2}' | awk -F' ' '{print $1}'`

  11. TIME=$1
  12. sleep $1

  13. TXDATA1=`ifconfig | grep "TX bytes:" | head -n 1 | awk -F':' '{print $3}' | awk -F' ' '{print $1}'`
  14. RXDATA1=`ifconfig | grep "RX bytes:" | head -n 1 | awk -F':' '{print $2}' | awk -F' ' '{print $1}'`

  15. let TX=(TXDATA1-TXDATA)
  16. let RX=(RXDATA1-RXDATA)
  17. let RATET=TX/TIME/1024
  18. let RATER=RX/TIME/1024
  19. let KTX=TX/1024
  20. let KRX=RX/1024
  21. let BWT=RATET*8
  22. let BWR=RATER*8
  23. echo Sent: $KTX K,  $RATET K/S,  used_bandwidth: $BWT K
  24. echo Recv: $KRX K,  $RATER K/S,  used_bandwidth: $BWR K

复制代码

[ 本帖最后由 思一克 于 2007-4-19 09:30 编辑 ]
作者: hongst    时间: 2007-04-20 14:41
版主,能不能给解释一下!
作者: langue    时间: 2007-04-20 14:43
小声地说一句:这个移到 Shell 版或许更好?
作者: flw    时间: 2007-04-20 14:45
原帖由 思一克 于 2007-4-19 09:29 发表

为了测试出带宽,你必须让服务器满负荷传输

晕哦~
这个不叫测试吧?
这个最多叫“获取”
作者: 思一克    时间: 2007-04-20 15:17
随便叫什么吧。因为前面有C版有帖子关于100M网络的速度问题,所以才有此帖子。

很简单,就是根据命令ifconfig 的输出

eth0      Link encap:Ethernet  HWaddr 00:18:8B:37:A3:A0
          inet addr:219.234.95.124  Bcast:219.234.95.255  Mask:255.255.255.0
          inet6 addr: fe80::218:8bff:fe37:a3a0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:44924165 errors:0 dropped:0 overruns:0 frame:0
          TX packets:47169593 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1644584053 (1.5 GiB)  TX bytes:3022995733 (2.8 GiB)
          Interrupt:169 Memory:f8000000-f8011100

查找RX Bytes: 和 TX bytes: 的数字,过10(参数)秒后再看一次。
相减,得到这10秒内传输的字节数字。除10就是每秒字节数。


  1. TXDATA=`ifconfig | grep "TX bytes:" | head -n 1 | awk -F':' '{print $3}' | awk -F' ' '{print $1}'`
复制代码

作者: safedead    时间: 2007-04-20 15:33
如果仅仅是获取网卡流量
LINUX上读取/proc/net/dev更加方便




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2