This topic created in 3262 days ago, the information mentioned may be changed or developed.
背景:现在公司想让一部分 jetty 应用上容器,然而我们启动限制了堆内存大小,同时限制了容器可用内存大小,在实际使用中发现
容器限制内存>2 倍堆内存,并且使用过程中堆内存未溢出,会出现容器内存使用完毕而此时堆内存仍然剩余
也就是说除了堆内存占用,还有某些未知的内存占用很多,我想找出来,先谢谢 dalao 提供思路,已经好几天没有进展了
6 replies • 2017-07-20 22:52:51 +08:00
 |
|
1
wangdu2012 Jul 20, 2017 via iPhone
你要搞清楚 heap 是 java 虚拟机的,是有回收的。 容器不是虚拟机级别的。容器跑 java 虚拟机有不是只有堆要用。
|
 |
|
3
besto Jul 20, 2017
DirectByteBuffer 不管啦?
|
 |
|
4
doggg Jul 20, 2017
看不太懂题意。如果使用 Java8 的话请考虑 MetaSpace。Java8 的永久代更换为本地内存 MetaSpace。有参数可以限制。
|
 |
|
6
9percent Jul 20, 2017
Jetty 的 buffer pool 是依 block size 倍数分配的, 极端情况下 buffer 的数目可能很大
|