JVM基础:生产环境参数实例及分析 原始配置: -Xms128m -Xmx128m -XX:NewSize=64m -XX:PermSize=64m -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=78 -XX:ThreadStackSize=128k-Xloggc:logs/gc.log -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.rmi.dgc.client.gcInterv…
这种文章挺难写的,一是JVM参数巨多,二是内容枯燥乏味,但是想理解JVM调优又是没法避开的环节,本文主要用来总结梳理便于以后翻阅,主要围绕四个大的方面展开,分别是JVM调优参数.JVM调优方法(流程).JVM调优工具.JVM调优案例,调优案例目前正在分析,会在将来补上. 垃圾回收有关参数 参数部分,这儿只是做一个总结,更详细更新的内容请参考Oracle官网:JVM的命令行参数参考 处理器组合参数 关于JVM垃圾处理器区别,参考:JVM调优之垃圾定位.垃圾回收算法.垃圾处理器对比 -XX:+Use…
1.gc配置参数 1.1 控制台打印gc日志 -verbose:gc -XX:+PrintGCDetails -XX:+PrintHeapAtGC(详细的gc信息) 1.2 输出gc日志到指定文件 -Xloggc: (例如: -Xloggc:C:\logs\gc.log) 1.3 Gc日志分块 -XX:-UseGCLogFileRotation -XX:GCLogFileSize = 8M 1.4 指定最小堆内存 -Xms (例如-Xms20M指定最小堆内存为20M) 1.5 指定最大堆内存 -…
GC有两种类型:Scavenge GC 和Full GC 1.Scavenge GC 一般情况下,当新对象生成,并且在Eden申请空间失败时,就会触发Scavenge GC,堆的Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到Survivor的两个区中. 2.Full GC 对整个堆进行整理,包括Young.Tenured和Perm.Full GC 比Scavenge GC要慢,因此应该尽可能减少Full GC,有如下原因可能导致Full GC a.Tenured被写满: b.P…
一.背景 2021年2月,收到反馈,视频APP某核心接口高峰期响应慢,影响用户体验. 通过监控发现,接口响应慢主要是P99耗时高引起的,怀疑与该服务的GC有关,该服务典型的一个实例GC表现如下图: 可以看出,在观察周期里: 平均每10分钟Young GC次数66次,峰值为470次: 平均每10分钟Full GC次数0.25次,峰值5次: 可见Full GC非常频繁,Young GC在特定的时段也比较频繁,存在较大的优化空间.由于对GC停顿的优化是降低接口的P99时延一个有效的手段,所以决定对该核…
本文章参数根据后期用的参数会持续更新  --- (1)-Xms20M 表示设置JVM启动内存的最小值为20M,必须以M为单位 (2)-Xmx20M 表示设置JVM启动内存的最大值为20M,必须以M为单位.将-Xmx和-Xms设置为一样可以避免JVM内存自动扩展.大的项目-Xmx和-Xms一般都要设置到10G.20G甚至还要高 (3)-verbose:gc 表示输出虚拟机中GC的详细情况 (4)-Xss128k 表示可以设置虚拟机栈的大小为128k (5)-Xoss128k 表示设置本地方法栈的大…
原文:https://www.cnblogs.com/linhankbl/articles/9149804.html#top JVM菜鸟进阶高手之路七(tomcat调优以及tomcat7.8性能对比)-------https://blog.csdn.net/lirenzuo/article/details/77164033 Linux服务器上同时部署多个Tomcat方法介绍------https://blog.csdn.net/github_38383183/article/details/78…
JVM里的GC(Garbage Collection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpot VM GC 的种类 现在比较常用的是分代收集(generational collection,也是SUN VM使用的,J2SE1.2之后引入),即将内存分为几个区域,将不同生命周期的对象放在不同区域里:young generation,tenured generation和permanet generation.绝大部分的objec被分配在young gener…
1.Spark on Yarn下JVM的OOM问题及解决方式 2.Spark中Driver的Stack Overflow的问题及解决方式 Spark on Yarn cluster mode: 此时有可能会报OOM的错误,具体来说: 由于Client模式下一定没有出现OOM,而在Cluster模式下一定出现了OOM,所以必然说明OOM是Driver导致的! Driver在Client和Cluster模式下占用的内存都是一致的,例如都是100M,现在的问题是为什么在Client下的100M不会OO…
一.首先我们要分析影响odoo 服务器 性能的因素 CPU 目前大部分CPU在同一时间只能运行一个线程,超线程的处理器可以在同一时间处理多个线程,因此可以利用超线程特性提高系统性能. 在linux系统下只有运行SMP内核才能支持超线程,但是安装的CPu数量越多,从超线程获得的性能提升越少.odoo单进程模式下对 CPU 要求并不高,但是为了支持多并发,需要开启 workers,一般 CPU(核)的数量和​work 数量为 works = 2 * cpu(核) + 1 内存 内存太小,系统进程将被…