知识大全 JVM优化配置
Posted 知
篇首语:贵有恒,何必三更起、五更眠、最无益,只怕一日曝、十日寒。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JVM优化配置相关的知识,希望对你有一定的参考价值。
JVM优化配置 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java Hotspot Mode: server 和 client两种模式 如果不配置 JVM会根据应用服务器硬件配置自动选择模式 server模式启动比较慢 但是运行期速度得到了优化 client启动比较快 但是运行期响应没有server模式的优化 适合于个人PC的服务开发和测试 Garbage Collector Policy: 在Jdk 的时候已经提供了三种GC 除了原来提供的串行GC(SerialGC)以外 还提供了两种新的GC:ParallelGC和ConcMarkSweepGC ParallelGC采用了多线程并行管理和回收垃圾对象 提高了回收效率 提高了服务器的吞吐量 适合于多处理器的服务器 ConcMarkSweepGC采用的是并发方式来管理和回收垃圾对象 降低垃圾回收产生的响应暂停时间 这里说一下并发和并行的区别 并发指的是多个进程并行执行垃圾回收 那么可以很好的利用多处理器 而并行指的是应用程序不需要暂停可以和垃圾回收线程并发工作 串行GC适合小型应用和单处理器系统(无需多线程交互 效率比较高) 后两者适合大型系统 使用方式就是在参数配置中增加 XX:+UseParallelGC等方式来设置 对于这部分的配置在网上有很多的实例可以参考 不过最终采用哪一种GC还是要根据具体的情况来分析和选择 Heap: OOM的各种经历已经让每一个架构师开发人员看到了了解Heap的重要性 OOM已经是Heap的临界点 不得不引起注意 然而Heap对于性能的潜在影响并未被引起重视 不过和GC配置一样 在没有对使用情况作仔细分析和研究的情况下 贸然的去修改Heap配置 可能适得其反 这里就来看一下Heap的一些概念和对于性能的影响 我们的应用所能够得到的最大的Heap受三部分因素的制约 数据处理模型( 位或者 位操作系统) 系统地虚拟内存总数和系统的物理内存总数 首先Heap的大小不能超过不同操作系统的进程寻址范围 当前大部分系统最高限度是 G Windows通常是 G Linux通常是 G 系统的虚拟内存也是分配的依据 首先是不能超过 然后由于操作系统支持硬盘来做部分的虚拟内存 如果设置过大 那么对于应用响应来说势必有影响 再则就是要考虑同一台服务器上运行多个Java虚拟机所消耗的资源总合也不能超过可用资源 就和前面OOM分析中的一样 其实由于OS的数据处理模型的限制 机器本身的硬件内存资源和虚拟内存资源并不一定会匹配 那么在有限的资源下如何调整好资源分配 对于应用来说尤为重要 关于Heap的几个参数设置 说了Heap的有限资源问题以后 就来看看如何通过配置去改变JVM对于Heap的分配 下面所说的主要是对于Java Heap的分配 那么在申请了Java Heap以后 剩下的可用资源就会被使用到Native Heap Xms: java heap初始化时的大小 默认情况是机器物理内存的 / 这个主要是根据应用启动时消耗的资源决定 分配少了申请起来会降低启动速度 分配多了也浪费 Xmx:java heap的最大值 默认是机器物理内存的 / 最大也就到 G 这个值决定了最多可用的Java Heap Memory 分配过少就会在应用需要大量内存作缓存或者零时对象时出现OOM的问题 如果分配过大 那么就会产生上文提到的第二类OOM 所以如何配置还是根据运行过程中的分析和计算来确定 如果不能确定还是采用默认的配置 Xmn:java heap新生代的空间大小 在GC模型中 根据对象的生命周期的长短 产生了内存分代的设计 青年代(内部也分成三部分 类似于整体划分的作用 可以通过配置来设置比例) 老年代 持久代 每一代的管理和回收策略都不相同 最为活跃的就是青年代 同时这部分的内存分配和管理效率也是最高 通常情况下 对于内存的申请优先在新生代中申请 当内存不够时会整理新生代 当整理以后还是不能满足申请的内存 就会向老年代移动一些生命周期较长的对象 这种整理和移动会消耗资源 同时降低系统运行响应能力 因此如果青年代设置的过小 就会频繁的整理和移动 对性能造成影响 那是否把年青代设置的越大越好 其实不然 年青代采用的是复制搜集算法 这种算法必须停止所有应用程序线程 服务器线程切换时间就会成为应用响应的瓶颈(当然永远不用收集那么就不存在这个问题) 老年代采用的是串行标记收集的方式 并发收集可以减少对于应用的影响 Xss:线程堆栈最大值 允许更多的虚拟内存空间地址被Java Heap使用 以下是sun公司的性能优化白皮书中提到的几个例子 对于吞吐量的调优 机器配置 G的内存 个线程并发能力 java Xmx m Xms m Xmn g Xss k XX:+UseParallelGC XX:ParallelGCThreads= Xmx m Xms m 配置了最大Java Heap来充分利用系统内存 Xmn g 创建足够大的青年代(可以并行被回收)充分利用系统内存 防止将短期对象复制到老年代 Xss 减少默认最大的线程栈大小 提供更多的处理虚拟内存地址空间被进程使用 XX:+UseParallelGC 采用并行垃圾收集器对年青代的内存进行收集 提高效率 XX:ParallelGCThreads= 减少垃圾收集线程 默认是和服务器可支持的线程最大并发数相同 往往不需要配置到最大值 尝试采用对老年代并行收集 java Xmx m Xms m Xmn g Xss k XX:+UseParallelGC XX:ParallelGCThreads= XX:+UseParallelOldGC Xmx m Xms m 内存分配被减小 因为ParallelOldGC会增加对于Native Heap的需求 因此需要减小Java Heap来满足需求 XX:+UseParallelOldGC 采用对于老年代并发收集的策略 可以提高收集效率 提高吞吐量 减少应用停顿时间 java Xmx m Xms m Xmn g Xss k XX:ParallelGCThreads= XX:+UseConcMarkSweepGC XX:+UseParNewGC XX:SurvivorRatio= XX:TargetSurvivorRatio= XX:MaxTenuringThreshold= XX:+UseConcMarkSweepGC XX:+UseParNewGC 选择了并发标记交换收集器 它可以并发执行收集操作 降低应用停止时间 同时它也是并行处理模式 可以有效地利用多处理器的系统的多进程处理 XX:SurvivorRatio= XX:MaxTenuringThreshold= 表示在青年代中Eden和Survivor比例 设置增加了Survivor的大小 越大的survivor空间可以允许短期对象尽量在年青代消亡 XX:TargetSurvivorRatio= 允许 %的空间被占用 超过默认的 % 提高对于survivor的使用率 cha138/Article/program/Java/hx/201311/25818相关参考
JVM优化:缩短eclipse的启动时间 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 最近自从
配置JVM内存分配的妙招 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
SomeofthedefaultvaluesforSunJVMsarelistedbelow
专家指导如何进行JVM参数配置 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  
内存管理系统常常被视为实现系统性能最优的一块主要绊脚石因此在过去的几年里Java应用环境对高效执行内存调优的需求急剧增长受此影响JVM供应商开始一哄而上提供配置内存的特殊选项获取最优内存性能——没有中
市场经济优化配置资源的主要方式是_____。A、对外出口B、政府计划C、价格机制D、银行信贷答案:C解析:价格机制是优化资源配置的核心机制,供求关系反映在价格上,通过市场价格配置资源。故本题答案选C。
在任何情况下,市场经济都能够起到优化资源配置的作用。_____答案:错误解析:市场经济能够起到优化资源配置的作用,但并不是在任何情况下都会。题干说法过于绝对。故本题判断错误。
在我国的市场经济条件下,要达到优化资源配置和合理配置的目标,必须做到__
在我国的市场经济条件下,要达到优化资源配置和合理配置的目标,必须做到_____。A、以市场为基础,同时加强国家对经济的宏观调控B、完善市场体系,诵讨市场平等竞争C、通过价格传递信息及时协调生产和需求D
人们努力实现资源的优化配置的目的是:_____A、使人类丰富的资源更好地为市场经济服务B、使生产规模不断扩大,生产更多的产品C、使有限的资源得到充分合理的利用,更好地满足社会的需要D、使资源集中到经济
IIS服务器与web.config配置优化指南 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 修