最近公司有个项目,其中有一块要求如下:
以WEB方式监控平台运行情况
监控对象包括:
监控对象 说明
ApplicationProgram 记录应用程序运行状态
CPU 记录cpu使用情况
Database 记录数据库运行状态
Disk 记录硬盘使用情况
Memory 记录内存使用情况
Network 记录网络运行状态
Service 记录服务运行状态
TableSpace 记录表空间使用情况
自己总结一下,为了实现上面的需求,按照javafound 的指点;
先解决cpu和内存的问题
CPU 记录cpu使用情况/Memory 记录内存使用情况/Disk 记录硬盘使用情况
:试下JDK中的jconsole.exe这个工具,可编程的,java中使用RunningTime API,File API。
下面是在wanlh的专栏,作者:万浪辉ID:wanlh 得总结,现载录到此,对作者表示感谢
Windows环境可以用JNI通过API函数 getProcessCPUTime()来得到。
思路如下:
Linux系统中可以用top命令查看进程使用CPU和内存情况,通过Runtime类的exec()方法系统命令"top”,获取"top"的输出,从而得到CPU和内存的使用情况。对本程序稍加改动,还可以得到内存的使用情况。
import java.io.*;
public class CpuUsage {
public double getCpuUsage() throws Exception {
double cpuUsed = 0;
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("top -b -n 1");// 调用系统的“top"命令//df -hl 查看硬盘空间
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String str = null;
String[] strArray = null;
while ((str = in.readLine()) != null) {
int m = 0;
if (str.indexOf(" R ") != -1 && str.indexOf("top") == -1) {// 只分析正在运行的进程,top进程本身除外
strArray = str.split(" ");
for (String tmp : strArray) {
if (tmp.trim().length() == 0)
continue;
if (++m == 9) {// 第9列为CPU的使用百分比(RedHat 9)
cpuUsed += Double.parseDouble(tmp);
}
}
// System.out.println(str);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
in.close();
}
return cpuUsed;
}
public static void main(String[] args) throws Exception {
CpuUsage cpu = new CpuUsage();
System.out.println("cpu used:" + cpu.getCpuUsage() + "%");
}
}
分享到:
相关推荐
《Mycat 1.6 稳定版在Linux环境下的部署与应用》 Mycat是一款开源的、基于Java开发的分布式数据库中间件,主要用于解决大数据量、高并发场景下的数据库处理问题。它实现了MySQL协议,可以作为MySQL的一个高性能、高...
Mycat 提供了一个基于 Web 的管理工具,名为 Mycat Manager,可以用于实时监控 Mycat 的运行状态、执行 SQL 查询、管理数据节点等。默认情况下,Mycat Manager 在本地的 8080 端口上运行,通过浏览器访问 ...
它继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统,Linux是许多企业和服务提供商的首选操作系统,用于部署Web服务器、数据库服务器、邮件服务器等。Linux系统具有高效的网络功能和稳定的...
在Python编程的学习过程中,了解操作系统的基本原理和使用环境是非常重要的,特别是对于Linux系统,它是许多开发者和服务器首选的平台。本教程"python基础知识-05-Linux内核和发行版"将带你深入理解Linux内核及其...
Linux监控系统基于Node.js、Express.js和Mongoose.js的实现是一个强大的工具,它允许系统管理员实时监测服务器的性能、资源利用率以及应用运行状态。在这个项目中,Node.js作为后端开发语言,Express.js作为Web应用...
- `top`:实时监控系统资源使用情况。 - `k`:通过输入进程ID(PID)来终止进程。 - `i`:改变排序方式,默认按照PID排序。 - `q`:退出top命令。 - `r`:调整进程优先级。 - `S`:显示累积运行时间。 - `s`...
在IT行业中,服务器监控是确保系统稳定运行的关键环节。"easyNmon"是一个针对服务器相关指标进行监控的工具,它能够帮助管理员实时了解服务器的健康状况,预防潜在问题,优化性能。下面我们将深入探讨easyNmon的核心...
#### 一、Linux系统中以文件方式访问设备 - **概念**:在Linux操作系统中,所有的硬件设备都被抽象成文件的形式,可以通过文件系统来进行访问和管理。 - **应用场景**: - **串口通信**:通过`/dev/ttyS0`或`/dev/...
### Oracle 10g在Linux下的安装与管理 #### 标题解读:Oracle 10g在Linux...通过使用Oracle Enterprise Manager Database Control,可以有效简化数据库的管理和监控工作,确保Oracle 10g在Linux环境下稳定高效地运行。
- **调度策略**: 调整任务调度器的参数,如`/proc/sys/kernel/sched_*`,以优化进程执行效率。 - **内存管理**: 配置虚拟内存和缓冲区缓存的相关参数,如`/proc/sys/vm/*`,提高内存使用效率。 - **文件系统**: 修改...
Linux是世界上最广泛使用的开源操作系统之一,它为用户提供了一个强大的命令行界面,通过一系列命令来执行各种操作。在学习Linux的基本命令时,理解其根目录结构和文件属性是至关重要的。 1.1 LINUX 根目录介绍 ...
Linux并不是一个单一的操作系统,而是一系列基于Linux内核的发行版的统称,如Ubuntu、CentOS、Fedora等。这些发行版各自具有独特的特性和用户界面,但核心都基于Linux内核。 【文件系统与目录结构】 Linux采用的是...
- **用途**:提供了一种方式来监控和控制正在运行的进程。 ##### 12. /root - **描述**:超级用户(root)的主目录。 - **用途**:存放系统管理员的个人文件。 ##### 13. /sbin - **描述**:存放系统管理员使用的...
它是监控Linux系统负载和性能的重要工具之一。 - **ps**:ps命令用于报告当前系统的进程状态。它可以用来查看各个进程的资源占用情况,如CPU使用率等。 - **sar**:System Activity Reporter (SAR) 是一种高级系统...
- 对于Linux系统,通过rstatd服务与LoadRunner结合,可以远程监控资源使用情况。 综上所述,性能测试和服务器监控是保证互联网应用高效运行的关键步骤。通过对各种性能指标的监控和分析,可以及时发现并解决潜在的...
1. **套接字编程**:C++中的套接字库(如`<sys/socket.h>`或Boost.Asio)用于处理网络通信,创建服务器监听套接字,接受客户端连接,以及读写数据。 2. **多线程或异步处理**:为了处理并发的HTTP请求,服务器通常...
可能需要以图形化方式运行,可以使用`startx`或`kde`命令启动桌面环境。 9. **选择安装类型**: - 在安装过程中,选择"Advanced Install"进行自定义安装,以确保控制所有配置细节。 10. **配置数据库参数**: - ...