JVM 进程内存 大小计算
JVM进程内存 ≈ JVM程序自身占用内存 + Java非堆 + Java堆(新生代和老年代) + 线程栈+ Java NIO(直接内存)
1. JVM程序自身占用内存
理论上不大 ;字节码
2. JAVA 堆和非堆
法一:可以通过阿里开源开源工具 arthas (还可以查线程) 【arthas使用方法】
法二:可以通过命令 jmap -heap pid
对于 java8 而言,涉及到的参数有:
-Xms
-Xmx
-XX:MetaspaceSize
-XX:MaxMetaspaceSize
3. JAVA线程栈
计算公式:线程数 * Xss(单位:kb) = 线程栈总内存
例如: 线程数 100 ; xss 为 1024kb; 那么内存就为; 100*1024/8 = 12800 KB
获取线程数
法一:可以通过阿里开源开源工具 arthas 【arthas使用方法】
法二:ps -xH | grep {pid} | wc -l
对于 java8 而言,涉及到的参数有:
-xss
4. Java NIO(直接内存)
可以参考:JVM内存占用情况深入分析
对于 java8 而言,涉及到的参数有:
-XX:MaxDirectMemorySize
共 0 条评论