9

请教一个问题,你们启动 Java -Xms -Xmx 是如何设定的

 3 years ago
source link: https://www.v2ex.com/t/796419
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
请教一个问题,你们启动 Java -Xms -Xmx 是如何设定的

V2EX  ›  Java

请教一个问题,你们启动 Java -Xms -Xmx 是如何设定的

  0576coder · 1 天前 · 978 次点击

4 核 8G 我那边启动参数-Xms -Xmx 都是 4G

应用是 spring boot 没有使用操作堆外内存的情况

这样导致一个问题就是应用的内存其实不会随着请求增加 导致内存上升,感觉这样是不是有点浪费内存

本人 java 新手,不懂 jvm 我看别人复制粘贴的 jvm 优化就是初始分配跟最大分配的堆内存设置一样,这真的有效果么

11 条回复    2021-08-18 16:45:18 +08:00

ikas

ikas   23 小时 54 分钟前

-Xmx 配置为可以处理自己业务的最大内存...然后-Xms 与其一样..没什么浪费之说..那个内存反正闲着也是闲着

0576coder

0576coder   23 小时 48 分钟前

@ikas
比如你内存 8G 你总不能-Xms -Xmx 都是 4G 的话 那么系统内存就是一直在 40% 上下

ikas

ikas   23 小时 31 分钟前

@0576coder 内存就是给你这个应用跑的...除非你这个服务器要跑多个应用?就算是多个那也要根据最大内存考虑...
所以就算占用 40%也没事啊........配置一样就是为了减少 gc 操作...这个内存不存在什么浪费之说

sagaxu

sagaxu   16 小时 47 分钟前

Xmx 太小,导致频繁 GC,增加延迟
Xmx 太大,full gc 停顿太久,抖动明显

cheng6563

cheng6563   14 小时 36 分钟前

jvm 一个很大诟病就是难以把已 gc 的内存还给操作系统。
你如果把 Xmx 设置成 4G,就算实际你程序只会用 1g 也会因为内存碎片等各种各样的原因给你占到 4G 去,并且一直占着不回收。
在 Java12 之后的版本加-XX:-ShrinkHeapInSteps 参数可以更激进地归还内存,但效果一般。
换 openj9 效果较好,但 openj9 的 1.0 正式版不知道何年何月发布。

Oktfolio

Oktfolio   14 小时 7 分钟前

4 核 8G 默认给的这么多 -Xms4g -Xmx4g -Xmn2g

0576coder

0576coder   14 小时 6 分钟前

@cheng6563
很好奇你们是如何设置的

0576coder

0576coder   14 小时 6 分钟前

@sagaxu
可以请教下你们线上是如何设置的吗

sagaxu

sagaxu   13 小时 50 分钟前 via Android

@0576coder 内部管理后台 1G,标准服务 2G,高流量或逻辑复杂服务 4G

chendy

chendy   8 小时 31 分钟前

Xms Xmx 设置一样的,外加一个 XX:+AlwaysPreTouch,内存给够让它好好干活就完事了

0576coder

0576coder   7 小时 47 分钟前

@chendy
XX:+AlwaysPreTouch 这个参数加了后 你们项目启动会变慢多少

关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1707 人在线   最高记录 5497   ·  

创意工作者们的社区

World is powered by solitude

VERSION: 3.9.8.5 · 22ms · UTC 16:32 · PVG 00:32 · LAX 09:32 · JFK 12:32
♥ Do have faith in what you're doing.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK