-
Notifications
You must be signed in to change notification settings - Fork 8.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HDFS-17272. NNThroughputBenchmark should support specifying the base directory for multi-client test #6319
Conversation
🎊 +1 overall
This message was automatically generated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Requires an entry in the Benchmarking.md
as well
@@ -736,7 +746,7 @@ class OpenFileStats extends CreateFileStats { | |||
static final String OP_OPEN_NAME = "open"; | |||
static final String OP_USAGE_ARGS = | |||
" [-threads T] [-files N] [-blockSize S] [-filesPerDir P]" | |||
+ " [-useExisting]"; | |||
+ " [-baseDirName D] [-useExisting]"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add the new parameter towards the end
@@ -1348,7 +1363,7 @@ class ReplicationStats extends OperationStatsBase { | |||
static final String OP_REPLICATION_USAGE = | |||
"-op replication [-datanodes T] [-nodesToDecommission D] " + | |||
"[-nodeReplicationLimit C] [-totalBlocks B] [-blockSize S] " | |||
+ "[-replication R]"; | |||
+ "[-replication R] [-baseDirName N]"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
somewhere us baseDirName D and here it is baseDirName N
Shouldn't be inconsistent I believe
nameDir.getAbsolutePath()); | ||
DFSTestUtil.formatNameNode(conf); | ||
NNThroughputBenchmark.runBenchmark(conf, | ||
new String[] {"-op", "all", "-baseDirName", "/nnThroughputBenchmark1"}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
test should check nnThroughputBenchmark1
was used & the default directory wasn't created nor used.
try with other operations as well apart from all
@ayushtkn Thank you for your review. I have updated based on your suggestions. |
🎊 +1 overall
This message was automatically generated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please fix the checkstyle. The other changes look good to me.
"-op replication [-datanodes T] [-nodesToDecommission D] " + | ||
"-op replication [-datanodes T] [-nodesToDecommission N] " + |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we can't change the existing commands, that is an incomatible change, whatever needs to be done should be done for new commands only.
btw. what does this letter denote?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think D denote dir.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we both -nodesToDecommission and -baseDirName use D?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If it has no physical meaning, then yes, can check if other alphabets are not used, so can explore using them P as in Path or B as in BaseDir or some similar, else use whichever you like :-)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P and B has also been used, such as -blocksPerReport B and -filesPerDir P. And other alphabets cannot be related to directory I think. Could I keep using D?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok, just double check they don't have any specific usage apart from just being alphabets in the description
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok. Only -nodesToDecommission used the D alphabet.
...oop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNNThroughputBenchmark.java
Outdated
Show resolved
Hide resolved
🎊 +1 overall
This message was automatically generated. |
💔 -1 overall
This message was automatically generated. |
d6b7c88
to
14566b7
Compare
🎊 +1 overall
This message was automatically generated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…directory for multi-client test (apache#6319). Contributed by caozhiqiang. Reviewed-by: Tao Li <[email protected]> Signed-off-by: Ayush Saxena <[email protected]>
Currently, NNThroughputBenchmark does not support specifying the base directory, therefore does not support multiple clients performing stress testing at the same time. However, for high-performance namenode machine, only one client submitting stress test can not make the namenode rpc access reach the bottleneck. Therefore, multiple clients are required for parallel testing to make the namenode pressure reach the level of the large-scale production cluster.
So I specify the base directory through the -baseDirName parameter to support multiple clients submitting stress tests at the same time.