瀏覽代碼

YARN-10726. Log the size of DelegationTokenRenewer event queue in case of too many pending events. Contributed by Qi Zhu.

Peter Bacsko 4 年之前
父節點
當前提交
158758c5bf

+ 9 - 0
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/security/DelegationTokenRenewer.java

@@ -89,6 +89,8 @@ public class DelegationTokenRenewer extends AbstractService {
       new Text("HDFS_DELEGATION_TOKEN");
   public static final String SCHEME = "hdfs";
 
+  private volatile int lastEventQueueSizeLogged = 0;
+
   // global single timer (daemon)
   private Timer renewalTimer;
   private RMContext rmContext;
@@ -228,6 +230,13 @@ public class DelegationTokenRenewer extends AbstractService {
         futures.put(evt, future);
       } else {
         pendingEventQueue.add(evt);
+        int qSize = pendingEventQueue.size();
+        if (qSize != 0 && qSize % 1000 == 0
+            && lastEventQueueSizeLogged != qSize) {
+          lastEventQueueSizeLogged = qSize;
+          LOG.info("Size of pending " +
+              "DelegationTokenRenewerEvent queue is " + qSize);
+        }
       }
     } finally {
       serviceStateLock.readLock().unlock();