Java内存大小限制

我们在运行Java程序时,特别是跑app server时,经常需要调大JVM的heap大小。通过-Xms256m -Xmx256m的参数形式区设置heap的大小,还有-XX:PermSize=256m -XX:MaxPermSize=256m的参数形式设置perm space的内存大小。


但是从操作系统的角度去考虑,一个运行的进程,其可以申请的进程内存空间大小是受限。而不是可以随意的申请。

在Linux系统中可以使用ulimit -a去手动设置进程可以申请的进程内存空间大小,但是在windows系统上,我目前还不知道怎么手动去设置这个值。知道的朋友可以告诉我一下。


在Windows xp系统中(其他的Window版面没试过),一个进程可以申请的进程内存空间不能超过物理内存的一半。对有JVM而言,就是-Xmx与 -XX:MaxPermSize之后不应该超过物理内存的一半,考虑到-Xmx与 -XX:MaxPermSize只是JVM内存的绝大部门,而不是全部。所以-Xmx与 -XX:MaxPermSize之和应该限制在略小于物理内存一半的位置。

你可能感兴趣的:(随笔)