JVM 性能调优解决方案(总结)一、引言本文的读者是技术支持人员
阅读本文后,你将理解 jboss 的启动脚本文件(run
sh)中有一系列的 JVM 配置参数的含义,以及如何调整它们,从而使得MegaEyes 中心管理服务器的性能得到优化
MegaEyes 中心管理服务器的性能调优涉及到系统的多个方面,包括MegaEyes 应用本身、应用服务器(jboss)、数据库和 java 虚拟机(JVM)等等
本文重点介绍 JVM 的性能优化
需要注意的是,JVM 性能调优具有应用独特性(application specific),就是说,不同的应用情形应该有不同的调整方案,这就要求你首先要观察 JVM 的运行状态,然后根据观察结果调整参数
没有一个通用的调优方案可以适用于所有的 MegaEyes 应用
什么是性能调优对性能调优,不同的人有不同的理解,本文是指对下列指标最大化:并发用户(concurrent users),在服务请求失败或请求响应超过预期时间之前,系统支持的最大并发用户数量
系统容量(throughput),可以用每秒处理的事务(transaction)数量计算
可靠性(reliability)换句话说,我们想对更多的用户提供更快捷的、不会中断的服务
JVM 性能调优的重点JVM 的性能调优的重点是垃圾回收(gc,garbage collection)和内存管理
垃圾回收的时候会导致整个虚拟机暂停服务,因此,应该尽可能地缩短垃圾回收的处理时间
JVM 内存JVM 占用的内存称为堆(heap),它被分为三个区:年轻(young,又称为new)、老(tenured,又称为 old)和永生(perm)
这三个区是根据 java 对象的生存期划分的,在 new 区的对象生存期最短,很快就会被 gc 回收;perm 区的对象生存期最长,与 JVM 同生死