报警知识库


垃圾回收期(GC)异常告警

<h1>报警描述</h1> <p>业务[XX业务],虚拟机[X.X.X.X],用途[XXXX],负责人[XXX]JVM|XX|GC状态异常,状态为垃圾回收时间超过1秒</p> <h1>说明</h1> <p>java会定时使用垃圾回收器(GC)对内存进行清理,通常回收时间都是毫秒级,超过1秒,说明GC工作效率低,系统可能卡顿。</p> <h1>监控对象</h1> <p>Java虚拟机。</p> <h1>监控方式</h1> <p>通过如下命令获取jvm性能信息</p> <pre><code>jcmd 10292 PerfCounter.print</code></pre> <p>输出</p> <pre><code>java.ci.totalTime=126232327 java.cls.loadedClasses=6378 java.cls.sharedLoadedClasses=0 java.cls.sharedUnloadedClasses=0 java.cls.unloadedClasses=72 java.property.java.class.path="C:\TopsecAgent\yajsw\wrapperApp.jar;C:\TopsecAgent\tsm_lib\activemq-core-5.15.2.jar;C:\TopsecAgent\tsm_lib\cglib.jar;C:\TopsecAgent\tsm_lib\commons-codec-1.9.jar;C:\TopsecAgent\tsm_lib\commons-collections-3.2.2.jar;C:\TopsecAgent\tsm_lib\commons-io-2.0.1.jar;C:\TopsecAgent\tsm_lib\commons-lang-2.6.jar;C:\TopsecAgent\tsm_lib\commons-net-3.3.jar;C:\TopsecAgent\tsm_lib\commons-pool-1.5.4.jar;C:\TopsecAgent\tsm_lib\disruptor-3.3.2.jar;C:\TopsecAgent\tsm_lib\dom4j.jar;C:\TopsecAgent\tsm_lib\dubbo-2.5.3.jar;C:\TopsecAgent\tsm_lib\ehcache-2.8.2.jar;C:\TopsecAgent\tsm_lib\groovy-all-1.8.6.jar;C:\TopsecAgent\tsm_lib\guava-18.0.jar;C:\TopsecAgent\tsm_lib\hibernate3.jar;C:\TopsecAgent\tsm_lib\jboss-jsr77.jar;C:\TopsecAgent\tsm_lib\jcl-over-slf4j-1.7.13.jar;C:\TopsecAgent\tsm_lib\je-6.2.31.jar;C:\TopsecAgent\tsm_lib\jms.jar;C:\TopsecAgent\tsm_lib\jna-4.1.0.jar;C:\TopsecAgent\tsm_lib\jnetpcap.jar;C:\TopsecAgent\tsm_lib\jsch-0.1.54.jar;C:\TopsecAgent\tsm_lib\jug.jar;C:\TopsecAgent\tsm_lib\log4j.jar;C:\TopsecAgent\tsm_lib\l" java.property.java.endorsed.dirs="C:\TopsecAgent\jdk\lib\endorsed" java.property.java.ext.dirs="C:\TopsecAgent\jdk\lib\ext;C:\Windows\Sun\Java\lib\ext" java.property.java.home="C:\TopsecAgent\jdk" java.property.java.library.path="." java.property.java.version="1.8.0_131" java.property.java.vm.info="mixed mode" java.property.java.vm.name="Java HotSpot(TM) 64-Bit Server VM" java.property.java.vm.specification.name="Java Virtual Machine Specification" java.property.java.vm.specification.vendor="Oracle Corporation" java.property.java.vm.specification.version="1.8" java.property.java.vm.vendor="Oracle Corporation" java.property.java.vm.version="25.131-b11" ...</code></pre> <p>获取其中如下信息:</p> <pre><code>#新生代累计回收次数 sun.gc.collector.0.invocations=4865 #新生代累计回收时间 sun.gc.collector.0.time=126185779 #老年代累计回收次数 sun.gc.collector.1.invocations=226 #老年代累计回收时间 sun.gc.collector.1.time=10836180</code></pre> <p>进行计算:</p> <pre><code>delta_新生代回收时间 = 本次监控_新生代累计回收时间 - 上次监控_新生代累计回收时间 delta_新生代回收次数 = 本次监控_新生代累计回收次数 - 上次监控_新生代累计回收次数 新生代垃圾回收时间 = delta_新生代回收时间 / delta_新生代回收次数 delta_老年代回收时间 = 本次监控_老年代累计回收时间 - 上次监控_老年代累计回收时间 delta_老年代回收次数 = 本次监控_老年代累计回收次数 - 上次监控_老年代累计回收次数 老年代垃圾回收时间 = delta_老年代回收时间 / delta_老年代回收次数</code></pre> <p>如果“新生代垃圾回收时间”或“老年代垃圾回收时间”超过1秒,则触发“异常”级别告警。</p> <h1>规则</h1> <p>默认为异常级别。</p> <h1>告警举例</h1> <p>业务[HRP平台],虚拟机[192.100.129.1],用途[接口应用]JVM|8888|GC状态提醒,状态为垃圾回收时间超过1秒。</p>

页面列表

ITEM_HTML