我现在用的是阿里云的centos, 内存只有[b]512M[/b]。
现在存在内存溢出的问题。 就是当使用thumbnail处理图片的时候。
我测试了一下, 大概是传150K以上的图片的时候, heap内存就会用到大约100M。
测试代码如下:
我在网上查了一下, 貌似是说jvm会调用系统物理内存的[b]最多[/b]1/4作为heap内存。
所以我想修改一下这个参数、
但是发现修改了之后就会启动不了tomcat。
研究了很久, 才发现, 原来设置的内存不能超出系统所能提供的内存。
下面是我设置的参数:
这里我如果设置-Xms为256m,tomcat就会直接启动不了。
看来这系统提供不了最大256M的内存。
但是设置为128m,就会导致150K以上的图片依然不能上传,会报出OOM错误。
最后设置为140m, 试了一下居然可以了。。300K的也可以上传处理。但是600K的不行。
先运行一段时间试试, 看看会不会出什么问题。
=============================
5/3
刚关闭tomcat就出错了。
[img]http://dl2.iteye.com/upload/attachment/0096/7155/5668481f-1d32-3604-ba44-45c0ceaf8667.jpg[/img]
把-Xms64m去掉。
再次启动测试关闭。
就正常了。
现在存在内存溢出的问题。 就是当使用thumbnail处理图片的时候。
我测试了一下, 大概是传150K以上的图片的时候, heap内存就会用到大约100M。
测试代码如下:
System.out.println("\tCurrent Heap Size in MB: "+(Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory())/(1024*1024));
我在网上查了一下, 貌似是说jvm会调用系统物理内存的[b]最多[/b]1/4作为heap内存。
所以我想修改一下这个参数、
但是发现修改了之后就会启动不了tomcat。
研究了很久, 才发现, 原来设置的内存不能超出系统所能提供的内存。
下面是我设置的参数:
# OS specific support. $var _must_ be set to either true or false.
JAVA_OPTS="-Xms64m -Xmx140m" //-Xms64m会影响到关闭tomcat。见下面
cygwin=false
这里我如果设置-Xms为256m,tomcat就会直接启动不了。
看来这系统提供不了最大256M的内存。
但是设置为128m,就会导致150K以上的图片依然不能上传,会报出OOM错误。
最后设置为140m, 试了一下居然可以了。。300K的也可以上传处理。但是600K的不行。
先运行一段时间试试, 看看会不会出什么问题。
=============================
5/3
刚关闭tomcat就出错了。
[img]http://dl2.iteye.com/upload/attachment/0096/7155/5668481f-1d32-3604-ba44-45c0ceaf8667.jpg[/img]
把-Xms64m去掉。
再次启动测试关闭。
就正常了。