f1d*_*ave 9 java linux heap jvm
有一个内存分配问题,我希望你的帮助.我们已经分析了一些顶级服务,我们注意到它们的RES值约为1.8GB,据我所知,这意味着他们当时正在保持1.8GB的内存.如果我们刚刚启动它们(它们基本上是从缓存中读取,进行处理,然后推送到另一个缓存),这样会好的,但是看到我们在CPU密集型处理完成后仍然看到这个,我们想知道它是否意味着某些东西没有像我们预期的那样被GC.
我们使用以下参数运行程序:-Xms256m -Xmx3096m,据我所知,初始堆大小为256,最大堆大小为3096.
现在我会希望看到的是堆成长为最初需要,再缩根据需要为内存变释放(虽然这可能是我的第一个错误).我们实际看到的jvisualvm如下:
我的问题是,为什么我的堆没有像我预期的那样缩小?这不是抢夺Linux盒子上有价值的内存的其他进程,如果是这样,我怎么能解决它?我们有时会看到内存错误,并且这些进程被分配了最"意外"的内存大小,我认为最好从它们开始.
干杯,戴夫.
(请原谅我们对JVM内存调整缺乏了解!)