【发布时间】:2013-10-13 22:30:33
【问题描述】:
我正在查看文件 /proc/net/dev 并想知道接收字节值的单位转换。
这是我正在考虑的文件部分:
Inter-| Receive
face |bytes
eth0: 7060880392
ifconfig 使用 /proc/net/dev 生成以下内容:
eth0 Link encap:Ethernet
...
RX bytes:7060880392 (7.0 GB)
那是我不明白的。鉴于值的单位是字节(而不是位),我本来希望通过 1024 的除法转换为 GB。7060880392/1024/1024/1024 = 6.6GB。但显然 ifconfig 使用了 1000 的除法来将 B 转换为 GB。
有人可以解释他们为什么这样做吗?我知道带宽通常以比特表示;也许 /proc/net/dev 中的标签将值的单位称为字节是不正确的?我检查了 proc 的手册页,但该文件没有太多详细信息。
【问题讨论】:
-
有什么理由认为这个决定不是任意的吗?
-
在计算中,前缀G不一致地用于10^9和2^30。但是,前者实际上是正确的,而对于网络流量,后者没有意义。另见:en.wikipedia.org/wiki/Binary_prefix
-
我可以任意决定如何使用这些信息。鉴于它是一个体积带宽,通常以位为单位,并且 ifconfig 执行单位转换为 1000,我倾向于这样做。我想我应该澄清一下:在问为什么时,我想了解我应该如何准确而不是随意地执行这些转换。
标签: linux type-conversion