最近开始在公司一台服务器上部署正式应用,使用Tomcat+Win2003+jdk1.4
服务器内存有8G,领导让这服务器只跑一个应用,虽然这个应用估计用的人不多,但自己希望对其优化,在参考网上文章修改Tomcat配置后,发现tomcat可以利用的内存应该可以更多,本质上就是就是在启动java [xx]的时候所能分配的内存有限制...这可以加启动参数来告诉jvm分配多少内存 -Xmx(最大内存) -Xms(最小内存)等...
但是这里有个问题就想分配多少就分多少的。。。操作系统老师教过我们----32位操作系统一个最大支持4G内存,一个应用最多分配到2G内存,java作为一个程序也一样受此限制...并且不同的jdk厂商,甚至同一个厂商的不同版本对可以分配的内存也不同。。。
至于怎么看自己的机器所支持的内存可以通过java -Xmx[000]M -version来测试
最后我的设置是这样的
CATALINA_OPTS -Xms1536M -Xmx1536M
JAVA_OPTS -Xms1536M -Xmx1536M
此外,网上有的大哥说可以通过换jvm不用hotspot,换成用JRockit或IBM的JVM可以达到更高的内存。。。再或者!可以考虑用64位的操作系统+64位的jdk这样内存限制问题就不存在了!!
但是如果不能用64位,剩余内存很多。。。那我们怎办????
俄 回到原点。。。思考下一个jvm出现超过2G内存的情况是否正常?
是的 我们可以在一台机器上安装多个jvm,然后用nginx等反向代理下!!!这样资源就充分利用了!。。。
服务器内存有8G,领导让这服务器只跑一个应用,虽然这个应用估计用的人不多,但自己希望对其优化,在参考网上文章修改Tomcat配置后,发现tomcat可以利用的内存应该可以更多,本质上就是就是在启动java [xx]的时候所能分配的内存有限制...这可以加启动参数来告诉jvm分配多少内存 -Xmx(最大内存) -Xms(最小内存)等...
但是这里有个问题就想分配多少就分多少的。。。操作系统老师教过我们----32位操作系统一个最大支持4G内存,一个应用最多分配到2G内存,java作为一个程序也一样受此限制...并且不同的jdk厂商,甚至同一个厂商的不同版本对可以分配的内存也不同。。。
至于怎么看自己的机器所支持的内存可以通过java -Xmx[000]M -version来测试
最后我的设置是这样的
CATALINA_OPTS -Xms1536M -Xmx1536M
JAVA_OPTS -Xms1536M -Xmx1536M
此外,网上有的大哥说可以通过换jvm不用hotspot,换成用JRockit或IBM的JVM可以达到更高的内存。。。再或者!可以考虑用64位的操作系统+64位的jdk这样内存限制问题就不存在了!!
但是如果不能用64位,剩余内存很多。。。那我们怎办????
俄 回到原点。。。思考下一个jvm出现超过2G内存的情况是否正常?
是的 我们可以在一台机器上安装多个jvm,然后用nginx等反向代理下!!!这样资源就充分利用了!。。。