对于 spring web 应用, jvm old generation 是不是应该设置小一点比较合理?

2021-06-17 14:58:10 +08:00
 pmispig
比如 Xmx4g , old generation 应该 512m 就够了?
看网上很多都说建议 1 比 1. 像 web 应该,持久化的对象应该不太多吧?有点疑惑.
1523 次点击
所在节点    Java
8 条回复
fkname
2021-06-17 15:43:49 +08:00
一般都是老年代比新生代大吧,因为老年代会接收新生代的对象,如果老年代空间不足会导致 oom
linbiaye
2021-06-17 15:58:52 +08:00
具体情况具体分析吧,web 大多数请求生成的 object 都是用完就丢,old generation 都是 spring 的 bean 和容器生成的 object,确实不用太大,4g 先给个 1g 然后观察下是否可以继续缩减。
hhjswf
2021-06-17 16:58:46 +08:00
@fkname 老年代满了不是 full gc 吗
securityCoding
2021-06-17 19:29:34 +08:00
这是条不归路,上 G1
fkname
2021-06-17 19:40:27 +08:00
@hhjswf full gc 后还是不够呢?
chendy
2021-06-17 20:48:21 +08:00
看用不用应用内缓存( guava cache 之类的),用的话多给点,不用的话少给
注意观察 gc 情况慢慢调就行
tachikomachann
2021-06-17 21:00:56 +08:00
设一下 xmx,xms 和一些常见参数,然后线上运行一段时间看看,或者压测看下结果。
很多应用的使用场景还不需要调优。
hdfg159
2021-06-20 19:58:32 +08:00
毕竟单例对象可能较多,按照默认 1 比 1 就行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/783985

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX