HDFS-3520. Add transfer rate logging to TransferFsImage. Contributed by Eli Collins

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1349117 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Eli Collins 2012-06-12 05:00:07 +00:00
parent 9947d8054c
commit 8879653ab4
2 changed files with 9 additions and 1 deletions

View File

@ -220,6 +220,8 @@ Branch-2 ( Unreleased changes )
HDFS-3052. Change INodeFile and INodeFileUnderConstruction to package
private. (szetszwo)
HDFS-3520. Add transfer rate logging to TransferFsImage. (eli)
OPTIMIZATIONS
HDFS-2982. Startup performance suffers when there are many edit log

View File

@ -32,11 +32,11 @@ import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.security.SecurityUtil;
import org.apache.hadoop.hdfs.protocol.HdfsConstants;
import org.apache.hadoop.hdfs.server.common.Util;
import org.apache.hadoop.hdfs.server.namenode.NNStorage.NameNodeDirType;
import org.apache.hadoop.hdfs.server.protocol.RemoteEditLog;
import org.apache.hadoop.hdfs.util.DataTransferThrottler;
import org.apache.hadoop.io.MD5Hash;
import org.apache.hadoop.security.UserGroupInformation;
import com.google.common.collect.Lists;
@ -207,6 +207,7 @@ public class TransferFsImage {
//
// open connection to remote server
//
long startTime = Util.monotonicNow();
URL url = new URL(str);
HttpURLConnection connection = (HttpURLConnection)
@ -312,6 +313,11 @@ public class TransferFsImage {
advertisedSize);
}
}
double xferSec = Math.max(
((float)(Util.monotonicNow() - startTime)) / 1000.0, 0.001);
long xferKb = received / 1024;
LOG.info(String.format("Transfer took %.2fs at %.2f KB/s",
xferSec, xferKb / xferSec));
if (digester != null) {
MD5Hash computedDigest = new MD5Hash(digester.digest());