首先要明确的是used < committed < max,单位是bytes; 其次,各个值的说明如下: init:JVM启动时从操作系统申请的初始内存,也即JVM参数中-Xms设置的值 used:实际使用的内存,包括未被垃圾回收期回收的不可达对象占用的内存,它可以比初始(init)内存小 committed:操作系统层面为当前JVM进程保留的内存 可能等于或
1、-Xbootclasspath示例:-Xbootclasspath参数、java -jar参数运行应用时classpath的设置方法 2、-XX:-HeapDumpOnOutOfMemoryError示例:JVM参数之-XX:+HeapDumpOnOutOfMemoryError(导出内存溢出的堆信息(hprof文件)) 3、-verbose示例:命令查看java的class字节码文件、verbose、synchronize 4、-XX:MaxMetaspaceSize示例...
# HELP jvm_memory_bytes_max Max (bytes) of a given JVM memory area. # TYPE jvm_memory_bytes_max gauge #jvm内存区域的最大字节数 jvm_memory_bytes_max{area="heap",} 8.267825152E9 jvm_memory_bytes_max{area="nonheap",} 1.59383552E9 # HELP jvm_memory_bytes_init Initial bytes of a given...
totalMemory()为当前JVM占用的内存总数,其值相当于当前JVM已使用的内存及freeMemory()的总和,会随着JVM使用内存的增加而增加; freeMemory()为当前JVM空闲内存,因为JVM只有在需要内存时才占用物理内存使用,所以freeMemory()的值一般情况下都很小,而 JVM实际可用内存并不等于freeMemory(),而应该等于maxMemory()-totalMe...
java.lang.OutOfMemoryError: PermGen space--->java 永久代溢出, 即方法区溢出了, 一般出现于大量 Class 或者 jsp 页面, 或者采用 cglib 等反射机制的情况, 因为上述情况会产生大量的 Class 信息存储于方法区。当出现此种情况时可以通过更改方法区的大小来解决, 使用类似 - XX:PermSize=64m -XX:MaxPermSize...
XX:MaxDirectMemorySize 8、JVM调优实例 以下是整理自网络的一些JVM调优实例: 8.1、网站流量浏览量暴增后,网站反应页面响很慢 1、问题推测:在测试环境测速度比较快,但是一到生产就变慢,所以推测可能是因为垃圾收集导致的业务线程停顿。 2、定位:为了确认推测的正确性,在线上通过jstat -gc 指令 看到JVM进行GC 次数...
publicclassMain{publicstaticvoidmain(String[]args){printMemory();byte[]bytes=newbyte[1*1024*1024];System.out.println("Allocate 1024 KB array");printMemory();bytes=newbyte[4*1024*1024];System.out.println("Allocate 4096 KB array");printMemory();}publicstaticvoidprintMemory(){System.out.printl...
最大可用直接内存可以使用参数-X:MaxDirectMemorySize设置,如不设置,默认值为最大堆空间,即-Xmx。当直接内存使用量达到-XX:MaxDirectMemorySize时,就会触发垃圾回收,如果垃圾回收不能有效释放足够空间,直接内存溢出依然会引起系统的OOM。 虽然在访问读写上直接内存有较大的优势,但是在内存空间申请时,直接内存毫无优势...
VM的saveProperties方法读取sun.nio.MaxDirectMemorySize属性,如果为null或者是空或者是-1,那么则设置为Runtime.getRuntime().maxMemory();如果有设置MaxDirectMemorySize且值大于-1,那么使用该值作为directMemory的值;而VM的maxDirectMemory方法则返回的是directMemory的值 ...
-XX:MaxDirectMemorySize -XX:MaxDirectMemorySize=size用于设置New I/O(java.nio) direct-buffer allocations的最大大小,size的单位可以使用k/K、m/M、g/G;如果没有设置该参数则默认值为0,意味着JVM自己自动给NIO direct-buffer allocations选择最大大小 ...