64 位服务器的 MetaspaceSize 的默认值是多少?我在官方文档中找不到。
我观察到,在服务器 JVM 进程中,有时 GC 频率会变高并不断增长。如果我重新启动服务几次,它会恢复稳定。我认为这是由于 JRE 升级。
JVM 堆最大大小设置为 6GB,但是当出现此问题时,我们看到仅使用了 3GB 堆。元空间增长很小,几乎总是满的。我尝试将元空间增加到 1GB,它提高了吞吐量。
我认为发生的情况是 Metaspace 默认设置为非常低的值,因此 GC 启动。每次 GC 发生时,高水位标记都会不断增加(再次增加非常低的量)。
我想设置 MetaspaceSize (不确定当前值是多少)。
Oracle 文档说没有指南可以知道将 MetaspaceSize 设置为什么。但是有没有办法找出设置它的正确值是多少?
我从 Oracle 文档中得到的一个提示是:
If the committed space available for class metadata as a percentage of the total committed space for class metadata is greater than MaxMetaspaceFreeRatio, then the high-water mark will be lowered. If it is less than MinMetaspaceFreeRatio, then the high-water mark will be raised.
但仍然无法弄清楚如何稳定 GCs..我有三个问题:
- 64 位服务器上的默认 MetaspaceSize 是多少?
- 默认比率是多少:MaxMetaspaceFreeRatio、MinMetaspaceFreeRatio 设置为?答:显示Min是40,Max是70
- 如何决定 Metaspacesize 值?