- 我正在使用JVM
sunjava-1.6.0_21
运行服务器应用程序。 - 我的应用程序数据量大,充当缓存服务器。因此,它存储了许多长期存在的数据,我们不希望在整个应用程序运行期间进行GC。
- 我设置以下JVM参数
-Xmx16384M
和-Xms16384M
。 - 在所需数据加载完成后,以下是应用程序的内存使用情况
- 总堆空间为:
13969522688
- 最大堆空间为:
15271002112
- 空闲堆空间为:
3031718040
- 长期(旧代)堆存储:
Used=10426MB Max=10922MB Used/Max=95%
旧代使用情况 - 我已确认这是由于实际数据而不是预期获得释放。我的问题是默认情况下JVM对堆空间的大小(它分配了10922MB旧代),这在旧代部分留下了很少的空闲空间。
- 旧代中较少的空闲空间会影响应用程序吗?
- 如果是,我该如何处理?是否应尝试使用JVM调整参数(如
newratio
)并尝试增加旧代可用空间或者有其他方法可以调整应用程序?