集群监控--监控指标

来源:互联网 发布:2017网络自制综艺现状 编辑:程序博客网 时间:2024/04/30 09:06

  系统运行的繁忙程度、健康状况,反映在一些列的运行期指标上,不管是CPU负载过高,磁盘I/O过于频繁,或者内存使用过多,但只频繁Full GC,抑或是请求qps过高,系统不堪重负,或网络过于繁忙、丢包率上升等情况。由木桶原理我们可以得知,只要一个地方出现瓶颈,将导致整体的服务质量下降。因此,实时获知这些关键的系统指标便显得尤为重要。一旦某项指标超过假定的阈值,被监控系统捕捉以后,将自动通知相应的开发和运维人员进行处理。

 1. load

  在Linux系统中,可以通过top和uptime命令来查看系统的load值,那什么是系统的load呢?

 系统的load被定义为特定时间间隔内运行队列中的平均线程数

  如果一个线程满足以下条件,该线程就处于运行队列中:

  • 没有 处于I/O等待状态;
  • 没有主动进入等待状态,也就是没有调用wait操作;
  • 没有被终止。

  每个CPU的核都维护了一个队列,系统的load主要由运行队列来决定。假设一个CPU有8个核心,运行的应用程序启动了16个线程,并且这16个线程都处于等待状态,那么在平均分配的情况下,每个CPU的运行队列中就有2个线程在运行。假设这种情况维持了一分钟,那么这一分钟内的系统的load值就为2。当然,load计算的算法较为复杂,因此,这种情况也非绝对。

  load的值越大,也就意味着系统的CPU越繁忙,这样线程运行完以后等待操作的系统下一个时间片段的时间也就越长。一般来说,只要每个CPU当前的活动线程数不大于3,我们认为它的负载是正常的,如果每个CPU的线程数大于5,则表示但钱系统的负载已经非常搞了,需要采取相应的措施来降低系统发负载,以便影响系统的响应速度。

  使用uptime查看系统的load值:

[root@localhost ~]# uptime 07:29:07 up 10 days, 23:51,  1 user,  load average: 0.00, 0.00, 0.00[root@localhost ~]#

load average后面跟的三个值分表表示在过去1分钟、5分钟、15分钟内系统的load值。

2. CPU利用率
  在Linux系统下,CPU的时间消耗主要的这几个方面,即用户进程、内核进程、中断处理、I/O等待时间、Nice时间、丢失时间、空闲等几个部分,而CPU的利用率则为这些时间所占总时间的百分比。通过CPU利用率,能够反映出CPU的使用和消耗情况。
  可以通过top命令来查看Linux系统的CPU消耗情况。

[root@localhost ~]# top | grep CpuCpu(s):  0.2%us,  0.1%sy,  0.0%ni, 99.6%id,  0.0%wa,  0.0%hi,  0.1%si,  0.0%stCpu(s):  0.1%us,  0.1%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%stCpu(s):  0.1%us,  0.2%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.1%si,  0.0%stCpu(s):  0.2%us,  0.2%sy,  0.0%ni, 99.6%id,  0.0%wa,  0.1%hi,  0.0%si,  0.0%s

  其中,CPU后面跟的各个列便是各种状态下CPU所小号时间的占比。
  用户时间(User Time)即us所对应的列,表示CPU执行用户进程所占的时间,通常情况下希望us的占比越高越好。
  系统时间(System Time)即sy所对应的列,表示CPU在内核态所话费的时间,sy的占比较高,通常意味着系统在某些方面设计的不合理,比如频繁的系统调用导致的用户态与内核态频繁的切换。

3. 磁盘剩余空间

4. 网络 traffic

5. 磁盘I/O

6. 内存使用

7. qps

8. rt

9. select/ps

10. update/ps、delete/ps

0 0
原创粉丝点击