jvm参数如何设置,服务器4g内存

无爱大叔 2018-02-05 12:46:04
linux,catalina.sh设置如下:
JAVA_OPTS="-server -Xms512m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:-UseGCOverheadLimit -Xverify:none -Xnoclassgc -XX:+DisableExplicitGC -XX:+PrintGCDetails -Xloggc:/home/tlmytrd6/apache-tomcat-8.0.33/logs/tomcat-gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -Djava.awt.headless=true"

这样合理吗?请大神贴一下4g内存的配置
...全文
3051 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
能源恒观 2019-03-30
  • 打赏
  • 举报
回复
这个需要看服务器监控参数吧,和业务有很大关系
verejava 2018-07-06
  • 打赏
  • 举报
回复
JAVA_OPTS="-server -Xms2048m -Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=512m"
M_Dust 2018-06-30
  • 打赏
  • 举报
回复
这个和你具体做的项目,以及项目实际的内存占用,还有机器上所有进程的内存分布有关系,你设置这个只是在给jvm设置内存参数,如果linux机器上其他进程本来就占用了很多,jvm参数设置再高也是没用的
verejava 2018-06-27
  • 打赏
  • 举报
回复
取决于你 物理内存有多大。 比如 4G 物理内存 -Xms2048m -Xmx2048m

一边运行 一边调优
你好毒你好毒 2018-04-12
  • 打赏
  • 举报
回复
首先你考虑你的应用是什么性质的应用,是否有长连接(长连接相关的对象会占用heap内存很长时间),还有程序中是否经常创建比较大的对象,如int[] ints = new int[1024*1024] 1M的对象,堆中的年轻代和年老代的比例,年轻代的eden,s0,s1的比例分配,通过压力测试,然后使用jstat命令监控jvm回收情况,如果发生了oom则jdump出当前jvm运行镜像,查看程序中运行的情况,不断的调试,达到理想的指标比如一天的总gc时间不超过3-5秒等
X元素 2018-03-22
  • 打赏
  • 举报
回复
jvm的配置应该跟你应用具体在做什么关系比较大。
angel103108 2018-03-22
  • 打赏
  • 举报
回复
你把参数都设置成1024,试试,初始化的是比较小的,一般不超过内存的20%。

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧