虚拟机性能检测和故障处理工具

虚拟机性能检测和故障处理工具
1.定位处理问题需要通过数据分析,虚拟机问题定位可利用资源:
运行日志、异常堆栈、GC日志、线程快照、堆转储快照
2.处理问题需要通过工具对数据的分析

JDK命令工具(../bin目录下)
(1)jps 指令 显示指定系统内所有Hotspot虚拟机的进程
-l 显示主类的全名
-m 主类输入的参数
例:

*38172 为PID(进程id) 后面为主类

(2)jstat 指令 收集hotspot虚拟机运行的各方面的数据
用户主要想查询数据:类装载、垃圾回收运行期编译
指令: jstat -[option] [vmid] <interval> <count>
<interval> <count> 可略默认一秒一次
vmid==Lvmid==于PID
如下options:

例:

* PID 33528 时间间隔iterval 250ms 次数count 20
YGC 新代回收次数 YGCT 新代回收时间
FGC 永久代回收次数 FGCT 永久代回收时间
GCT 总时间

(3)jinfo 指令 显示虚拟机配置信息
语法:
jinfo pid | jinfo -flags PID

(4)jmap指令 生成虚拟机内存的转储快照(heapdump文件)
语法:
jmap -dump:format=b,file=eclipse.bin PID
例:

(5)jhat 指令 用于分析headdump文件,会建立一个http的服务,供访问

在浏览器输入: http://localhost:7000/ 查看heap histogram 查看使用率最高的类
建议使用visualVM 、eclpise Memory Analyzer、IBM HeapAnalyzer专业分析工具
(6)jstack 指令 显示虚拟机线程快照
语法: jstack [option] PID
options: -F 强制输出堆栈的信息
-l 除堆栈显示锁的相关信息
(7)jconsole JVM监视和管理控制面
默认情况: 新生代(new)=> edea :servivor = 8:1

3.调优方案的分析与案例
目前在高性能的硬件上部署主要有:
通过64位JDK使用大内存
使用若干个32位虚拟机组成集群使用大内存
使用64位虚拟机可能面对的问题:
内存的回 导致长时间的停顿没有响应
64位性能普遍低于32位机15%
需要保证虚拟机的绝对稳定,因为dump文件达到十几G根本无法分析
64位相对使用内存多(指针膨胀和数据类型补白导致)
使用32位虚拟机群可能遇到的问题:
尽量避免单机之间竞争全局资源,最典型的就是磁盘竞争,容易导致读写IO异常
很难有效利用某些资源譬如连接池
各个节点任然受到32位内存的限制
大量使用本地缓存,可以考虑逻辑节点缓存改为集中式缓存


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值