jvm调优总结

ゝ一纸荒年。 2022-07-18 01:47 275阅读 0赞

64位系统无jvm内存限制,linux系统可设置最大句柄数开启最大线程
32位系统则对jvm内存有大小限制
年轻代与年老代存放在heap堆中
吞吐量优先的程序一般有一个较大的年轻区和一个较小的年老区
时间优先的程序一般考虑较少年轻代与年老代的停留时间

垃圾回收器算法:
标记清除
复制
标记整理

垃圾回收器:
串行:一般用在数据量小于100M的单CPU程序中
并行:吞吐量优先的中大型企业
并发:时间优先的中大型企业.使用标记清除法,gc不会对堆进行压缩容易导致碎片累积

垃圾回收机制:
scavenge gc:eden区开始gc,清除无效引用存放存留对象到生还区0,生还区0到生还区1,生还区1到年老区
full gc:年老区满,持久区满或System.gc()的显示调用可能会导致full gc.
full gc会导致应用暂停,对响应时间为几十到几百毫秒的应用是致命的,是传统分代垃圾回收的瓶颈
增量收集:把内存分成若干块,先使用其中一部分内存,gc时把使用的内存中的存活对象放到未使用的内存块中
理论上解决了full gc带来的问题

增量收集的G1算法:先收集活跃小对象的region以便先释放大的内存
1、初始标记:暂停所有线程并扫描对象生成一个bitmap,运行线程,gc时从bitmap中找到内存对象一个一个清理
2、并发标记:初始标记扫描对象阶段新对象操作被记录到缓存日志中
3、最终标记暂停:暂停应用,将缓存日志中的数据放入remebered sets中,启动应用,调用gc进行处理
full-young gc:young regions中内存数量占用到一定数量后触发clean up清理内存操作
partially-young gc:程序会尽量频繁的在应用可接受的暂停时间范围内执行clean up

bitmap是一种数据结构,在iso8583报文中的位图上用到

具体配置修改tomcat的catalina.sh文件

调优工具:jmap、jhat、jstack、jstat 等

linux中执行的fullGC:jcmd 15238GC.run (对 JVM 执行 java.lang.System.gc(),参数为pid)

发表评论

表情:
评论列表 (有 0 条评论,275人围观)

还没有评论,来说两句吧...

相关阅读

    相关 jvm总结

    64位系统无jvm内存限制,linux系统可设置最大句柄数开启最大线程 32位系统则对jvm内存有大小限制 年轻代与年老代存放在heap堆中 吞吐量优先的程序一般有

    相关 JVM总结

    1. 堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32

    相关 JVM总结

    1. 堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32

    相关 JVM总结

    1. 堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32

    相关 JVM总结

    背景 网络所关于此篇博客的转载格式实在是太难看了,鉴于此在博客原文格式的基础色 进行格式的调整、优化 堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的

    相关 jvm总结

    > “对于一个开发人员来说,还是有必要了解一下底层的原理,虽然一下子理解不透,没关系,但发现,当你看过几次的时候来说,还是有一定的收获的,本篇文章介绍的不错的,相对其他文章,本

    相关 JVM总结

    年轻代大小选择 响应时间优先的应用:尽可能设大,直到接近系统的最低响应时间限制(根据实际情况选择)。在此种情况下,年轻代收集发生的频率也是最小的。同时,减少到达年老代的对