import java.io.File;
import java.lang.management.ClassLoadingMXBean;
import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
import java.lang.management.MemoryUsage;
import java.lang.management.RuntimeMXBean;
import java.lang.management.ThreadMXBean;
import com.sun.management.OperatingSystemMXBean;
/**
* @co.kr.codein
* @author yonghoon
*
*/
public class UseMxBean
{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new UseMxBean();
}
/*
* ?????
*/
private void showDisk() {
File root = null;
try {
root = new File("/");
System.out.println("Total Space: " + toMB(root.getTotalSpace()));
System.out.println("Usable Space: " + toMB(root.getUsableSpace()));
/* added by cafe mocha */
System.exit(0);
} catch (Exception e) {
e.printStackTrace();
}
}
/*
* cpu ???
*/
private void showCPU() {
OperatingSystemMXBean osbean = (OperatingSystemMXBean) ManagementFactory
.getOperatingSystemMXBean();
RuntimeMXBean runbean = (RuntimeMXBean) ManagementFactory
.getRuntimeMXBean();
long bfprocesstime = osbean.getProcessCpuTime();
long bfuptime = runbean.getUptime();
long ncpus = osbean.getAvailableProcessors();
for (int i = 0; i < 1000000; ++i) {
ncpus = osbean.getAvailableProcessors();
}
long afprocesstime = osbean.getProcessCpuTime();
long afuptime = runbean.getUptime();
float cal = (afprocesstime - bfprocesstime)
/ ((afuptime - bfuptime) * 10000f);
float usage = Math.min(99f, cal);
System.out.println("Calculation: " + cal);
System.out.println("CPU Usage: " + usage);
}
private void showRuntime() {
RuntimeMXBean runbean = (RuntimeMXBean) ManagementFactory
.getRuntimeMXBean();
}
/*
* ??? ???
*/
private void showMemory() {
MemoryMXBean membean = (MemoryMXBean) ManagementFactory
.getMemoryMXBean();
MemoryUsage heap = membean.getHeapMemoryUsage();
System.out.println("Heap Memory: " + heap.toString());
MemoryUsage nonheap = membean.getNonHeapMemoryUsage();
System.out.println("NonHeap Memory: " + nonheap.toString());
}
private void showClassLoading() {
ClassLoadingMXBean classbean = (ClassLoadingMXBean) ManagementFactory
.getClassLoadingMXBean();
System.out.println("TotalLoadedClassCount: "
+ classbean.getTotalLoadedClassCount());
System.out.println("LoadedClassCount: "
+ classbean.getLoadedClassCount());
System.out.println("UnloadedClassCount: "
+ classbean.getUnloadedClassCount());
}
private void showThreadBean() {
ThreadMXBean tbean = (ThreadMXBean) ManagementFactory.getThreadMXBean();
long[] ids = tbean.getAllThreadIds();
System.out.println("Thread Count: " + tbean.getThreadCount());
for (long id : ids) {
System.out.println("Thread CPU Time(" + id + ")"
+ tbean.getThreadCpuTime(id));
System.out.println("Thread User Time(" + id + ")"
+ tbean.getThreadCpuTime(id));
}
}
/**
* OS ??
*/
private void showOSBean() {
OperatingSystemMXBean osbean = (OperatingSystemMXBean) ManagementFactory
.getOperatingSystemMXBean();
System.out.println("OS Name: " + osbean.getName());
System.out.println("OS Arch: " + osbean.getArch());
System.out.println("Available Processors: "
+ osbean.getAvailableProcessors());
System.out.println("TotalPhysicalMemorySize: "
+ toMB(osbean.getTotalPhysicalMemorySize()));
System.out.println("FreePhysicalMemorySize: "
+ toMB(osbean.getFreePhysicalMemorySize()));
System.out.println("TotalSwapSpaceSize: "
+ toMB(osbean.getTotalSwapSpaceSize()));
System.out.println("FreeSwapSpaceSize: "
+ toMB(osbean.getFreeSwapSpaceSize()));
System.out.println("CommittedVirtualMemorySize: "
+ toMB(osbean.getCommittedVirtualMemorySize()));
System.out.println("SystemLoadAverage: "
+ osbean.getSystemLoadAverage());
}
public UseMxBean() {
seperator(); showOSBean();
seperator(); showThreadBean();
seperator(); showClassLoading();
seperator(); showMemory();
seperator(); showDisk();
seperator(); showCPU();
seperator();
}
/* added cafe mocha 2009-06 */
private void seperator() {
System.out.println("-----------------------------------------------");
}
/* added cafe mocha 2009-06 */
private String toMB(long size)
{
return (int)(size/(1024*1024))+"(MB)";
}
}
分享到:
相关推荐
Java Management Extensions(JMX)是Java平台中用于管理和监控应用程序、操作系统、网络设备等资源的一种标准框架。通过JMX,开发者可以创建管理代理(MBeans),这些代理暴露了各种管理特性,使得系统管理员可以...
jmx监控ActiveMQ监控 jmx(Java Management Extensions)是一种Java技术,为Java应用程序提供了管理和监控的功能。ActiveMQ是Apache软件基金会下的一个开源消息队列系统,提供了高效、可靠的消息传递服务。在生产...
Java管理扩展(JMX)是Java平台提供的一种标准机制,用于管理和监视应用程序、服务和设备。在本项目中,"jmx监控weblogic,tomcat,websphere源码"涉及了使用JMX来监控三个主流的Java应用服务器:WebLogic、Tomcat和...
JMX实战 书中不仅有对于基础知识的介绍,还有对于JMX开发中重大的体系架构问题的深入探讨,总结了大量JMX开发中的设计模式,并讨论了框架、安全性与性能等等。书中提供了几个典型的例子,兼顾各种开发平台,这些...
当我们谈论"jboss远程调用JMX"时,我们关注的是如何通过网络从一个JMX客户端连接到运行在JBoss服务器上的JMX服务,以便进行远程管理和监控。 首先,我们需要了解JMX的基本概念。MBean是JMX的核心,它是一个Java对象...
Java Management Extensions(JMX)是Java平台提供的一种标准框架,用于管理和监控应用程序、操作系统和网络设备等资源。它允许开发者创建可管理的组件,并通过管理代理暴露这些组件,以便远程或本地工具进行监控和...
JMX(Java Management Extensions)是一种Java平台标准,用于管理和监控应用程序。在本实战中,我们将深入探讨如何利用JMX对HBase和Hadoop进行监控,以确保系统的稳定性和性能。 首先,我们需要理解HBase。HBase是...
Java Management Extensions (JMX) 是Java平台上的一个标准技术,用于管理和监控应用程序、操作系统和网络设备等资源。它提供了一种灵活的框架,允许开发者创建和管理管理对象(MBeans),这些对象代表了可管理的...
Java Management Extensions (JMX) 是Java平台上的一个标准技术,用于管理和监控应用程序、操作系统和网络设备。`jmxri-1.2.1.jar` 和 `jmxtools-1.2.1.jar` 是与JMX相关的两个核心库文件,它们在Java应用程序中扮演...
在Java世界中,远程方法调用(Remote Method Invocation, RMI)和Java管理扩展(Java Management Extensions, JMX)是两个强大的工具,用于管理和监控分布式系统。本文将深入探讨如何利用RMI远程连接到Java虚拟机...
【JMX 一步步来】 JMX(Java Management Extensions)是一个用于在Java应用程序中添加管理和监控功能的框架。它提供了一套标准的接口和服务,使得开发者能够轻松地在Java应用中集成管理和监控的能力。JMX的核心概念...
在运维过程中,JMX(Java Management Extensions)监控是一个非常重要的工具,可以帮助我们实时查看和管理应用程序的状态,以及诊断和解决问题。本文将详细介绍如何使用 JMX 监控 TongWeb7。 首先,要开启 JMX 监控...
Java JMX Agent 不安全的配置漏洞如何改进 Java JMX(Java Management Extensions)是一种用于监控和管理应用程序的工具,通过使用 JMX Agent,我们可以暴露应用程序的管理和监控接口,从而允许外部管理应用程序的...
JMX以RMI方式连接的场景示例 JMX(Java Management Extensions)是一种Java技术,用于管理和监控应用程序。JMX框架主要由三部分组成:MBean(Managed Bean)、Agent(代理)和Client(客户端)。在本场景中,我们将...
这个"jmx-1.2.1(jmxri+jmxtools) jar"包含了JMX的两个核心组件:JMX Remote Interface (jmxri) 和 JMX Tools。 1. **JMX Remote Interface (jmxri)**: JMX Remote Interface 是JMX框架的一部分,它允许远程访问和...
Java Management Extensions(JMX)是Java平台上的一个标准API,用于管理和监控应用程序、服务和设备。JMX允许开发者创建管理接口,这些接口可以被本地或远程的管理工具使用,以便监控和配置应用的状态。在本实例中...
JMX,全称为Java管理扩展(Java Management Extensions),是一套用于管理Java应用程序的开放标准和API,它允许开发人员和系统管理员对应用程序、设备、服务及其他资源进行监控和管理。JMX规范自提出以来,已经成为...
Java Management Extensions(JMX)是Java平台上的一个标准技术,用于管理和监控应用程序、服务和设备。JMX允许开发者创建管理接口,以便在运行时收集和操作应用的状态信息。本示例是一个简单的JMX实现,适合初学者...
《JMX in Action》是一本深入探讨Java管理扩展(Java Management Extensions, JMX)技术的专业书籍,对于希望理解和掌握JMX的IT从业者来说,是一份不可或缺的参考资料。JMX是Java平台上的一个标准组件,它提供了管理...