jvisual的使用
1:linux 图形界面的安装Linux上安装图形界面的方法(rhel5):# yum groupinstall -y "GNOME Desktop Environment" # yum install -y xrdp之后# service xrdp start # chkconfig xrdp on (以后开机自动启动图形界面)Linux上安装图形界面的方法(rh
1:linux 图形界面的安装
Linux上安装图形界面的方法(rhel5):
- # yum groupinstall -y "GNOME Desktop Environment"
- # yum install -y xrdp
之后
- # service xrdp start
- # chkconfig xrdp on (以后开机自动启动图形界面)
Linux上安装图形界面的方法(rhe6):
- yum groupinstall “X Window System”
- yum groupinstall Desktop
- yum install tigervnc-server
- yum install xrdp
- vim /etc/sysconfig/vncservers
- 将最后两行的注释改掉,并且修改用户名为root
- 设置vncserver密码:vncpasswd
启动xrdp和vnc-server
- service xrdp start
- service vnvserver start
2:监控服务器
目前按照1的方法已经在148上安装了图形界面和jdk 。
远程上148的话,在命令行输入jvisualvm(jdk安装正确,正常提供服务的话,就会看到:Java VisualVm的弹出窗口,无弹窗的话,检查下机器上的jdk)。这时如果服务其上启动了java程序的话,local 下面可以找到对应pid的运行情况。如下图所示:
3:监控remote
条件:要确保监控机器上安装jdk
(1)在监控机器上配置 jstatd 的 security policy 文件
-J-Djava.security.policy=*** 指定安全策略,需要在服务器上建立一个指定安全策略的文件 jstatd.all.policy ,文件内容如下:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
(2)监控机器上运行 jstatd 守护程序
jstatd是一个监控 JVM 从创建到销毁过程中资源占用情况并提供远程监控接口的服务器程序,它是一个 Daemon 程序,要保证远程监控软件连接到本地的话需要 jstatd 始终保持运行,它的默认端口号是1099。
启动脚本:
jstatd -J-Djava.security.policy=jstatd.all.policy
(3)服务器端 添加主机
在Java VisualVM 程序窗口左侧 “ 远程 ” 项目右键选择 “ 添加远程主机 ” ,在弹出的对话框中输入远程主机的 IP 地址和端口号(端口号默认为1099--jstatd端口号),确认提交后即可看到相应的远程主机和在上面运行的 Java 程序,连接成功后应该会显示 Jstatd 及其 PID 。
4:图形界面使用方法
(1)修改监控时间配置
打开图形界面, 。Tools/option ,在下面的表格中修改监控时间
(2 ) 查看heap运行状况
从heap中可以看到程序申请释放堆的情况。一个波峰就是进行一次gc。
主要是要观察申请的heap,gc 之后是否能够释放。要想查看具体的gc情况,可以添加插件,如(3)所示
(3)添加visual gc 插件
点击Tools/plugin,找到visual gc 插件,install 。可以看到如下的gc信息。主要包括gc 次数和时间,full gc的次数和时间。通常前端的程序对full gc的次数限制要求较高(gc的时候不能相应请求),后台程序主要关注下次数和时间,跟开发确认一下。
此外还有一些线程的运行状况等多种信息可以查看到,以后遇到可以继续补充改文档~
5:附:JVM内存介绍
(一) JVM内存布局
jvm主要包含下面几个部分:
1. Java Virtual Machine Stack: 也就是我们常见的局部变量栈,线程私有,保存线程执行的局部变量表、操作栈、动态连接等。
2. Java Heap:我们最常打交道的内存区域,几乎所有对象的实例都在这个区域分配,是被所有线程共享的一块内存区域。所谓的GC基本上也就是跟这个区域打交道。
3. Method Area:包含被虚拟机加载的类、常量、静态变量等数据。Method area在所有线程中共享。JVM的垃圾回收机制(GC)不回收method area内存块, method area数据放在heap的Permanent区。
4. Native Method Stacks局部方法栈, 与Java Virtual Machine Stack栈类似,保存native Mathod。
Java heap是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。Java Heap分为3个区:1.Young 2.Old 3.Permanent
其中:Permanent(永生代)基本上等价于Method Area,也就是说其中包含的数据在jvm进程存活期间会一直存在,一般不会发生变化。
Young保存刚实例化的对象。当该区被填满时,GC会将对象移到Old区。Permanent区则负责保存反射对象。
新生代和老生代位于Java heap中,是垃圾收集器主要处理的内存区域。
(二) GC的触发条件
· YGC/YGCT: Young GC次数和总耗费时间。Young GC也就是Minor GC,新生代中内存不够时触发,通常采用复制算法进行,回收速度较快,对系统的影响较小。
· FGC/FGCT:Full GC次数和总耗费时间。Full GC是在java heap空间不足(包括New和Old区域)时触发,会分别清理新生代、老生代,通常耗时较长,对系统有较大影响,应该尽量避免。
· GCT:GC总耗时。
更多推荐
所有评论(0)