JVM 调优

目的是:

减少父GC,最终减少STW

也就是父没了,子肯定就会减少

当full gc是,就可能出现STW, (意思是在GC时,就要停用户线程,比如一个用户下单,这时要GC了,下单过程就有卡顿, 其实就是暂时锁死程序,先GC,清掉没用的。 为什么有这么个机制? 如果没有,一边跑下单线程,一边跑GC,搞不好把下单线程中的对象给清了)

这是打开windows下的监控JVM工具

https://www.bilibili.com/video/BV1Wb4y1B7Xv?p=5&vd_source=297c866c71fa77b161812ad631ea2c25

下面的程序,因为局部变量heapTests是不会释放的,但又在不停的new,最后肯定会OOM。

CC这里是一个插件

结果

60m达到了100M的一半,就触发了xxxxx,就会被放到old区,慢慢的就满了,也就会Full GC

下面是把100M调大到200M,这样就好了。因为60m没有200M一半,不会触发年龄判断,同时,每14s触发年轻代的垃圾回收,同时也会把这60M的一起回收的。

底层用G1垃圾回收机制

相关推荐
XY.散人几秒前
初识Redis · C++客户端list和hash
数据库·redis·缓存
码上飞扬39 分钟前
深入 MySQL 高级查询:JOIN、子查询与窗口函数的实用指南
数据库·mysql
GalaxyPokemon1 小时前
Muduo网络库实现 [十六] - HttpServer模块
linux·运维·服务器·网络
海洋与大气科学1 小时前
【matlab】地图上的小图
开发语言·数据库·matlab
Huazie1 小时前
在WSL2 Ubuntu中部署FastDFS服务的完整指南
服务器·后端·ubuntu
Java知识库2 小时前
Java BIO、NIO、AIO、Netty面试题(已整理全套PDF版本)
java·开发语言·jvm·面试·程序员
Geek__19922 小时前
Sqlite3交叉编译全过程
jvm·数据库·sqlite
夏天里的肥宅水2 小时前
解决方案:远程shell连不上Ubuntu服务器
linux·运维·服务器·ubuntu
牛角上的男孩2 小时前
使用QEMU(8.2.10)调试ARM64 Linux内核6.6.30
linux·运维·服务器
SpikeKing2 小时前
Server - 优雅的配置服务器 Bash 环境(.bashrc)
服务器·bash·bashrc·bash_profile