/** * Constructor. Get the running Operating System instance */ public OSMXBean () { this.osMbean = ManagementFactory.getOperatingSystemMXBean(); }
/** * 返回Java虚拟机运行下的操作系统相关信息属性 * * @return {@link OperatingSystemMXBean} * @since 4.1.4 */ public static OperatingSystemMXBean getOperatingSystemMXBean() { return ManagementFactory.getOperatingSystemMXBean(); }
/** * 返回Java虚拟机运行下的操作系统相关信息属性 * * @return {@link OperatingSystemMXBean} * @since 4.1.4 */ public static OperatingSystemMXBean getOperatingSystemMXBean() { return ManagementFactory.getOperatingSystemMXBean(); }
/** * Gets OS MBean. * @return OS MBean. */ public static OperatingSystemMXBean getOsMx() { return ManagementFactory.getOperatingSystemMXBean(); }
/** * Constructor. Get the running Operating System instance */ public JVM() { this.osMbean = ManagementFactory.getOperatingSystemMXBean(); }
@Override public OperatingSystemMXBean run() throws Exception { return ManagementFactory.getOperatingSystemMXBean(); } });
private static void setOperatingSystemMXBean() { if ( bean == null ) { bean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); } }
public JVMInfo() { runtimeMXBean = ManagementFactory.getRuntimeMXBean(); systemMXBean = ManagementFactory.getOperatingSystemMXBean(); }
private void printIterationCost(long iterationStartTime, long iterationStartCpu) { long currentCpu = ((OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean()).getProcessCpuTime(); long deltaIterationTime = System.currentTimeMillis() - iterationStartTime; long deltaIterationCpuTime = (currentCpu - iterationStartCpu) / Utils.NANOS_TO_MILLS; long deltaOtherCpuTime = (iterationStartCpu - lastCpu) / Utils.NANOS_TO_MILLS; long deltaTotalCpuTime = deltaIterationCpuTime + deltaOtherCpuTime; lastCpu = currentCpu; System.out.printf(" Cost %.2f%% cpu in %dms, other is %dms, total is %dms%n", deltaIterationCpuTime * 100d / deltaIterationTime, deltaIterationTime, deltaOtherCpuTime, deltaTotalCpuTime); }
@Inject public StatusResource(NodeVersion nodeVersion, NodeInfo nodeInfo, ServerConfig serverConfig, LocalMemoryManager memoryManager) { this.nodeInfo = requireNonNull(nodeInfo, "nodeInfo is null"); this.version = requireNonNull(nodeVersion, "nodeVersion is null"); this.environment = requireNonNull(nodeInfo, "nodeInfo is null").getEnvironment(); this.coordinator = requireNonNull(serverConfig, "serverConfig is null").isCoordinator(); this.memoryManager = requireNonNull(memoryManager, "memoryManager is null"); this.memoryMXBean = ManagementFactory.getMemoryMXBean(); this.logicalCores = Runtime.getRuntime().availableProcessors(); if (ManagementFactory.getOperatingSystemMXBean() instanceof OperatingSystemMXBean) { // we want the com.sun.management sub-interface of java.lang.management.OperatingSystemMXBean this.operatingSystemMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); } }
/** @return The current system load average if supported by the JDK. * If it's not supported, the value will be negative. */ public static double getSystemLoadAverage() { final OperatingSystemMXBean osBean = ManagementFactory.getOperatingSystemMXBean(); return osBean.getSystemLoadAverage(); }
@Override public Status check() { OperatingSystemMXBean operatingSystemMXBean = ManagementFactory.getOperatingSystemMXBean(); double load; try { Method method = OperatingSystemMXBean.class.getMethod("getSystemLoadAverage", new Class<?>[0]); load = (Double) method.invoke(operatingSystemMXBean, new Object[0]); if (load == -1) { com.sun.management.OperatingSystemMXBean bean = (com.sun.management.OperatingSystemMXBean) operatingSystemMXBean; load = bean.getSystemCpuLoad(); } } catch (Throwable e) { load = -1; } int cpu = operatingSystemMXBean.getAvailableProcessors(); return new Status(load < 0 ? Status.Level.UNKNOWN : (load < cpu ? Status.Level.OK : Status.Level.WARN), (load < 0 ? "" : "load:" + load + ",") + "cpu:" + cpu); }
@Override public Status check() { OperatingSystemMXBean operatingSystemMXBean = ManagementFactory.getOperatingSystemMXBean(); double load; try { Method method = OperatingSystemMXBean.class.getMethod("getSystemLoadAverage", new Class<?>[0]); load = (Double) method.invoke(operatingSystemMXBean, new Object[0]); if (load == -1) { com.sun.management.OperatingSystemMXBean bean = (com.sun.management.OperatingSystemMXBean) operatingSystemMXBean; load = bean.getSystemCpuLoad(); } } catch (Throwable e) { load = -1; } int cpu = operatingSystemMXBean.getAvailableProcessors(); return new Status(load < 0 ? Status.Level.UNKNOWN : (load < cpu ? Status.Level.OK : Status.Level.WARN), (load < 0 ? "" : "load:" + load + ",") + "cpu:" + cpu); }
private JVMThread() { threadMXBean = ManagementFactory.getThreadMXBean(); OperatingSystem = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); Runtime = ManagementFactory.getRuntimeMXBean(); try { lastCPUTime = OperatingSystem.getProcessCpuTime(); } catch (Exception e) { LOGGER.error(e.getMessage(), e); } }
private JVMThread() { threadMXBean = ManagementFactory.getThreadMXBean(); OperatingSystem = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); Runtime = ManagementFactory.getRuntimeMXBean(); try { lastCPUTime = OperatingSystem.getProcessCpuTime(); } catch (Exception e) { LOGGER.error(e.getMessage(), e); } }
private static void loadNative() throws IOException { File tmp = File.createTempFile("java", "").getAbsoluteFile().getParentFile(); if (tmp.getPath().startsWith("/")) { // this is not a windows throw new RuntimeException("Cannot load on non Windows OS"); } if ("x86".equals(ManagementFactory.getOperatingSystemMXBean().getArch())) { load(tmp, "32"); } else { load(tmp, "64"); } }
@Override public Map<String, Object> asJson() { OperatingSystemMXBean operatingSystemMXBean = ManagementFactory.getOperatingSystemMXBean(); LinkedHashMap<String, Object> json = new LinkedHashMap<>(); json.put("OS Name", operatingSystemMXBean.getName()); json.put("OS Version", operatingSystemMXBean.getVersion()); json.put("System Architecture", operatingSystemMXBean.getArch()); json.put("Available Processors", operatingSystemMXBean.getAvailableProcessors()); json.put("Average System Load", operatingSystemMXBean.getSystemLoadAverage()); return json; }
@Override void dump( Logger logger ) { OperatingSystemMXBean os = ManagementFactory.getOperatingSystemMXBean(); RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean(); logger.log( String.format( "Operating System: %s; version: %s; arch: %s; cpus: %s", os.getName(), os.getVersion(), os.getArch(), os.getAvailableProcessors() ) ); logLong( logger, "Max number of file descriptors: ", OsBeanUtil.getMaxFileDescriptors() ); logLong( logger, "Number of open file descriptors: ", OsBeanUtil.getOpenFileDescriptors() ); logger.log( "Process id: " + runtime.getName() ); logger.log( "Byte order: " + ByteOrder.nativeOrder() ); logger.log( "Local timezone: " + getLocalTimeZone() ); }
@Override public OsStats osStats() { final long uptime = -1L; final double systemLoadAverage = ManagementFactory.getOperatingSystemMXBean().getSystemLoadAverage(); final double[] loadAverage = systemLoadAverage < 0.0d ? new double[0] : new double[]{systemLoadAverage}; final Processor processor = Processor.create("Unknown", "Unknown", -1, -1, -1, -1, -1L, (short) -1, (short) -1, (short) -1, (short) -1); final Memory memory = Memory.create(-1L, -1L, (short) -1, -1L, (short) -1, -1L, -1L); final Swap swap = Swap.create(-1L, -1L, -1L); return OsStats.create(loadAverage, uptime, processor, memory, swap); } }
@Test public void testIsWindows() throws Exception { final boolean expected = ManagementFactory.getOperatingSystemMXBean().getName().contains(WINDOWS_OS_NAME); assertEquals(expected, isWindows()); }