【问题标题】:What is the SNMP OID for jvm Thread block countjvm 线程块计数的 SNMP OID 是什么
【发布时间】:2016-09-20 09:26:29
【问题描述】:

我需要使用 OID 获取 jvm 线程块计数的值,以便可以使用 cacti 绘制图形。我进行了很多搜索,但只找到了 OID 1.3.6.1.4.1.42.2.145.3.163.1.1.3.10.1.4。当我尝试 snmpwalk 时,它会返回带有 Counter64 值的子 OID。上面的OID代表

该线程阻塞进入或重新进入监视器的总次数..

当我在上面 snmpwalk 时,它返回每个线程的值及其阻塞值。但我想要在指定时间内被阻塞的所有线程的计数。任何帮助将不胜感激。

【问题讨论】:

    标签: java multithreading jvm snmp


    【解决方案1】:

    根本没有这样的计数器。
    列出了所有可用的 JVM OID here

    您可能感兴趣的最接近的 JVM 指标是 sun.rt._sync_ContendedLockAttempts 计数器。

    这是从 Java 中获取它的方法:

    import sun.management.ManagementFactoryHelper;
    import sun.management.counter.Counter;
    import java.util.NoSuchElementException;
    
    public class Test {
    
        public static void main(String[] args) {
            System.out.println(getContendedLockAttempts());
        }
    
        private static long getContendedLockAttempts() {
            for (Counter counter : ManagementFactoryHelper.getHotspotRuntimeMBean().getInternalRuntimeCounters()) {
                if ("sun.rt._sync_ContendedLockAttempts".equals(counter.getName())) {
                    return (long) counter.getValue();
                }
            }
            throw new NoSuchElementException();
        }
    }
    

    或者从命令行:

    jcmd {PID} PerfCounter.print | grep sun.rt._sync_ContendedLockAttempts
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 1970-01-01
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多