我想使用 JVM 重用来提高我的 Hadoop 集群的性能。
我在单节点集群上使用 100 个 5MB 的文件运行了 TestDFSIO 基准测试,没有和使用 JVM 重用(mapred.job.reuse.jvm.num.tasks
设置为-1
)。
我运行了系统监视器,并且 JVM 重用显着降低了 CPU 使用率。据推测,根据下面的基准测试结果,吞吐量上升了。
然而,整个基准测试运行时几乎没有改变。JVM 重用如何不提高基准运行时,但提高吞吐量?
没有 JVM 重用:
13/10/29 12:27:07 INFO fs.TestDFSIO: Number of files: 100
13/10/29 12:27:07 INFO fs.TestDFSIO: Total MBytes processed: 500
13/10/29 12:27:07 INFO fs.TestDFSIO: Throughput mb/sec: 37.310648459070215
13/10/29 12:27:07 INFO fs.TestDFSIO: Average IO rate mb/sec: 42.019798278808594
13/10/29 12:27:07 INFO fs.TestDFSIO: IO rate std deviation: 10.420282152960008
13/10/29 12:27:07 INFO fs.TestDFSIO: Test exec time sec: 325.443
使用 JVM 重用:
13/10/29 12:35:29 INFO fs.TestDFSIO: Number of files: 100
13/10/29 12:35:29 INFO fs.TestDFSIO: Total MBytes processed: 500
13/10/29 12:35:29 INFO fs.TestDFSIO: Throughput mb/sec: 55.17545795630104
13/10/29 12:35:29 INFO fs.TestDFSIO: Average IO rate mb/sec: 69.57689666748047
13/10/29 12:35:29 INFO fs.TestDFSIO: IO rate std deviation: 21.605466270807376
13/10/29 12:35:29 INFO fs.TestDFSIO: Test exec time sec: 330.218