锁定老帖子 主题:Java启动后内存达到2G
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-08-06
我的环境是Suse10 x86_64(8核,16G内存)的环境,jdk也是64位的,部署在jboss5.1,现在启动系统后,java占用的物理内存即达到2个G,但奇怪的是,我换成32位的jdk后,内存就在1G上下,不知道大家是否遇到过这个问题呢? 以下是我配置: -Xms1024m -Xmx2048m -XX:MaxPermSize=512m -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=8 -XX:+UseParallelOldGC 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-08-06
64位默认-server 32位默认-client
|
|
返回顶楼 | |
发表时间:2011-08-07
-Xms1024m
|
|
返回顶楼 | |
发表时间:2011-08-07
http://www.iteye.com/topic/53113
主题:试用一把64位JVM,未见性能提升,还有明显下降 贴子右上角的链接 |
|
返回顶楼 | |
发表时间:2011-08-07
-Xms1024m -Xmx2048m -XX:MaxPermSize=512m -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=8 -XX:+UseParallelOldGC
--------------------------------------------------------- 别的不说,这些参数配置有点不好,如果是HotSpot jdk -Xms -Xmx一般设置为一般大小,-Xss128k有点小吧?-XX:+UseParallelOldGC貌似默认新生代就是ParallelGC, -XX:+UseParallelGC参数多余 |
|
返回顶楼 | |
发表时间:2011-08-08
最后修改:2011-08-08
richard_2010 写道 -Xms1024m -Xmx2048m -XX:MaxPermSize=512m -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=8 -XX:+UseParallelOldGC
--------------------------------------------------------- 别的不说,这些参数配置有点不好,如果是HotSpot jdk -Xms -Xmx一般设置为一般大小,-Xss128k有点小吧?-XX:+UseParallelOldGC貌似默认新生代就是ParallelGC, -XX:+UseParallelGC参数多余 这个不能一概而论。要知道不同厂商JDK,都是有自己的特色的,包括GC的回收策略。 对于SUN JDK来说“ -Xms -Xmx一般设置为一般大小”这个说法还可以,但是对于IBM JDK来说,反而推荐“-Xms1024m -Xmx2048m”这样的设置了。这个还是看要具体情况而定。 |
|
返回顶楼 | |
发表时间:2011-08-08
zlowly 写道 richard_2010 写道 -Xms1024m -Xmx2048m -XX:MaxPermSize=512m -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=8 -XX:+UseParallelOldGC
--------------------------------------------------------- 别的不说,这些参数配置有点不好,如果是HotSpot jdk -Xms -Xmx一般设置为一般大小,-Xss128k有点小吧?-XX:+UseParallelOldGC貌似默认新生代就是ParallelGC, -XX:+UseParallelGC参数多余 这个不能一概而论。要知道不同厂商JDK,都是有自己的特色的,包括GC的回收策略。 对于SUN JDK来说“ -Xms -Xmx一般设置为一般大小”这个说法还可以,但是对于IBM JDK来说,反而推荐“-Xms1024m -Xmx2048m”这样的设置了。这个还是看要具体情况而定。 |
|
返回顶楼 | |
发表时间:2011-08-08
-Xms1024m ,我试过-Xms2048m,效果差不多,系统启动起来后,-Xms1024m的配置大约在1.8G上下, Xms2048m在2.1G左右。
“64位默认-server 32位默认-client” ,是什么意思呢? |
|
返回顶楼 | |
发表时间:2011-08-08
主要是因为以前系统一直用的是32位的jdk,启动起来后内存大概才1G左右;现在就只将jdk换成了64位的,其他未动,不知道为什么启动后就2G了。JVM配置也未改过。
|
|
返回顶楼 | |
发表时间:2011-08-08
justmoon 写道 主要是因为以前系统一直用的是32位的jdk,启动起来后内存大概才1G左右;现在就只将jdk换成了64位的,其他未动,不知道为什么启动后就2G了。JVM配置也未改过。 你配置jvm参数的时候没有声明jvm类型 是-server还是-client,这样就由jvm自动选择。 jvm类型是server 还是client由server-class machine 决定。 server-class machine 的判断标准 1. 2个或者两个以上的cpu 2 2g以上的物理内存 This definition of a server-class machine applies to all platforms, with the exception of 32-bit platforms running a version of the Windows operating system. 由于jvm的server和client类型在初始化的时候有很大不同,如垃圾回收器是否是并行的之类的等等,所以初始时所用的内存大小也不同。 查看jvm类型的最直接方式 java -version 命令 Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode) server Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing) client 参考 Memory Management in the JavaHotSpot™ Virtual Machine 第五章Ergonomics -- Automatic Selections and Behavior Tuning |
|
返回顶楼 | |