Java堆Xmx标志和prod中我的应用程序的diff空间的最大大小

时间:2013-11-08 11:39:49

标签: java heap-memory

a)我知道-Xmx代表最大堆 它是年轻一代(伊甸园+幸存者)和终身一代(老一代)和烫发者的组合吗?

b)我现在怎么能在UAT / Prod中应用程序的不同内存空间的最小/最大大小 1)伊甸园空间
2)行人空间
3)终身任 4)perm gen

4 个答案:

答案 0 :(得分:2)

您可以使用jstat

在外部观看这些尺寸
jstat -gc {pid} 10s

您可以使用

找出pid
jps -lvm

答案 1 :(得分:1)

Perm生成是通过MaxPermSize分配的单独空间。这不包含在-Xmx

-Xmx包括一个伊甸园空间,两个幸存者空间和老一代。

您甚至可以通过--xx:NewRation:来计算单个空格。这是年轻一代和老一代之间的比例。例如,如果n3,则比率为1:3Edensurvivor空格的总大小为 one forth

您还可以使用 jstat 命令了解各个尺寸, VisualVM 等工具也可以为您提供帮助。只需查看图片,其中列出了各个空间细节的图形表示。

enter image description here

答案 2 :(得分:1)

如果您想知道这些空间的大小,请使用java选项-verbose:gc -XX:+PrintGCDetails。 这个documentation将帮助您了解不同代的工作方式。

答案 3 :(得分:0)

通过-Xmx分配的最大堆大小是年轻代和终身代的组合。使用JVM的-XX:MaxPermSize选项单独分配permgen空间。这个问题在这里得到解答:

Is permgen included in -Xmx?

确定JVM中堆中不同代的大小(特别是在远程服务器上)的一种好方法是使用jmap命令:

http://docs.oracle.com/javase/6/docs/technotes/tools/share/jmap.html

以下是我管理的服务器的一些示例输出:

$ sudo jmap -heap 28579

Attaching to process ID 28579, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 1.5.0_07-b03

using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GC

Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 6127878144 (5844.0MB)
   NewSize          = 2147483648 (2048.0MB)
   MaxNewSize       = 2147483648 (2048.0MB)
   OldSize          = 3980394496 (3796.0MB)
   NewRatio         = 15
   SurvivorRatio    = 1024
   PermSize         = 314572800 (300.0MB)
   MaxPermSize      = 314572800 (300.0MB)

Heap Usage:
New Generation (Eden + 1 Survivor Space):
   capacity = 2145452032 (2046.0625MB)
   used     = 2130014864 (2031.3404693603516MB)
   free     = 15437168 (14.722030639648438MB)
   99.28047014010332% used
Eden Space:
   capacity = 2143420416 (2044.125MB)
   used     = 2130014864 (2031.3404693603516MB)
   free     = 13405552 (12.784530639648438MB)
   99.37457197384462% used
From Space:
   capacity = 2031616 (1.9375MB)
   used     = 0 (0.0MB)
   free     = 2031616 (1.9375MB)
   0.0% used
To Space:
   capacity = 2031616 (1.9375MB)
   used     = 0 (0.0MB)
   free     = 2031616 (1.9375MB)
   0.0% used
concurrent mark-sweep generation:
   capacity = 3980394496 (3796.0MB)