利用JDK1.5的工具对远程的Java应用程序进行监测(摘录)

简介:
最近需要在 Linux 系统上对 Java 的应用系统进行监测,就用到了 JDK1.5 附带的工具 jps ( Java Virtual Machine Process Status Tool ,查看 JVM 进程状态的工具), jstat(Java Virtual Machine Statistics Monitoring Tool ,运行数据监测工具 ) 以及 jstatd ( jstat 的 daemon 程序,利用 RMI 进行远程监控)。(建议可以使用 jvmstat 包,可视化的 jstat 监控工具,可以在 http://java.sun.com/performance/jvmstat/ 下载) 

部署过程描述如下: 

1. 在需要监测的机器(我这里是 Linux 机器)部署相关应用: 

a) 在你需要进行监测的机器上安装 JDK1.5 (狂晕一阵子),别倒下(这个部分就不多说了,因为如果这里还要解释的话,那我就晕了)。 

b) 正确设置 Java 的运行环境。 

c) 启动 jstatd 进程。 

命令如下: ./jstatd -J-Djava.security.policy=all.policy 

一般来说呢,这里是会出现问题的,那就是 permission 的问题了,还好, Sun 的网站上给了相关的解决方法,方法如下,在 jdk/…/security/ java.policy 文件中添加下面的代码: 

grant codebase "file:${java.home}/../lib/tools.jar" { 

permission java.security.AllPermission; 

}; 

然后重新启动 jstatd 进程。 

d) 完了,别让人乱动就好了,我经常是不小心就按 CTRL+C 把程序关闭了。 

2. 在客户端(监控者使用的机器)的操作: 

a) 使用 jps 查看远端机器有哪些 JVM 进程在使用当中,命令如下: 

jps 172.25.1.24 // 远端机器的 IP 地址或名称 

屏幕输入如下: 

13686 Jstatd 

14115 XXXJavaServer 

15117 Jserver 

b) 从上面可以看到远端机器的 Jstatd 进程已经启动起来了。我们就可以使用 jstat 对相关进程的具体情况进行查看。 

Jstat 命令用法如下: 

jstat -〈option〉 [-t] [-h〈lines〉] 〈vmid〉 [〈interval〉 [〈count〉]] 

解释如下: 

Option 包括以下选项: 

-class 

-compiler 

-gc 

-gccapacity 

-gccause 

-gcnew 

-gcnewcapacity 

-gcold 

-gcoldcapacity 

-gcpermcapacity 

-gcutil 

-printcompilation 



Vmid 就是 jps 查看到的进程 id ,如上 Jserver 的进程 id 是 15117 。 

Interval 是时间间隔,单位为毫秒, 1000 就是一秒。 

Count 就是需要查看的次数。 



例子假设我们需要查看 172.25.1.24 机器 vmid 为 15117 的 gc 的情况,可以输入下面的命令: 

jstat -gc 15117@172.25.1.24 1000 3 

然后你能看到四行信息(一行为 title ,剩下的就是你要的信息了),仔细看看就可以发现很多信息的了(如果不明白,可以问我, 6-6 )。 

c) 那么下面就开始配置可视化的监控包, jvmstat ,下载好了后,解压到任意目录。 

执行 visualgc ,然后就可以看到可视化的监控窗口。不过,好像现在只提供 Linux 下的 visualgc 的启动脚本,所以在 Windows 下或者 Linux 最好使用我下面提供的方式: 

在 Linux 下: 

/usr/java/jdk1.5/bin/java –Xbootclasspath/p:” /usr/java/jdk1.5/lib/tools.jar” –jar jvmstat/jars/visualgc.jar vmid@server 

在 Windows 下也一样,就是改改 jdk 的路径就好了。 

成功执行后你就能看见一个 java 的监视窗口(样子还蛮专业的),这个时候就 可以开始监视了。

本文转自kenty博客园博客,原文链接http://www.cnblogs.com/kentyshang/archive/2009/08/20/1550747.html如需转载请自行联系原作者


kenty

相关文章
|
15天前
|
消息中间件 分布式计算 Java
Linux环境下 java程序提交spark任务到Yarn报错
Linux环境下 java程序提交spark任务到Yarn报错
81 4
|
15天前
|
人工智能 算法 Java
Java与AI驱动区块链:构建智能合约与去中心化AI应用
区块链技术和人工智能的融合正在开创去中心化智能应用的新纪元。本文深入探讨如何使用Java构建AI驱动的区块链应用,涵盖智能合约开发、去中心化AI模型训练与推理、数据隐私保护以及通证经济激励等核心主题。我们将完整展示从区块链基础集成、智能合约编写、AI模型上链到去中心化应用(DApp)开发的全流程,为构建下一代可信、透明的智能去中心化系统提供完整技术方案。
135 3
|
27天前
|
人工智能 缓存 监控
使用LangChain4j构建Java AI智能体:让大模型学会使用工具
AI智能体是大模型技术的重要演进方向,它使模型能够主动使用工具、与环境交互,以完成复杂任务。本文详细介绍如何在Java应用中,借助LangChain4j框架构建一个具备工具使用能力的AI智能体。我们将创建一个能够进行数学计算和实时信息查询的智能体,涵盖工具定义、智能体组装、记忆管理以及Spring Boot集成等关键步骤,并展示如何通过简单的对话界面与智能体交互。
558 1
|
19天前
|
安全 Java
Java异常处理:程序世界的“交通规则
Java异常处理:程序世界的“交通规则
250 98
|
2月前
|
人工智能 监控 安全
智慧工地解决方案,java智慧工地程序代码
智慧工地系统融合物联网、AI、大数据等技术,实现对施工现场“人、机、料、法、环”的全面智能监控与管理,提升安全、效率与决策水平。
|
2月前
|
存储 数据采集 搜索推荐
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
本篇文章探讨了 Java 大数据在智慧文旅景区中的创新应用,重点分析了如何通过数据采集、情感分析与可视化等技术,挖掘游客情感需求,进而优化景区服务。文章结合实际案例,展示了 Java 在数据处理与智能推荐等方面的强大能力,为文旅行业的智慧化升级提供了可行路径。
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
|
2月前
|
存储 监控 数据可视化
Java 大视界 -- 基于 Java 的大数据可视化在企业生产运营监控与决策支持中的应用(228)
本文探讨了基于 Java 的大数据可视化技术在企业生产运营监控与决策支持中的关键应用。面对数据爆炸、信息孤岛和实时性不足等挑战,Java 通过高效数据采集、清洗与可视化引擎,助力企业构建实时监控与智能决策系统,显著提升运营效率与竞争力。
|
18天前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
77 8
|
19天前
|
人工智能 监控 Java
Java与AI智能体:构建自主决策与工具调用的智能系统
随着AI智能体技术的快速发展,构建能够自主理解任务、制定计划并执行复杂操作的智能系统已成为新的技术前沿。本文深入探讨如何在Java生态中构建具备工具调用、记忆管理和自主决策能力的AI智能体系统。我们将完整展示从智能体架构设计、工具生态系统、记忆机制到多智能体协作的全流程,为Java开发者提供构建下一代自主智能系统的完整技术方案。
197 4
|
26天前
|
人工智能 Java API
Java AI智能体实战:使用LangChain4j构建能使用工具的AI助手
随着AI技术的发展,AI智能体(Agent)能够通过使用工具来执行复杂任务,从而大幅扩展其能力边界。本文介绍如何在Java中使用LangChain4j框架构建一个能够使用外部工具的AI智能体。我们将通过一个具体示例——一个能获取天气信息和执行数学计算的AI助手,详细讲解如何定义工具、创建智能体并处理执行流程。本文包含完整的代码示例和架构说明,帮助Java开发者快速上手AI智能体的开发。
607 8