运行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
是兆字节还是兆位?
答案 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)表示。