1. jmx参数监控指标
通过jmx采集java进程的jvm信息,包括gc耗时、gc次数、gc吞吐、老年代使用率、新生代晋升大小、活跃线程数等信息。
Counters | Type | Notes |
---|---|---|
parnew.gc.avg.time | GAUGE | 一分钟内,每次YoungGC(parnew)的平均耗时 |
concurrentmarksweep.gc.avg.time | GAUGE | 一分钟内,每次CMSGC的平均耗时 |
parnew.gc.count | GAUGE | 一分钟内,YoungGC(parnew)的总次数 |
concurrentmarksweep.gc.count | GAUGE | 一分钟内,CMSGC的总次数 |
gc.throughput | GAUGE | GC的总吞吐率(应用运行时间/进程总运行时间) |
new.gen.promotion | GAUGE | 一分钟内,新生代的内存晋升总大小 |
new.gen.avg.promotion | GAUGE | 一分钟内,平均每次YoungGC的新生代内存晋升大小 |
old.gen.mem.used | GAUGE | 老年代的内存使用量 |
old.gen.mem.ratio | GAUGE | 老年代的内存使用率 |
thread.active.count | GAUGE | 当前活跃线程数 |
thread.peak.count | GAUGE | 峰值线程数 |
2. 系统负载能力
系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上RUNNABLE、RUNNING多少进程)的平均线程数。如果一个进程满足以下条件则其就会位于运行队列中:
- 它没有在等待I/O操作的结果
- 它没有主动进入等待状态(也就是没有调用’wait’)
- 没有被停止(例如:等待终止)
Counters | Type | Notes |
---|---|---|
load.1min | GAUGE | 1分钟内监测系统CPU负载能力 |
load.5min | GAUGE | 5分钟内监测系统CPU负载能力 |
load.15min | GAUGE | 15分钟内监测系统CPU负载能力 |
应该查看5或15分钟的平均值。坦白说,若一分钟的CPU 负载值达到1,还是可以的。但是若15分钟的负载平均值都在1.0以上,那么你需要进行干预和处理了。(当然,对于多核处理器的系统,该值将变为1.0*CPU核心数目)。
监控指标:若是单核处理器:
-
0.70:需要注意并排查原因 。 如果平均负载保持在> 0.70以上,那么应该在情况变得更糟之前进行调查。
-
1.00: 不紧急,需要处理。如果平均负载保持在1.00以上,需要查找问题原因并立即解决。否则,你的服务器可能在任何时候出现性能问题。
-
5.0:紧急状态,立即处理。如果平均负载高于5.00,那么你的系统马上就要崩溃了,很有可能系统挂机或者hang死。因此需要立即处理这种情况,千万不要让你的系统负载达到5!
因此,核数对于解释平均负载非常重要.我如何知道我的系统有多少个核?
cat /proc/cpuinfo
可以获得系统的CPU信息。
若只想得到CPU核数,可以运行: grep 'model name' /proc/cpuinfo | wc -l
3. CPU的监控指标
Counters | Notes |
---|---|
cpu.idle | idle就是cpu的空闲时间 |
cpu.iowait | cpu的io等待时间 |
cpu.switches | cpu的切换时间 |
cpu.busy | 与cpu.idle相对,他的值等于100减去cpu.idle |
网友评论