- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 tomcat7 和 JRE 1.8 运行 Java WebApp。该应用程序缓存大量数据(~15GB),并支持高吞吐量(~4K/秒)。由于高请求率,在新生代产生大量对象,部分对象在新生代ParNew收集后存活下来,被移动到survivor,最终移动到堆内存中的老年代空间。
这些对象在老一代中不断累积。当老年代快满时,CMS 开始运行,这导致了 stop-the-world GC。这会影响我的应用程序的延迟。
为了避免这种情况,我开始使用 CMSInitiatingOccupancyFraction=85
和 +UseCMSInitiatingOccupancyOnly
。然而,尽管有这两个选项,当老年代已满 85% 时,CMS 不会启动。它仍然发生在老年代几乎满了并且进行 stop-the-world GC 时。我搜索了 CMSInitiatingOccupancyFraction
的局限性,但找不到解释该行为的任何相关链接。请在下面找到我的 tomcat 进程的确切命令行:
jsvc.exec -home /usr/lib/jvm/jre1.8.0_45 -user tomcat7 \
-pidfile /home/ameya/service/2.0.4-SNAPSHOT/logs/catalina-daemon.pid \
-outfile /home/ameya/service/2.0.4-SNAPSHOT/logs/catalina-daemon.out \
-errfile &1 \
-classpath /home/ameya/conf/service:/home/ameya/service/2.0.4-SNAPSHOT/bin/bootstrap.jar:/home/ameya/service/2.0.4-SNAPSHOT/bin/commons-daemon.jar:/home/ameya/service/2.0.4-SNAPSHOT/bin/tomcat-juli.jar \
-Djava.util.logging.config.file=/home/ameya/service/2.0.4-SNAPSHOT/conf/logging.properties \
-XX:+UseConcMarkSweepGC \
-XX:+CMSIncrementalMode \
-XX:+CMSIncrementalPacing \
-XX:+ExplicitGCInvokesConcurrent \
-Djava.awt.headless=true \
-XX:PermSize=1G \
-XX:MaxPermSize=5G \
-XX:+UseCMSInitiatingOccupancyOnly \
-XX:CMSInitiatingOccupancyFraction=85 \
-Xms12G -Xmx24G \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9004 \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Duser.language=en \
-Duser.country=US \
-Dsun.net.inetaddr.ttl=30 \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/tmp/dump.tmp \
-XX:+AggressiveOpts \
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
-Djava.endorsed.dirs= \
-Dcatalina.base=/home/ameya/service/2.0.4-SNAPSHOT \
-Dcatalina.home=/home/ameya/service/2.0.4-SNAPSHOT \
-Djava.io.tmpdir=/home/ameya/service/2.0.4-SNAPSHOT/temp \
org.apache.catalina.startup.Bootstrap
谁能帮我理解为什么 CMS 在老年代已满 85% 时不启动运行?
最佳答案
根据oracle forums增量 CMS 忽略 InitiatingOccupancyFraction。
iCMS 也是 deprecated和 will be removed在 openjdk 9 中。在服务器机器上没有多大意义,因为它主要用于在具有一个或两个内核的处理器上运行的应用程序。
关于Java 8 : CMS does not kick on for old generation even though CMSInitiatingOccupancyFraction specified,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32941229/
我试图实现一个带有淡入淡出图像的幻灯片。 但是淡入的基本功能对我来说不起作用。不透明度属性工作正常。卡住的是不透明度的过渡。 我使用的是装有 XP SP3 的旧 PC,如果这有什么不同的话。我一直在使
我有一个 Posgresql 数据库(我是所有者),我想删除它并从转储中重新创建它。 问题是,有几个应用程序(两个网站,rails 和 perl)定期访问数据库。所以我收到“其他用户正在访问数据库”错
我正在尝试从 google kick start 2018 round A problem 1 Even Digits 解决这个问题。我已将所有代码放在下面,这些代码在 eclipse ide 中运行
我想在“kick”方法中实现英雄躲避的逻辑。对于英雄,设置了一定数量的“躲避”属性,在此基础上设置了其躲避的百分比,示例如下“躲避”弓箭手的几率是 0.6,即 60% 的几率躲避“踢”。如何正确实现此
我有一个很奇怪的问题。我在多台服务器上设置了 puppet 客户端,但其中一台出现问题。当我调用时: root@www ~ # puppet agent --server puppetmaster.d
当消息是特定文本字符串时,我试图踢掉某个成员, 我已经尝试使用 messageAuthor 来禁止/踢他们 client.on('message', msg => { if (msg.conten
这是我的困境... 我希望能够拆分如下所示的字符串: /ban @User "because I told you so" 但是,使用空格、@ 或引号作为字符串分隔符的问题是用户名可能包含大量特殊字符
我一直在升级我以前的所有命令,以使用嵌入而不是正常响应进行响应。 const Discord = require('discord.js') const client = new Discord.Cl
今天刚刚开始使用 JDA v4.1.1_137。我在发出踢腿命令时遇到了麻烦,而其他 YouTuber 在使用它时却取得了成功。我不知道为什么这种事只发生在我身上。 我将 event.getGuild
这是我的服务器端 websocket 脚本: var clients = [ ]; //sample request: ****:8080/?steamid=123456789 var connect
我目前想知道是否有比通过参数 'e' 将 this 范围传递给 lambda 函数然后将其传递给 'funkyFunction 更好的解决方案' 使用 call() 方法 setInterval(fu
我正在阅读Dagger2的源代码,在ScopedProvider中有静态字段UNINITIALIZED这表明 instance字段尚未初始化。我已经阅读并理解了双重检查惰性初始化习惯用法,但为什么有必
我正在尝试在我的裸机 AM1808 上进行一些引脚多路复用,但我似乎无法写入踢脚寄存器?或者,更具体地说,我似乎无法读回我尝试写入的值。 这是我的代码: #define SYSCFG_BASE ((v
我使用声明性管道按计划(使用不同的参数)启动现有作业,因此具有类似以下内容:。但是,这样做的效果是在启动初始作业时运行一次,然后在计划的时间(每月8日运行一次)运行一次。。我想做的是将目标作业(“另一
在手动触发相同的构建并且不存在任何更改后,我在阻止计划构建被自动启动时遇到了一些麻烦。 问题:构建计划在每天凌晨 3 点进行,但前提是进行了任何更改(设置选项“即使自上次构建以来没有任何更改也构建”未
我有一个@Stateless bean,其中的方法需要快速返回状态,但在后台线程中执行长时间运行的任务。我的方法是执行以下操作: 创建一个线程池来执行这些任务,并将线程池设为成员变量: final E
我是 Spring 新手。我最近学习了使用Spring 3.1来实现LDAP身份验证。我被告知要自定义身份验证,这样如果来自数据库中 IP 地址的用户来到该站点,他/她将自动登录(不是我的想法,我被命
我想在我关注文本区域之前触发一个事件(即在键盘出现在 iOS 上之前)。 这可能吗? 我处理焦点的代码在这里: $(document).on('focus', 'textarea', function
我正在使用 tomcat7 和 JRE 1.8 运行 Java WebApp。该应用程序缓存大量数据(~15GB),并支持高吞吐量(~4K/秒)。由于高请求率,在新生代产生大量对象,部分对象在新生代P
我是一名优秀的程序员,十分优秀!