最近需要在 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 的监视窗口(样子还蛮专业的),这个时候就 可以开始监视了。
http://java.chinaitlab.com/JDK/715975.html
分享到:
相关推荐
**正文** 标题:“jdk1.5 windows版本 64位” 描述:“jdk1.5 windows版本 64位,Java开发依赖环境” ...通过理解其新特性和配置要求,开发者可以充分利用这个工具集,进行高效、高质量的软件开发。
Linux系统中的JDK1.5是Java开发工具包的一个早期版本,主要针对Java语言的编译、运行和调试提供支持。这个版本在今天已经相对较为罕见,因为Java已经有了多个后续版本,包括JDK7、JDK8、JDK9直至最新的JDK17等。然而...
Windows版的JDK1.5则是专为在Windows操作系统上运行而设计的,保证了与Windows系统的兼容性和性能。 综上所述,JDK1.5是Java发展历程中的一个重要里程碑,它的特性改进了编程体验,提升了代码质量和运行效率。而64...
JDK1.5,也称为Java 5.0,是一个重要的版本,它引入了许多新的特性和改进,对Java语言的发展产生了深远影响。 一、泛型(Generics) 在Java 5.0中,最重要的特性之一就是泛型的引入。泛型允许开发者在定义类、接口...
8. **NIO.2(New I/O 2)**:虽然NIO(非阻塞I/O)是在JDK1.4引入的,但JDK1.5对其进行了扩展,添加了文件系统操作和文件观察者等功能,使得文件操作更加高效和灵活。 9. **类型安全的异常检查(Checked Exceptions...
jdk1.5.exe jdk1.5 jdk1.5下载
在内存管理上,JDK1.5的垃圾收集器进行了优化,包括对新生代和老年代的内存区域划分以及并发标记清除算法的改进,提升了应用程序的性能。 至于提供的两个压缩包文件,`jdk-1_5_0_22-windows-i586-p.exe`是32位版本...
虽然NIO.2是在JDK7中正式引入的,但JDK1.5开始引入了新的文件系统模型,为后来的NIO.2打下了基础。 这些特性极大地丰富了Java语言的功能,使得Java在现代软件开发中保持了强大的竞争力。对于Java开发者来说,理解...
Java Development Kit (JDK) 是Java编程语言的核心组件,它为开发者提供了编译、调试和运行Java应用程序所需的...安装后,开发者可以利用这些JDK进行Java开发,同时也可以在不同版本之间切换,以测试兼容性和性能差异。
JDK1.5新特性
JDK1.5,也被称为Java SE 5.0,是Oracle公司于2004年发布的一个重大更新,带来了许多重要的新特性、改进和优化。以下是对这个版本的一些关键知识点的详细解释: 1. **泛型(Generics)**:JDK1.5引入了泛型,使得...
绝版jdk1.5,非常不错的资源。用起来很好。是 Java语言对Bean类属性、事件的一种缺省处理方法。例如类A中有属性name,那我们可以通过getName,setName来得到其值或者设置新 的值。通过getName/setName来访问name属性,...
标题中的“jdk1.5 jdk1.6 反编译 工具”指的是用于对Java字节码进行反编译的软件,这类工具能够将Java的.class文件转换回可读的.java源代码形式,这对于理解和学习已有的Java类库或者进行逆向工程非常有帮助。...
JDK1.5对类文件格式进行了一些修改,如添加了常量池项类型,以支持新的语言特性如泛型和注解。 ### 10. 性能提升 JDK1.5在编译器优化、垃圾收集、内存管理和多线程性能方面都有所改进,提升了整体的运行效率。 ...
此外,JDK1.5还改进了性能和内存管理,提升了Java平台的整体稳定性。 在开发Web应用程序时,JDK1.5通常与Tomcat、Jetty等Java应用服务器配合使用。开发者可以使用Java Servlets、JavaServer Pages(JSP)、Java ...
前几天上传过这个资源,因为是在jdk1.6上开发的, 测试了一下在jdk1.5上不能用, 今天重新用jdk1.5编译了一下, 这个是可以支持jdk1.5+的 将 pu-xlscommon-1.0.0.jar 添加到工程的 /lib 目录下 用法在附件中 XlsTest....
### JDK 1.5 新特性详解 #### 泛型编程 **定义与作用:** 泛型编程是 Java 1.5 引入的一项重要特性,它允许开发者在编译时进行类型安全检查,从而避免了运行时可能出现的类型转换异常。通过在编译阶段检查类型安全...
5. **include目录**:提供了C和C++语言调用Java本地接口(JNI)所需的头文件,允许Java代码与本地操作系统进行交互。 6. **README.html和LICENSE文件**:提供了关于JDK的使用指南和许可协议,确保用户了解如何合法...
在压缩包"IBMJDK1.5linux.zip"中,主要包含的是IBM JDK 1.5的安装文件和相关文档。安装完成后,开发者可以通过设置环境变量(如JAVA_HOME、PATH)来使用这个JDK。通常,这个JDK会包含Java编译器(javac)、Java解释...