CPU.xxx
cpu.idle
cpu.idle表示除硬盘IO等待时间以外其它等待时间,这个值越大,表示cpu越空闲,还可以执行更多的任务,反之亦然,此处我们falcon展示的是idle的波动情况,
cpu.busy
与cpu.idle相对,他的值等于100减去cpu.idle。
cpu.steal
cpu.steal表示被同一宿主机上的其他vm所占用的超出指定cpu配额的程度,例如一台宿主机中每台vm的cpu配额是25%,但是每个vm可以使用超过25%的真实cpu时间片,此时对于其他的vm来说就出现了cpu.steal。原因可能是你的虚拟机需要更多的cpu配额,此时要看是不是st在同一宿主所有的vm上都涨了;还有可能是物理宿主机超卖,此时要看是不是只有一部分vm的st陡增。
如图可以看出午高峰和晚高峰steal会比较高。
load.xxx
此监控项集合包括1min,5min,15min的负载值,每一种又分为总的load和每个cpu的load,计算方法:
(读取/proc/loadavg中的前三项值,分别为1min,5min,15min的总负载如load.1min ,每个cpu所占load(如load.1minPerCPU)就是总负载/cpu核数量)
命令行:cat /proc/loadavg
4.61 4.36 4.15 9/84 5662
参数 解释
lavg_1 (4.61) 1-分钟平均负载
lavg_5 (4.36) 5-分钟平均负载
lavg_15(4.15) 15-分钟平均负载
nr_running (9) 在采样时刻,运行队列的任务的数目,与/proc/stat的procs_running表示相同意思
nr_threads (84) 在采样时刻,系统中活跃的任务的个数(不包括运行已经结束的任务)
last_pid(5662) 最大的pid值,包括轻量级进程,即线程。
假设当前有两个CPU,则每个CPU的当前任务数为4.61/2=2.31
JVM
JVM相关指标 | 描述 |
---|---|
jvm.gc.count | GC的次数 |
jvm.gc.time | GC的时间,单位毫秒 |
jvm.younggc.count | 年轻代GC的次数 ,包括的GC算法(Copy,ParNew,PS Scavenge,G1 Young Generation) |
jvm.younggc.time | 年轻代GC的时间,单位毫秒 |
jvm.fullgc.count | 年老代GC的次数 ,包括的GC算法 |
jvm.fullgc.time | 年老代GC的时间,单位毫秒 |
jvm.memory.used | 内存使用总量 |
jvm.memory.used.percent | 内存使用总量占比 |
jvm.thread.count | JVM的线程数 |
jvm.thread.deadlock.count | deadlock线程数 |
JVM 内存 相关指标
JVM 内存指标 | 描述 |
---|---|
jvm.memory.used | 内存使用总量 |
jvm.memory.used.percent | 内存使用总量占比 |
jvm.memory.nonheap.used | nonheap使用总量 |
jvm.memory.nonheap.used.percent | nonheap使用总量占比 |
jvm.memory.oldgen.used | oldgen使用总量 |
jvm.memory.oldgen.used.percent | oldgen使用总量占比 |
jvm.memory.oldgen.used.percent.after.fullgc | 触发fullgc之后使用oldgen的内存使用占比,此时基本剩下不可以回收对象 |
jvm.memory.eden.used | eden使用总量 |
jvm.memory.eden.used.percent | eden使用总量占比 |
jvm.memory.survivor.used | survivor使用总量 |
jvm.memory.survivor.used.percent | survivor使用总量占比 |
jvm.memory.perm.used | perm使用总量 |
jvm.memory.perm.used.percent | perm使用总量占比 |
jvm.nio.directbuffer.used | directbuffer使用总量,这个一般是nio一些框架会用到 |
jvm.nio.mapped.used | mapped使用总量,这个一般是使用java内存文件映射用到 |
nonheap:方法区,各个线程共享的内存区域,用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
perm:主要是存放静态的类信息和方法信息,静态的方法和变量,final标注的常量信息等
JVM Thread 相关指标
JVM Thread 相关指标 | 描述 |
---|---|
vm.thread.count | 线程 |
jvm.thread.daemon.count | daemon线程数 |
jvm.thread.totalstarted.count | totalstarted线程数 |
jvm.thread.new.count | new线程数 |
jvm.thread.runnable.count | runnable线程数 |
jvm.thread.blocked.count | blocked线程数 |
jvm.thread.waiting.count | waiting线程数 |
jvm.thread.time_waiting.count | time_waiting线程数 |
jvm.thread.terminated.count | terminated线程数 |
jvm.thread.deadlock.count | deadlock线程数 |
http://fangjian0423.github.io/2016/06/04/java-thread-state/
System 相关指标
System 相关指标 | 描述 |
---|---|
system.load.average | 系统load,如果是docker,此指标收集的物理机的load |
cpu.system.load.percent | 系统所有进程占用cpu的百分比 |
cpu.jvm.load.percent | jvm占用cpu的百分比 |
system.process.used.phyical.memory | 系统使用的物理内存 |
system.process.used.swap.size | 系统使用的swap内存 |
网络
ss.estab
此监控项表示本机已建立的连接数,可以使用ss | grep ESTAB | wc -l 查看
数据获取方式,在机器上执行命令:ss -s
TCP: 2837 (estab 89, closed 2672, orphaned 0, synrecv 0, timewait 2648/0), ports 647
ss.closed 表示已经关闭的TCP连接数(closed 2672)
ss.timewait 表示处于等待状态的TCP连接数(timewait 2648)