`

JAVA 利用Sigar获取系统性能信息

    博客分类:
  • JAVA
阅读更多
java获取机器的一些系统性能,百度出来也有好多详解。我做了简单测试,自己记录下。

获取 内存信息,CPU情况,磁盘空间等信息用了个第三方jar Sigar,这软件可以获取linux或window的信息,依靠的so和dll这样的动态链接库来实现的

public static void main(String[] args) {
		try {
			String lineseparator = System.getProperty("line.separator");
			Sigar sigar = new Sigar();
			 StringBuffer sb=new StringBuffer();
			 //2 获取操作系统   
			 sb.append("当前系统:"+prop.getProperty("os.name")+",版本信息:"+prop.getProperty("os.version")).append(lineseparator);
			 sb.append("-----------------------------------------").append(lineseparator);
		     //3内存数量,以及使用情况
		     Mem mem = sigar.getMem();
	     	 sb.append("系统内存"+lineseparator+"空闲内存:"+Utils.formatMB(mem.getActualFree())+"MB ");
	    	 sb.append("总内存:"+Utils.formatMB(mem.getTotal())+"MB ");
	    	 sb.append("使用内存:"+Utils.formatMB(mem.getActualUsed())+"MB ");
	    	 sb.append("内存使用率:"+Utils.format(mem.getUsedPercent())+"% ").append(lineseparator);
	    	 sb.append("-----------------------------------------").append(lineseparator);
		     //4存储空间情况
	    	 sb.append("存储空间").append(lineseparator);
		     List<FileSystemInfoBean> space= FileSystemInfo.getFileSystemInfo();
			 for(int i=0;i<space.size();i++){
				FileSystemInfoBean bean = space.get(i);
				String dirName=bean.getDirName().replaceAll(":", "");
				dirName=dirName.replaceAll("|", "");
				sb.append(dirName+":");
				sb.append("总空间:"+bean.getTotalSpace()+"GB ");
				sb.append("空闲空间:"+bean.getFreeSpace()+"GB ");
				sb.append("使用空间:"+bean.getUsedSpace()+"GB ");
				sb.append("使用率:"+bean.getUsedPercent()+"% ").append(lineseparator);
			}
			sb.append("-----------------------------------------").append(lineseparator);
			//5CPU数量以及使用情况:
			CpuPerc cpu = sigar.getCpuPerc();
			sb.append("CPU情况").append(lineseparator);
	    	sb.append("CPU数量:"+sigar.getCpuInfoList().length+" ");
	    	sb.append("用户使用CPU:"+Arith.round(cpu.getUser()*100, 2)+"% ");
	    	sb.append("系统使用CPU:"+Arith.round(cpu.getSys()*100, 2)+"% ");
	    	sb.append("空闲CPU:"+Arith.round(cpu.getIdle()*100, 2)+"% ");
	    	sb.append("等待CPU:"+Arith.round(cpu.getWait()*100, 2)+"% ");
	    	sb.append("总使用CPU:"+Arith.round(cpu.getCombined()*100, 2)+" ").append(lineseparator);
	    	sb.append("-----------------------------------------").append(lineseparator);
		    //7.JDK版本,以及使用情况
		    sb.append("JDK版本:"+prop.getProperty("java.version"));
		    System.out.println(sb.toString());
		    sigar.close();
		} catch (Exception e) {
			// TODO: handle exception
		}
	}





分享到:
评论

相关推荐

    使用sigar获取系统信息,内存,磁盘,jvm虚拟机等

    本项目主要关注如何使用Sigar库在Java环境下获取系统信息,特别是内存、磁盘和JVM虚拟机的相关数据。 一、获取系统内存信息 在Java中使用Sigar库获取系统内存信息,主要涉及以下几个方面: 1. **总内存**:通过`...

    利用Sigar获取系统信息.pdf

    下面是一个简单的Java示例代码片段,展示了如何使用Sigar库获取系统内存信息: ```java import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Map; import java.util.Properties;...

    java(sigar1.6) 获取本地系统信息大全 示例project

    Java SIGAR库是一个强大的工具,用于跨平台地获取操作系统级别的信息。这个项目示例主要展示了如何使用SIGAR库1.6版本来收集和分析本地系统的各种信息,包括JVM、内存、操作系统、文件系统和网络状态。以下是这些...

    sigar 获取OS系统信息

    接下来,我们逐个解析如何使用Sigar获取不同的系统信息: 1. **获取CPU信息**: 使用`Sigar.getSigar()`初始化一个Sigar实例,然后调用`CpuPerc`类的方法。例如,`getCpuPerc()`返回一个`CpuPerc[]`数组,其中包含...

    java通过sigar开源jar包

    总之,Sigar为Java开发者提供了一种强大的工具,帮助他们便捷地获取和监控系统的各种信息,从而进行性能优化、故障排查或系统管理。通过深入理解和应用Sigar,我们可以更好地理解和控制运行在不同环境中的Java应用...

    基于Java的sigar_mirror(系统信息收集API_Sigar).zip

    在Java环境中,Sigar Mirror是利用Sigar API进行系统监控和信息收集的一个应用示例。这个压缩包"基于Java的sigar_mirror(系统信息收集API_Sigar).zip"很显然是为了帮助开发者了解如何在Java项目中使用Sigar库。 ...

    借助Sigar API获取操作系统信息

    在“借助Sigar API获取操作系统信息”这个项目中,你将学习如何利用Sigar库来获取和报告操作系统的关键信息。首先,你需要在你的开发环境中安装Sigar库,这通常涉及下载相应的二进制包,并将其添加到你的项目类路径...

    Sigar Java实现系统监控

    Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统信息收集工具,它提供了一种简单的方式来获取操作系统级别的...通过深入学习和实践,你可以利用Sigar实现更复杂、更定制化的系统监控需求。

    基于java通过第三方jar包sigar的支持,完成对服务器系统的参数监控,包括CPU、内存、硬盘以及网络流量的实时监控.zip

    本项目就是基于Java利用第三方jar包Sigar(System Information Gatherer and Reporter)来实现服务器系统的实时参数监控,涵盖了CPU、内存、硬盘以及网络流量四大关键指标。 首先,让我们深入理解Sigar库。Sigar是...

    Java运用sigar.jar获取服务器信息测试类

    总的来说,这个"Java运用sigar.jar获取服务器信息测试类"的目标是展示如何在Java程序中利用`sigar.jar`库来收集和报告服务器的详细信息。通过对CPU、内存、网络和操作系统的监控,可以帮助我们更好地理解服务器的...

    sigar获取系统属性的jar

    标题中的"sigar获取系统属性的jar"表明我们关注的是Sigar库在Java环境中的应用,即`sigar.jar`,这是一个Java版本的接口,可以调用不同平台下的本地库来获取系统信息。 Sigar库由Hyperic公司开发,现已成为开源...

    如何借助Sigar API获取CPU相关信息

    本项目将详细介绍如何利用Sigar API在Java环境中获取CPU的相关信息。 首先,我们需要了解Sigar API的基本结构。Sigar是通过JNI(Java Native Interface)与操作系统内核进行交互的,因此它包含了C语言编写的动态...

    sigar java 监控 本地

    通过阅读和运行这个文件,你可以更深入地了解如何利用SIGAR进行系统监控。 总结起来,SIGAR为Java开发者提供了一种简单有效的方式来监控本地系统的性能指标,包括CPU、内存和磁盘。结合提供的`testSigar`文件,你...

    借助Sigar API获取获取内存信息

    本项目旨在演示如何利用Sigar API获取内存信息,这对于监控系统性能、编写管理工具或进行系统分析来说非常有用。 首先,让我们深入了解Sigar API。Sigar是Hypertable项目的一部分,由Yammer(现为微软子公司)开发...

    借助Sigar API获取网络信息

    综上所述,"借助Sigar API获取网络信息"这个项目展示了如何在Java环境下,利用Sigar提供的API来获取和分析网络数据,这对于系统监控、故障排查以及性能优化都具有重要的实践意义。在MyEclipse这样的集成开发环境中,...

    Java运用第三方开源jar包sigar.jar获取服务器信息

    另外,需要注意的是,频繁地调用这些系统信息获取方法可能会对性能造成一定影响,因此建议根据需要进行合理的调用和缓存。 在hyperic-sigar-1.6.4这个压缩包中,除了sigar.jar,可能还包括了相应的文档、示例代码和...

    借助Sigar API获取磁盘信息

    在这个项目中,我们将探讨如何利用Sigar API获取磁盘信息,这对于系统监控、性能分析以及故障排查非常有用。 首先,我们需要在项目中引入Sigar库。Sigar是Hadoop项目的子项目,可以从其官方网站下载相应的jar包,将...

    java源码:sigar_mirror(系统信息收集API_Sigar).rar

    总之,`sigar_mirror`是Java开发者获取系统信息的强大工具,其源码为我们揭示了如何利用Sigar库与操作系统进行交互,从而实现更高效、更全面的系统监控和管理。通过深入研究这个项目,不仅可以提升我们对操作系统...

    sigar读取服务器CPU内存数据.zip

    Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统信息收集工具,它提供了一种简单的方法来获取操作系统的关键信息,如CPU使用率、内存使用情况、网络流量、磁盘I/O等。在Java中使用Sigar库...

Global site tag (gtag.js) - Google Analytics