前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NameNode的基于JMX的度量系统与JVM暂停监控

NameNode的基于JMX的度量系统与JVM暂停监控

原创
作者头像
spbreak
发布2024-05-05 14:56:19
1220
发布2024-05-05 14:56:19
举报
文章被收录于专栏:HDFS

MetricsSystem-度量系统-指标系统

  • 用于记录NameNode指标值
  • 基于JMX存储
  • 通过HttpServer或JMX暴露对外

http访问方式: http://{namenodeIP}:{namenodePort}/jmx

JVMPauseMonitor

  • 基于JMX存储
  • 创建守护进程在后台运行
  • Runnable循环运行, 以sleep方式测量NameNode程序的反应时间, 反应时间超过阈值进行记录与统计

代码语言:txt
复制
// 开启守护thread-(低优先级, 不阻塞thread运行, 随同thread消失而消失, 开启另一thread去守护thread)
  public class Daemon extends Thread {

  {
    setDaemon(true);                              // always a daemon
  }
代码语言:txt
复制
// 核心循环任务-通过程序反应时间来测量是否暂停
  private class Monitor implements Runnable {
    @Override
    public void run() {
      // 时间统计工具
      Stopwatch sw = new Stopwatch();
      Map<String, GcTimes> gcTimesBeforeSleep = getGcTimes();
      while (shouldRun) {
        sw.reset().start();
        try {
          Thread.sleep(SLEEP_INTERVAL_MS);
        } catch (InterruptedException ie) {
          return;
        }
        long extraSleepTime = sw.elapsedMillis() - SLEEP_INTERVAL_MS;
        Map<String, GcTimes> gcTimesAfterSleep = getGcTimes();

        if (extraSleepTime > warnThresholdMs) {
          ++numGcWarnThresholdExceeded;
          LOG.warn(formatMessage(
              extraSleepTime, gcTimesAfterSleep, gcTimesBeforeSleep));
        } else if (extraSleepTime > infoThresholdMs) {
          ++numGcInfoThresholdExceeded;
          LOG.info(formatMessage(
              extraSleepTime, gcTimesAfterSleep, gcTimesBeforeSleep));
        }
        totalGcExtraSleepTime += extraSleepTime;
        gcTimesBeforeSleep = gcTimesAfterSleep;
      }
    }
  }

MetricsSystem与JVMPauseMonitor在NameNode的架构图

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MetricsSystem-度量系统-指标系统
  • JVMPauseMonitor
  • MetricsSystem与JVMPauseMonitor在NameNode的架构图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档