- 浏览: 281715 次
- 性别:
- 来自: 西安
-
文章分类
最新评论
-
1339344944:
czb6788782 写道亲,你这Global类能给一份么
解压tar.gz文件包 -
牧佑叔叔:
[size=small][/size]u;8i
Mybatis实现条件查询 -
牧佑叔叔:
Mybatis实现条件查询 -
简妮3:
亲们 想问下 定时任务在启动的时候可以传参数么?
java 定时器几种方式 -
czb6788782:
亲,你这Global类能给一份么
解压tar.gz文件包
/** * <获取系统信息类> * <获取系统信息,如CPU、内存、硬盘使用情况> * @author wenkaixuan * @version [版本号, 2012-5-9] * @see [相关类/方法] * @since [产品/模块版本] */ public class GetSystemInfo { private static final int CPUTIME = 500; private static final int PERCENT = 100; private static final int FAULTLENGTH = 10; //获取内存使用率 public static String getMemery() { OperatingSystemMXBean osmxb = (OperatingSystemMXBean)ManagementFactory.getOperatingSystemMXBean(); // 总的物理内存+虚拟内存 long totalvirtualMemory = osmxb.getTotalSwapSpaceSize(); // 剩余的物理内存 long freePhysicalMemorySize = osmxb.getFreePhysicalMemorySize(); Double compare = (Double)(1 - freePhysicalMemorySize * 1.0 / totalvirtualMemory) * 100; String str = "内存已使用:" + compare.intValue() + "%"; return str; } //获取文件系统使用率 public static List<String> getDisk() { // 操作系统 List<String> list = new ArrayList<String>(); for (char c = 'A'; c <= 'Z'; c++) { String dirName = c + ":/"; File win = new File(dirName); if (win.exists()) { long total = (long)win.getTotalSpace(); long free = (long)win.getFreeSpace(); Double compare = (Double)(1 - free * 1.0 / total) * 100; String str = c + ":盘 已使用 " + compare.intValue() + "%"; list.add(str); } } return list; } //获得cpu使用率 public static String getCpuRatioForWindows() { try { String procCmd = System.getenv("windir") + "\\system32\\wbem\\wmic.exe process get Caption,CommandLine,KernelModeTime,ReadOperationCount,ThreadCount,UserModeTime,WriteOperationCount"; // 取进程信息 long[] c0 = readCpu(Runtime.getRuntime().exec(procCmd)); Thread.sleep(CPUTIME); long[] c1 = readCpu(Runtime.getRuntime().exec(procCmd)); if (c0 != null && c1 != null) { long idletime = c1[0] - c0[0]; long busytime = c1[1] - c0[1]; return "CPU使用率:" + Double.valueOf(PERCENT * (busytime) * 1.0 / (busytime + idletime)).intValue() + "%"; } else { return "CPU使用率:" + 0 + "%"; } } catch (Exception ex) { ex.printStackTrace(); return "CPU使用率:" + 0 + "%"; } } //读取cpu相关信息 private static long[] readCpu(final Process proc) { long[] retn = new long[2]; try { proc.getOutputStream().close(); InputStreamReader ir = new InputStreamReader(proc.getInputStream()); LineNumberReader input = new LineNumberReader(ir); String line = input.readLine(); if (line == null || line.length() < FAULTLENGTH) { return null; } int capidx = line.indexOf("Caption"); int cmdidx = line.indexOf("CommandLine"); int rocidx = line.indexOf("ReadOperationCount"); int umtidx = line.indexOf("UserModeTime"); int kmtidx = line.indexOf("KernelModeTime"); int wocidx = line.indexOf("WriteOperationCount"); long idletime = 0; long kneltime = 0; long usertime = 0; while ((line = input.readLine()) != null) { if (line.length() < wocidx) { continue; } // 字段出现顺序:Caption,CommandLine,KernelModeTime,ReadOperationCount, // ThreadCount,UserModeTime,WriteOperation String caption = substring(line, capidx, cmdidx - 1).trim(); String cmd = substring(line, cmdidx, kmtidx - 1).trim(); if (cmd.indexOf("wmic.exe") >= 0) { continue; } String s1 = substring(line, kmtidx, rocidx - 1).trim(); String s2 = substring(line, umtidx, wocidx - 1).trim(); if (caption.equals("System Idle Process") || caption.equals("System")) { if (s1.length() > 0) idletime += Long.valueOf(s1).longValue(); if (s2.length() > 0) idletime += Long.valueOf(s2).longValue(); continue; } if (s1.length() > 0) kneltime += Long.valueOf(s1).longValue(); if (s2.length() > 0) usertime += Long.valueOf(s2).longValue(); } retn[0] = idletime; retn[1] = kneltime + usertime; return retn; } catch (Exception ex) { ex.printStackTrace(); } finally { try { proc.getInputStream().close(); } catch (Exception e) { e.printStackTrace(); } } return null; } /** * 由于String.subString对汉字处理存在问题(把一个汉字视为一个字节),因此在 包含汉字的字符串时存在隐患,现调整如下: * @param src 要截取的字符串 * @param start_idx 开始坐标(包括该坐标) * @param end_idx 截止坐标(包括该坐标) * @return */ private static String substring(String src, int start_idx, int end_idx) { byte[] b = src.getBytes(); String tgt = ""; for (int i = start_idx; i <= end_idx; i++) { tgt += (char)b[i]; } return tgt; }
发表评论
-
java 单例模式详解
2013-07-01 18:09 801概念: java中单例 ... -
java反射详解
2013-06-04 12:17 241211、通过一个对象获得完整的包名和类名 package R ... -
dom4j修改xml文件
2013-05-22 21:12 2269import java.io.File; import j ... -
request的getRemoteAddr()和getRemoteHost()方法有什么区别?
2013-02-20 16:50 1978request.getRemoteHost()为什么得到的 ... -
配置log4j单独显示指定类(包)下的日志信息
2013-02-20 10:22 2418配置log4j单独显示指定类(包)下的日志信息 -
解压tar.gz文件包
2013-01-26 17:00 8160import java.io.BufferedInputSt ... -
压缩解压zip文件包
2013-01-26 16:58 933import java.io.*; import or ... -
把汉字转换成byte数组,然后再把byte数组转换成汉字
2012-11-08 20:45 12759/** * <把字符串转换成字节数组然 ... -
HTTP状态码大全(备忘)
2012-10-24 21:12 903"100" : Continue &quo ... -
Spring启动后,立即执行需要的操作
2012-07-26 21:37 21883Spring 配置文件: <bean id=" ... -
spring启动后,立即执行需要的操作
2012-07-26 21:13 14081、在需要进行操作的bean的xml定义中加上init-met ... -
ServletContextAware接口
2012-07-26 21:10 1078在Spring中,凡是实现ServletContextAwar ... -
用户登录锁定后异常退出
2012-07-26 21:08 1241应用场景: 当用户登录时在被锁定状态下异常退出,做一下处理: ... -
用户登录
2012-07-26 20:43 1072本段代码的前提是:同一用户只能在一处登录并且同一session ... -
spring定时器的创建和配置
2012-07-17 20:30 9341、创建业务处理类 public class Palp ... -
手动利用spring提供的quartz创建定时器
2012-07-17 20:25 885/** * <创建定时器> ... -
操作日期加减方法
2012-07-17 20:23 828操作日期加减方法: public static void ... -
Spring MVC实现文件上传
2012-07-16 17:16 4059@Override public String Up ... -
模拟HTTPClient发送消息到服务器
2012-07-16 14:53 1905// 存储服务器的响应消息 String r ... -
上传文件过滤类
2012-07-16 14:52 1026package com.mvc.interceptor; ...
相关推荐
本文将详细探讨如何利用Java获取Windows和Linux系统的CPU、内存以及硬盘信息。 首先,让我们聚焦于CPU信息的获取。在Java中,`java.lang.management`包提供了ManagementFactory类,它包含了获取系统管理信息的方法...
在Java编程中,获取服务器硬件信息是常见的需求,特别是在系统监控、性能分析或者资源管理的场景下。Siger(可能是“System Information Gatherer”的缩写)是一个可能的库,用于帮助开发者轻松地获取包括CPU、内存...
5. **硬盘信息**:获取硬盘数量和状态可能需要结合其他系统接口,如SMBUS或SMART数据,VxIPMI可能不直接提供这个功能,但可以与其他Java库结合使用,如JNA(Java Native Access)来访问这些信息。 6. **处理和展示...
在这个"snmp.zip"压缩包中,主要关注的是如何使用Java来实现SNMP协议,以获取远程计算机的CPU使用率、内存信息和硬盘使用情况。 首先,让我们了解一下SNMP在Java中的实现。Java提供了SNMP支持的API,主要包含在`...
OSHI是一个用Java编写的跨平台库,它允许开发者获取关于操作系统、处理器、内存、磁盘、网络设备以及各种传感器的详细信息。MooInfo作为其可视化界面,对于操作系统监控和硬件诊断具有很高的实用价值。 在操作系统...
在Java Process Manager的上下文中,开发人员会使用SDK中的函数和接口来获取和操作进程信息,如进程ID、内存使用情况、CPU占用率等。 Java Task Manager的核心功能可能包括: 1. **进程管理**:列出所有运行的Java...
基于微服务springboot架构开发,是轻量高性能的分布式监控系统,核心采集指标包括:**cpu使用率,cpu温度,内存使用率,磁盘容量,磁盘IO,硬盘SMART健康状态,系统负载,连接数量,网卡流量,硬件系统信息等。...
即使是入门级配置,也建议使用单路至强CPU、4GB内存和Raid1。 其次,考虑服务器需要支持的用户访问量。评估注册用户数量、同时在线用户及访问峰值,这些数据将决定服务器的CPU性能和内存大小。与技术人员和业务部门...
3. **内存监控**:通过内置的系统调用或者第三方库(如Python的`psutil`库),程序可以获取和记录内存使用情况,包括总内存、已用内存、空闲内存和交换内存等信息。 4. **性能指标**:可能包含计算和显示内存和缓存...
除了内存之外,总线类型、CPU、硬盘和显存等部件的性能也会显著影响内存的使用效率。例如: - 如果显存太小,即使有大量内存也无法有效提高显示速度; - 硬盘速度慢会拖累整个系统的性能。 综上所述,通过对页面...
1. **编程接口**:开发人员可以使用各种编程语言(如C、C++、Python、Java等)的库来访问SMBIOS数据。例如,Python有`py-smbios`库,C有`libsmbin`,这些库提供API调用来读取和解析SMBIOS表格。 2. **命令行工具**...
【System.zip】是一个包含Java实现的系统监控Demo的压缩包,其主要目的是为了展示如何监控服务器的实时状态,包括但不限于硬盘使用情况、内存占用、JVM(Java虚拟机)的相关信息。这个Demo对于开发者来说非常有用,...
应用服务器推荐配置为64位Xeon 2GHz双CPU,8GB内存,使用SCSI或SAS硬盘,建议采用RAID5阵列,硬盘容量至少144GB,同样配备双千兆网卡。同样,可选择的品牌和型号包括IBM System x3650 M2、HP ProLiant DL380 G6、...
- 使用SPEC2006评估处理器性能,SiSoft Sandra测试内存子系统,IOMeter测试存储子系统,WebBench、Netbench和Benchmark Factory测试网络应用性能,Cinebench测试服务器的多任务处理能力。 10. **测试过程记录**: ...
SIGAR(System Information Gatherer and Reporter)是一个跨平台的工具,它允许开发者获取操作系统级别的信息,如CPU使用率、内存状态、硬盘使用情况以及网络流量等。这个库对于开发运维工具、自动化监控解决方案...
"服务器监控组件"主要属于监听器类别,它允许测试人员观察服务器在执行测试计划时的CPU使用率、内存消耗、网络I/O等关键指标,这些数据对于理解和诊断系统性能至关重要。 服务器监控组件通常包含以下几个部分: 1....
综上所述,构建服务器端运行环境时,需综合考虑硬件配置(包括CPU、内存、硬盘、网卡等)、软件配置(操作系统、数据库、中间件等)以及并发用户数量等因素。选择合适的配置不仅能保证系统的稳定运行,还能有效提升...
4. **处理数据**:根据业务需求,提取并处理所需的信息,如CPU型号、内存容量、硬盘信息等。 5. **安全与性能**:在使用WMI时,要注意权限控制和性能优化。过度频繁的查询可能会影响系统性能,因此合理规划查询频率...
- 计算机由中央处理器(CPU)、内存、存储设备(如硬盘、软盘、CD、磁带)、输入设备(如键盘、鼠标)、输出设备(如显示器、打印机)、通信设备(如调制解调器、网络接口卡)以及总线组成。总线是连接这些组件传输...
- **垂直伸缩**:通过升级硬件资源(CPU、内存、硬盘)提升单个节点的处理能力。 - **水平伸缩**:增加服务器实例,实现负载均衡,以处理更多并发请求和更大数据量,提升计算能力。 以上知识点构成了Java分布式...