cmsinitiatingoccupancyfraction
时间: 2023-04-11 14:04:15 浏览: 233
cmsinitiatingoccupancyfraction是指CMS(Concurrent Mark Sweep)垃圾回收器在启动并发标记阶段前,堆空间中被占用的比例。这个比例越高,意味着垃圾回收器需要更频繁地进行回收,可能会影响应用程序的性能。因此,调整这个参数可以优化垃圾回收器的性能。
相关问题
jdk1.8,检查下如下配置有何问题。VM Flags: Non-default VM flags: -XX:CICompilerCount=12 -XX:CMSInitiatingOccupancyFraction=80 -XX:InitialHeapSize=17179869184 -XX:MaxHeapSize=68719476736 -XX:MaxNewSize=22906142720 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=5726273536 -XX:OldSize=11453595648 -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:+UseCMSInitiatingOccupancyOnly -XX:-UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseParallelGC Command line: -D[Standalone] -XX:+UseCompressedOops -XX:+UseCompressedOops -Xms16384m -Xmx65536m -XX:MaxPermSize=8192m -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:gc.log -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Dorg.jboss.boot.log.file=/usr/Wildfly/wildfly-8.2.1.Final/standalone/log/server.log -Dlogging.configuration=file:/usr/Wildfly/wildfly-8.2.1.Final/standalone/configuration/logging.properties
根据你提供的配置,有以下几个问题需要注意:
1. 在 VM Flags 中重复了两次 `-XX:+UseCompressedOops`。建议移除其中一个重复的配置。
2. `-Xms16384m -Xmx65536m` 设置了初始堆大小为 16GB,最大堆大小为 64GB。根据你的需求和服务器的可用内存,这个配置可能是合理的。但请确保服务器有足够的内存来支持这个堆大小。
3. `-XX:MaxPermSize=8192m` 设置了永久代最大大小为 8GB。在 JDK 1.8 中,永久代已被元空间(Metaspace)取代。因此,这个配置对于 JDK 1.8 是无效的,可以移除。
4. `-Xloggc:gc.log` 配置了 GC 日志的输出路径为 `gc.log`。请确保指定的路径在文件系统中是可写的,并且有足够的磁盘空间来存储 GC 日志。
5. 其他的配置项看起来没有问题,但请确保这些配置与你的应用程序和服务器的需求相符合。
需要注意的是,这只是对配置文件的简单检查,具体的配置是否合适还需要根据你的应用程序和服务器的实际情况来确定。
tomcat堆外配置语句
对于Tomcat的堆外配置语句,可以通过修改Tomcat的启动脚本或使用JAVA_OPTS环境变量来进行配置。下面是一些常见的堆外配置语句示例:
1. 设置堆外内存大小:
- 修改启动脚本(如catalina.sh或catalina.bat)中的JAVA_OPTS变量:
```
JAVA_OPTS="-XX:MaxDirectMemorySize=<size>"
```
- 通过环境变量设置:
```
export JAVA_OPTS="-XX:MaxDirectMemorySize=<size>"
```
2. 开启堆外内存回收:
- 修改启动脚本(如catalina.sh或catalina.bat)中的JAVA_OPTS变量:
```
JAVA_OPTS="-XX:+UseLargePages -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSParallelRemarkEnabled -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=<fraction> -XX:+ScavengeBeforeFullGC -XX:+DisableExplicitGC"
```
- 通过环境变量设置:
```
export JAVA_OPTS="-XX:+UseLargePages -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSParallelRemarkEnabled -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=<fraction> -XX:+ScavengeBeforeFullGC -XX:+DisableExplicitGC"
```
请注意,上述示例中的`<size>`和`<fraction>`应该根据实际需求进行替换为适当的值。另外,这只是一些常见的配置语句示例,具体的配置取决于你的应用程序需求和环境设置。