mapreduce指标中的吞吐量是MB还是Mb

时间:2019-04-30 16:06:48

标签: hadoop

运行TestDFSIO后,我得到以下指标:

2019-04-30 09:50:35,790 INFO fs.TestDFSIO:             Date & time: Tue Apr 30 09:50:35 EDT 2019
2019-04-30 09:50:35,791 INFO fs.TestDFSIO:         Number of files: 100
2019-04-30 09:50:35,791 INFO fs.TestDFSIO:  Total MBytes processed: 10000
2019-04-30 09:50:35,791 INFO fs.TestDFSIO:       Throughput mb/sec: 376.9
2019-04-30 09:50:35,791 INFO fs.TestDFSIO:  Average IO rate mb/sec: 387.16
2019-04-30 09:50:35,791 INFO fs.TestDFSIO:   IO rate std deviation: 60.42
2019-04-30 09:50:35,791 INFO fs.TestDFSIO:      Test exec time sec: 115.21 

Average IO rate mb/sec是兆字节还是兆位?

1 个答案:

答案 0 :(得分:0)

TestDFSIO是有用的工具,但唯一可用的文档在其源代码中。

通过查看TestDFSIO.java的代码,似乎吞吐量以兆字节/秒表示。

source code中,可以看到如何计算通量:

"      Throughput mb/sec: " + df.format(toMB(size) / msToSecs(time)),

函数toMB()是字节数除以MEGA:

static float toMB(long bytes) {
    return ((float)bytes)/MEGA;
  }

依次是常量0x100000L,即整数1048576 = 1024 * 1024。

从代码中:

private static final long MEGA = ByteMultiple.MB.value();

enum ByteMultiple {
    B(1L),
    KB(0x400L),
    MB(0x100000L),
    GB(0x40000000L),
    TB(0x10000000000L);
   ...

因此,吞吐量应以兆字节/秒(MiB / sec)表示,而不是以兆字节(MB)表示。