`
avery_leo
  • 浏览: 388391 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

以WEB方式监控平台运行情况(总结一--------linux下sys运行情况监控)

    博客分类:
  • JAVA
阅读更多

最近公司有个项目,其中有一块要求如下:


以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环境 gz包.7z

    《Mycat 1.6 稳定版在Linux环境下的部署与应用》 Mycat是一款开源的、基于Java开发的分布式数据库中间件,主要用于解决大数据量、高并发场景下的数据库处理问题。它实现了MySQL协议,可以作为MySQL的一个高性能、高...

    Mycat-server-1.6-RELEASE-20161028204710-linux.tar.zip

    Mycat 提供了一个基于 Web 的管理工具,名为 Mycat Manager,可以用于实时监控 Mycat 的运行状态、执行 SQL 查询、管理数据节点等。默认情况下,Mycat Manager 在本地的 8080 端口上运行,通过浏览器访问 ...

    Linux Source Monitor(CPU、Mem、IO、Net) (linux 系统资源监控库

    它继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统,Linux是许多企业和服务提供商的首选操作系统,用于部署Web服务器、数据库服务器、邮件服务器等。Linux系统具有高效的网络功能和稳定的...

    python基础知识-05-Linux内核和发行版.ev4.rar

    在Python编程的学习过程中,了解操作系统的基本原理和使用环境是非常重要的,特别是对于Linux系统,它是许多开发者和服务器首选的平台。本教程"python基础知识-05-Linux内核和发行版"将带你深入理解Linux内核及其...

    linux监控系统 基于 nodejs expressjs mongoosejs .zip

    Linux监控系统基于Node.js、Express.js和Mongoose.js的实现是一个强大的工具,它允许系统管理员实时监测服务器的性能、资源利用率以及应用运行状态。在这个项目中,Node.js作为后端开发语言,Express.js作为Web应用...

    linux系统常用命令

    - `top`:实时监控系统资源使用情况。 - `k`:通过输入进程ID(PID)来终止进程。 - `i`:改变排序方式,默认按照PID排序。 - `q`:退出top命令。 - `r`:调整进程优先级。 - `S`:显示累积运行时间。 - `s`...

    easyNmon服务器相关指标监控

    在IT行业中,服务器监控是确保系统稳定运行的关键环节。"easyNmon"是一个针对服务器相关指标进行监控的工具,它能够帮助管理员实时了解服务器的健康状况,预防潜在问题,优化性能。下面我们将深入探讨easyNmon的核心...

    Linux面试宝典大全+答案

    #### 一、Linux系统中以文件方式访问设备 - **概念**:在Linux操作系统中,所有的硬件设备都被抽象成文件的形式,可以通过文件系统来进行访问和管理。 - **应用场景**: - **串口通信**:通过`/dev/ttyS0`或`/dev/...

    Oralce 10g install linux2

    ### Oracle 10g在Linux下的安装与管理 #### 标题解读:Oracle 10g在Linux...通过使用Oracle Enterprise Manager Database Control,可以有效简化数据库的管理和监控工作,确保Oracle 10g在Linux环境下稳定高效地运行。

    Linux服务器性能调整

    - **调度策略**: 调整任务调度器的参数,如`/proc/sys/kernel/sched_*`,以优化进程执行效率。 - **内存管理**: 配置虚拟内存和缓冲区缓存的相关参数,如`/proc/sys/vm/*`,提高内存使用效率。 - **文件系统**: 修改...

    Linux基本命令

    Linux是世界上最广泛使用的开源操作系统之一,它为用户提供了一个强大的命令行界面,通过一系列命令来执行各种操作。在学习Linux的基本命令时,理解其根目录结构和文件属性是至关重要的。 1.1 LINUX 根目录介绍 ...

    韩顺平2018版Linux笔记

    Linux并不是一个单一的操作系统,而是一系列基于Linux内核的发行版的统称,如Ubuntu、CentOS、Fedora等。这些发行版各自具有独特的特性和用户界面,但核心都基于Linux内核。 【文件系统与目录结构】 Linux采用的是...

    linux目录结构.docx

    - **用途**:提供了一种方式来监控和控制正在运行的进程。 ##### 12. /root - **描述**:超级用户(root)的主目录。 - **用途**:存放系统管理员的个人文件。 ##### 13. /sbin - **描述**:存放系统管理员使用的...

    Linux性能分析工具汇总.docx

    它是监控Linux系统负载和性能的重要工具之一。 - **ps**:ps命令用于报告当前系统的进程状态。它可以用来查看各个进程的资源占用情况,如CPU使用率等。 - **sar**:System Activity Reporter (SAR) 是一种高级系统...

    性能测试指标、监控服务器的一些方法.docx

    - 对于Linux系统,通过rstatd服务与LoadRunner结合,可以远程监控资源使用情况。 综上所述,性能测试和服务器监控是保证互联网应用高效运行的关键步骤。通过对各种性能指标的监控和分析,可以及时发现并解决潜在的...

    ehttp-master_c服务_c++http编程_httpserver_ehttp-master_

    1. **套接字编程**:C++中的套接字库(如`<sys/socket.h>`或Boost.Asio)用于处理网络通信,创建服务器监听套接字,接受客户端连接,以及读写数据。 2. **多线程或异步处理**:为了处理并发的HTTP请求,服务器通常...

    linux 上安装oracle 10g 完整版

    可能需要以图形化方式运行,可以使用`startx`或`kde`命令启动桌面环境。 9. **选择安装类型**: - 在安装过程中,选择"Advanced Install"进行自定义安装,以确保控制所有配置细节。 10. **配置数据库参数**: - ...

Global site tag (gtag.js) - Google Analytics