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