在ChinaUnix的论坛中,有一个帖子说了一个很奇怪的现象:千兆网卡能跑出16EB/s的流量,注意1EB=1MT/B哦,1000T是1P,1000P才是1E,也就是每秒16百万T字节,绝对天文数字啊!链接见:http://bbs.chinaunix.net/thread-4172838-1-1.html。
我又测试了一下,确实可以达到这个速度!
方法:
(1)选运行systat -if 1;
(2)下载一个大点的文件,让网卡峰值(Peak)跟得大一些就行了。我用的是fetch了一个本地文件,跑到60MB/s。
(3)修改系统时间,让时间提前几分钟
经过这三个步骤,恭喜您,您的网速爆表了,目前全宇宙第一!
root@pppoe:/home/hu # systat -if 1
/0   /1   /2   /3   /4   /5   /6   /7   /8   /9   /10
Load Average
Interface           Traffic               Peak                Total
lo0  in      0.000 KB/s          8.016 KB/s           15.694 MB
out     0.000 KB/s          8.016 KB/s           15.698 MB
igb0  in      0.109 KB/s     16777216.000 TB/s        637.287 MB
out     0.403 KB/s     16777216.000 TB/s         25.528 MB
  很显然,这是流量除以时间导致的问题。
但是再仔细想一下,发现还有点小问题:为什么最高就到16777216呢?试过几次都是这个数值,door1000(原作者)的结果也是这个数值,难道是巧合吗?
把16777216除以1024,你便看到熟悉的数字了:16384,再除以1024,便得到16,这下应该明白了吧!
注意虽然除了两次1024,但这时单位仍然是T,再往下大家都熟悉了,依次是G、M、K,每一级都是1024,也就是2^10。
再倒过来,1K=2^10,1M=2^20,1G=2^30,1T=2^40,1P=2^50,1E=2^60。
然后……16=2^4。
放到一起,16E=2^64! 这下明白了吧,这就是64位无符号整数的最大范围啊!再多了就又成最小了。
  知道了原因,那么32位能表示多少呢?这个不用再算了吧,32位内存最大是多少来着?4G有印象吗?不会以为5G都出来了吧!!!
  来验证一下:
 /0   /1   /2   /3   /4   /5   /6   /7   /8   /9   /10
Load Average
Interface           Traffic               Peak                Total
lo0  in      0.000 KB/s          0.280 KB/s            3.609 KB
out     0.000 KB/s          0.280 KB/s            3.609 KB
fxp0  in      0.057 KB/s          4.000 GB/s          687.071 MB
out     0.157 KB/s          4.000 GB/s           20.029 MB
  32位4G封顶^_^