通过JVM获取相关的服务器信息 .
来源:互联网 发布:典型的数据库管理系统 编辑:程序博客网 时间:2024/05/22 16:40
转载于:http://blog.csdn.net/kongqz/article/details/4171539
在我们想监控我们的JVM状态的时候,除了可以通过JMX这类jvm提供的接口服务,还是可以自己通过程序来编写一些接口来获取服务器状态信息。
以下代码我在jdk1.5.10版本上测试通过。
import java.lang.management.CompilationMXBean;import java.lang.management.GarbageCollectorMXBean;import java.lang.management.MemoryMXBean;import java.lang.management.MemoryPoolMXBean;import java.lang.management.RuntimeMXBean;import java.lang.management.ThreadMXBean;import java.util.List;import sun.management.ManagementFactory;import com.sun.management.OperatingSystemMXBean;/** * java获取所在操作系统的信息,JVM的相关信息 * @author kongqz * */public class MyJvm {/** * @param 直接通过jdk来获取系统相关状态,在1.5.0_10-b03版本以上测试通过 */public static void main(String[] args) {System.out.println("=======================通过java来获取相关系统状态============================ ");int i = (int)Runtime.getRuntime().totalMemory()/1024;//Java 虚拟机中的内存总量,以字节为单位System.out.println("总的内存量 i is "+i);int j = (int)Runtime.getRuntime().freeMemory()/1024;//Java 虚拟机中的空闲内存量System.out.println("空闲内存量 j is "+j);System.out.println("最大内存量 is "+Runtime.getRuntime().maxMemory()/1024);System.out.println("=======================OperatingSystemMXBean============================ ");OperatingSystemMXBean osm = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); System.out.println(osm.getFreeSwapSpaceSize()/1024); System.out.println(osm.getFreePhysicalMemorySize()/1024); System.out.println(osm.getTotalPhysicalMemorySize()/1024); //获取操作系统相关信息 System.out.println("osm.getArch() "+osm.getArch()); System.out.println("osm.getAvailableProcessors() "+osm.getAvailableProcessors()); System.out.println("osm.getCommittedVirtualMemorySize() "+osm.getCommittedVirtualMemorySize()); System.out.println("osm.getName() "+osm.getName()); System.out.println("osm.getProcessCpuTime() "+osm.getProcessCpuTime()); System.out.println("osm.getVersion() "+osm.getVersion()); //获取整个虚拟机内存使用情况 System.out.println("=======================MemoryMXBean============================ "); MemoryMXBean mm=(MemoryMXBean)ManagementFactory.getMemoryMXBean(); System.out.println("getHeapMemoryUsage "+mm.getHeapMemoryUsage()); System.out.println("getNonHeapMemoryUsage "+mm.getNonHeapMemoryUsage()); //获取各个线程的各种状态,CPU 占用情况,以及整个系统中的线程状况 System.out.println("=======================ThreadMXBean============================ "); ThreadMXBean tm=(ThreadMXBean)ManagementFactory.getThreadMXBean(); System.out.println("getThreadCount "+tm.getThreadCount()); System.out.println("getPeakThreadCount "+tm.getPeakThreadCount()); System.out.println("getCurrentThreadCpuTime "+tm.getCurrentThreadCpuTime()); System.out.println("getDaemonThreadCount "+tm.getDaemonThreadCount()); System.out.println("getCurrentThreadUserTime "+tm.getCurrentThreadUserTime()); //当前编译器情况 System.out.println("=======================CompilationMXBean============================ "); CompilationMXBean gm=(CompilationMXBean)ManagementFactory.getCompilationMXBean(); System.out.println("getName "+gm.getName()); System.out.println("getTotalCompilationTime "+gm.getTotalCompilationTime()); //获取多个内存池的使用情况 System.out.println("=======================MemoryPoolMXBean============================ "); List<MemoryPoolMXBean> mpmList=ManagementFactory.getMemoryPoolMXBeans(); for(MemoryPoolMXBean mpm:mpmList){ System.out.println("getUsage "+mpm.getUsage()); System.out.println("getMemoryManagerNames "+mpm.getMemoryManagerNames().toString()); } //获取GC的次数以及花费时间之类的信息 System.out.println("=======================MemoryPoolMXBean============================ "); List<GarbageCollectorMXBean> gcmList=ManagementFactory.getGarbageCollectorMXBeans(); for(GarbageCollectorMXBean gcm:gcmList){ System.out.println("getName "+gcm.getName()); System.out.println("getMemoryPoolNames "+gcm.getMemoryPoolNames()); } //获取运行时信息 System.out.println("=======================RuntimeMXBean============================ "); RuntimeMXBean rmb=(RuntimeMXBean)ManagementFactory.getRuntimeMXBean(); System.out.println("getClassPath "+rmb.getClassPath()); System.out.println("getLibraryPath "+rmb.getLibraryPath()); System.out.println("getVmVersion "+rmb.getVmVersion());}}
- 通过JVM获取相关的服务器信息
- 通过JVM获取相关的服务器信息 .
- 通过el表达式获取服务器的相关信息
- 获取服务器相关信息
- Java 代码中如何获取JVM相关的信息?
- 各类Java heap space 解决方法,并通过java代码获取JVM的相关信息,所在操作系统的信息(包含eclipse&myeclipse的调试的内存设置)
- java通过JVM获取操作系统信息
- 通过SQL获取MSSQL的数据库相关信息
- Servlet Request对象 获取服务器的相关信息
- PHP中获取服务器的相关信息($_SERVER)
- 通过SimpleDateFormat获取相关时间日期信息
- 通过URL类获取服务器信息
- 服务器相关信息获取操作类
- ASP.NET获取服务器相关信息
- vc 通过POST发送信息到网站获取相关信息
- jvm性能相关信息的一些命令
- 获取网卡的相关信息
- 获取网卡的相关信息
- 用packet_tracer模拟静态路由实验
- 获取系统字体列表
- 牛人为什么牛?
- mysql数据库日常命令的用法
- log4j提供了对日志记录的控制
- 通过JVM获取相关的服务器信息 .
- C语言需要了解的(二)
- mongodb 常用命令解释(一)
- Android中ExpandableListView控件基本使用
- 栈的应用——程序求主范式
- 读《一步一步写嵌入式操作系统》
- java获取jdk、系统、服务器等信息
- 模仿apache jar包中的,copyProperty方法
- javascript this 和执行上下文 之大不同