java -Xms512m -Xmx512m
这下应该够用了吧!
要确定两件事
1。虚拟机内存大了不是好事,如果你用不了那么多,垃圾回收的时间是很长的,系统反而会变慢。
2。如果应用程序有内存泄漏,改成1G用户量上去了也会outofmemory
但是,我不知道,java -Xms512m -Xmx512m
是什么意思,能给我解释一下吗?
谢谢
-Xmx java分配内存最大限制(上限)
不指定的话应该是 16m 16m
上面的用词可能不太严谨,基本意思差不多,呵呵
我看到你在某帖子上的环境应该是TOMCAT4以上的版本吧
是不是在/etc/profile 加上 export 。。。?
JAVA_OPTS=-Xms128m -Xmx128m
export JAVA_OPTS
我是在/etc/profile里加入的,我想知道如何才能确定这个参数设置有效?
我做个测试,用了:
out.println("total memory is: " + java.lang.Runtime.getRuntime().totalMemory() / 1024 );
out.println("free memory is:" + java.lang.Runtime.getRuntime().freeMemory() / 1024 );
我设了值是128M,但是我看页面显示“total memory is: 13396 free memory is:9638 ”,也才13M左右,所以不是很确定参数是否有效?
JAVA_OPTS=-Xms128m -Xmx128m
export JAVA_OPTS
当我登陆LINUX时,报错误提示:
bash: -Xmx128m: command not found
于是我改成:
JAVA_OPTS=-Xms128m
export JAVA_OPTS
这样重新登陆时,没有错误提示,但是用上面的方法测试,却又觉得没什么效果?
有知道原因的吗?请赐教。。。。。
使用ps -ax 可以看到是否有效,需要你对linux熟悉。
不好意思,我对LINUX确实不是很熟,我查了下资料,
使用方式:ps [options] [--help]
说明:显示瞬间行程 (process) 的动态
参数:
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的行程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
然后运行,BANQ说的ps -ax ,觉得结果好象都是当前的进程,不知道如何才知道这个参数设置完是否有效?
因为我没有从结果中看到关于JVM的信息,请帮忙,谢谢了。。。
JAVA_OPTS=-Xms128m
但是能根据这个就判断JVM参数有效吗?
还有我后来发现了我原来:
当我登陆LINUX时,报错误提示:
bash: -Xmx128m: command not found
这个地方错误的原因了,应该是:
JAVA_OPTS=-Xms128m-Xmx128m
export JAVA_OPTS
这里不能有空格,加了空格可能是认为第二条命令。。
此时用env查看环境变量,可以观察到:
JAVA_OPTS=-Xms128m-Xmx128m
疑问类似与上面。。。。
根据JDK的文挡:
totalMemory
public long totalMemory()Returns the total amount of memory in the Java Virtual Machine. The value returned by this method may vary over time, depending on the host environment.
Note that the amount of memory required to hold an object of any given type may be implementation-dependent.
Returns:
the total amount of memory currently available for current and future objects, measured in bytes.
但是我运行:out.println("total memory is: " + java.lang.Runtime.getRuntime().totalMemory() / 1024 );
的结果确是
total memory is: 22400 或12400
总是得不到理想的数字,所以我不能很确定通过我上面的方法是否已经有效的设置了JVM参数?
比如:
改写catalina.sh ,我不知道怎么改 在catalina.sh文件的哪个位置改。
我是菜鸟阿
谢谢指教