diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java
index 3ab2a7c..3013001 100644
--- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java
+++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java
@@ -57,7 +57,9 @@ import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Sets;
 import com.google.common.hash.Hashing;
+
 import org.apache.commons.io.FileUtils;
+import org.apache.jackrabbit.oak.commons.IOUtils;
 import org.apache.jackrabbit.oak.commons.concurrent.NotifyingFutureTask;
 import org.apache.jackrabbit.oak.util.PerfLogger;
 import org.apache.lucene.store.Directory;
@@ -827,7 +829,8 @@ public class IndexCopier implements CopyOnReadStatsMBean, Closeable {
                     local.copy(remote, name, name, IOContext.DEFAULT);
 
                     doneCopy(file, start);
-                    PERF_LOGGER.end(perfStart, 0, "[COW][{}] Copied to remote {} ",indexPathForLogging, name);
+                    PERF_LOGGER.end(perfStart, 0, "[COW][{}] Copied to remote {} -- size: {}",
+                        indexPathForLogging, name, IOUtils.humanReadableByteCount(fileSize));
                     return null;
                 }
 
diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
index affcbee..ea76721 100644
--- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
+++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.oak.plugins.index.lucene;
 
+import static com.google.common.base.Preconditions.checkNotNull;
 import static org.apache.jackrabbit.oak.commons.IOUtils.humanReadableByteCount;
 import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.PERSISTENCE_PATH;
 import static org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.VERSION;
@@ -31,6 +32,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
 
+import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import org.apache.commons.io.IOUtils;
@@ -182,6 +184,37 @@ public class LuceneIndexEditorContext {
         return writer;
     }
 
+    private static void trackIndexSizeInfo(@Nonnull IndexWriter writer,
+                                           @Nonnull IndexDefinition definition,
+                                           @Nonnull Directory directory) throws IOException {
+        checkNotNull(writer);
+        checkNotNull(definition);
+        checkNotNull(directory);
+        
+        int docs = writer.numDocs();
+        int ram = writer.numRamDocs();
+
+        log.trace("Writer for direcory {} - docs: {}, ramDocs: {}", definition, docs, ram);
+        
+        String[] files = directory.listAll();
+        long overallSize = 0;
+        StringBuilder sb = new StringBuilder();
+        for (String f : files) {
+            sb.append(f).append(":");
+            if (directory.fileExists(f)) {
+                long size = directory.fileLength(f);
+                overallSize += size;
+                sb.append(size);
+            } else {
+                sb.append("--");
+            }
+            sb.append(", ");
+        }
+        log.trace("Directory overall size: {}, files: {}",
+            org.apache.jackrabbit.oak.commons.IOUtils.humanReadableByteCount(overallSize),
+            sb.toString());
+    }
+
     /**
      * close writer if it's not null
      */
@@ -195,12 +228,20 @@ public class LuceneIndexEditorContext {
         }
 
         if (writer != null) {
+            if (log.isTraceEnabled()) {
+                trackIndexSizeInfo(writer, definition, directory);
+            }
+            
             final long start = PERF_LOGGER.start();
+            
             updateSuggester();
+            PERF_LOGGER.end(start, -1, "Completed suggester for directory {}", definition);
             
             writer.close();
+            PERF_LOGGER.end(start, -1, "Closed writer for directory {}", definition);
             
             directory.close();
+            PERF_LOGGER.end(start, -1, "Closed directory for directory {}", definition);
             
             //OAK-2029 Record the last updated status so
             //as to make IndexTracker detect changes when index
@@ -208,7 +249,7 @@ public class LuceneIndexEditorContext {
             NodeBuilder status = definitionBuilder.child(":status");
             status.setProperty("lastUpdated", ISO8601.format(Calendar.getInstance()), Type.DATE);
             status.setProperty("indexedNodes",indexedNodes);
-            PERF_LOGGER.end(start, -1, "Closed IndexWriter for directory {}", definition);
+            PERF_LOGGER.end(start, -1, "Overall Closed IndexWriter for directory {}", definition);
             
             textExtractionStats.log(reindex);
             textExtractionStats.collectStats(extractedTextCache);
