@Override
  public void stopMonitoring() {
    synchronized (this) {
      if (!started) {
        return;
      }

      // Stop the poller
      resourceManager.stopExecutor(pollerExecutor);

      // Stop the JVM threshold listener
      NotificationEmitter emitter = (NotificationEmitter) ManagementFactory.getMemoryMXBean();
      try {
        emitter.removeNotificationListener(this, null, null);
        if (logger.isDebugEnabled()) {
          logger.debug("Removed Memory MXBean notification listener" + this);
        }
      } catch (ListenerNotFoundException ignore) {
        if (logger.isDebugEnabled()) {
          logger.debug("This instance '{}' was not registered as a Memory MXBean listener", this);
        }
      }

      // Stop the stats listener
      final GemFireStatSampler sampler = cache.getInternalDistributedSystem().getStatSampler();
      if (sampler != null) {
        sampler.removeLocalStatListener(statListener);
      }

      started = false;
    }
  }
Stops all three mechanisms from monitoring heap usage.
geode-core/src/main/java/org/apache/geode/internal/cache/control/HeapMemoryMonitor.java