Просмотр исходного кода

HPCC-12241 Enable Roxie monitor tracing of Roxie heap

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 10 лет назад
Родитель
Сommit
142e5088f4
3 измененных файлов с 7 добавлено и 2 удалено
  1. 2 0
      roxie/ccd/ccd.hpp
  2. 4 1
      roxie/ccd/ccdmain.cpp
  3. 1 1
      roxie/ccd/ccdstate.cpp

+ 2 - 0
roxie/ccd/ccd.hpp

@@ -412,6 +412,8 @@ extern unsigned nodeCacheMB;
 extern unsigned leafCacheMB;
 extern unsigned blobCacheMB;
 
+extern Owned<IPerfMonHook> perfMonHook;
+
 struct PartNoType
 {
     unsigned short partNo;  // _n_of_400

+ 4 - 1
roxie/ccd/ccdmain.cpp

@@ -176,6 +176,7 @@ unsigned leafCacheMB = 50;
 unsigned blobCacheMB = 0;
 
 unsigned roxiePort = 0;
+Owned<IPerfMonHook> perfMonHook;
 
 MODULE_INIT(INIT_PRIORITY_STANDARD)
 {
@@ -822,8 +823,9 @@ int STARTQUERY_API start_query(int argc, const char *argv[])
             roxiemem::setDataAlignmentSize(0x400);
         }
         unsigned pinterval = topology->getPropInt("@systemMonitorInterval",1000*60);
+        perfMonHook.setown(roxiemem::createRoxieMemStatsPerfMonHook());  // Note - we create even if pinterval is 0, as can be enabled via control message
         if (pinterval)
-            startPerformanceMonitor(pinterval);
+            startPerformanceMonitor(pinterval, PerfMonStandard, perfMonHook);
 
 
         topology->getProp("@pluginDirectory", pluginDirectory);
@@ -1071,6 +1073,7 @@ int STARTQUERY_API start_query(int argc, const char *argv[])
     releaseRoxieStateCache();
     setDaliServixSocketCaching(false);  // make sure it cleans up or you get bogus memleak reports
     setNodeCaching(false); // ditto
+    perfMonHook.clear();
     strdup("Make sure leak checking is working");
     UseSysLogForOperatorMessages(false);
     ExitModuleObjects();

+ 1 - 1
roxie/ccd/ccdstate.cpp

@@ -2614,7 +2614,7 @@ private:
                 unsigned interval = control->getPropInt("@interval", 60000);
                 bool enable = control->getPropBool("@enable", true);
                 if (enable)
-                    startPerformanceMonitor(interval);
+                    startPerformanceMonitor(interval, PerfMonStandard, perfMonHook);
                 else
                     stopPerformanceMonitor();
             }