集群监控指标(一)
来源:互联网 发布:软件怎么root 编辑:程序博客网 时间:2024/05/17 22:16
系统运行的繁忙程度、健康状态,反映在一系列的运行期指标上,不管是CPU负载过高,磁盘I/O过于频繁,或者内存使用过多,导致频繁Full GC,抑或是请求gqs过高,系统不堪重负,或网络过于繁忙、丢包率上升等情况。
1、load
在linux系统中,可以通过top和uptime命令来查看系统的load值。
系统的load被定义为特定时间间隔内运行队列中的平均线程数,如果一个线程满足以下条件,该线程就会处于运行队列中:
1、没有处于I/O等待状态
2、没有主动进入等待状态,也就是没有调用wait操作;
3、没有被终止。
每个CPU的核都维护了一个运行队列,系统的load主要由运行队列来决定。假设一个CPU有8个核,运行的应用程序启动了16个线程,并且这16个线程都处于运行状态,那么每个cpu就是2个线程在运行,假设这种情况维持了1分钟,那么这1分钟的系统load值就是2.
load值越大,就意味着系统的cpu越繁忙,这样线程运行完以后等待操作系统分配下一个时间片段的时间也就越长。一般来说,只要每个cpu的活动线程数不大于3,我们认为它的负载是正常的,如果每个cpu的线程数大于5,则表示当前系统的负载已经非常高了,要想办法降低负载,以便影响系统的响应速度。
使用uptime查看系统的load:
uptime
03:37:27 up 34 days, 17:11, 2 users, load average: 0.00, 0.01, 0.05
load average后面跟的三个值分别表示过去1分钟,5分钟,15分钟内系统的load值。
2、cpu利用率
可以通过top命令来查看Linux系统的cpu消耗情况:top | grep Cpu
[ec2-user@ip-172-31-17-239 ~]$ top | grep Cpu
Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu(s): 0.3%us, 0.0%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.3%hi, 0.0%si, 0.0%st
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
各个列的含义:us(user time),表示cpu执行用户进程所占用的时间,通常情况下希望us的占比越高越好
sy(system time)即sy所对应的列,表示cpu在内核状态所花费的时间,sy的占比较高,通常意味着系统在某些方面设计的不合理,比如频繁的系统调用导致的用户态与内核态的频繁切换。
ni(nice time)表示系统在调整进程优先级的时候所花费的时间。
id(idle time)表示能够处于空闲期,等待进程进行,这个过程所占用的时间。当然,我们希望id的占比越低越好。
wa(wait time)表示cpu在等待I/O操作所花费的时间,系统不应花费大量的时间来进行等待,否则便表示可能有某个地方设计不合理。
hi(hard ira time)表示系统处理硬件中断所占用的时间。
si(soft irq time)表示系统处理软件中断所占用的时间。
st(steal time)是在硬件虚拟化开始流行后操作系统新增的一列,表示被强制等待虚拟cpu的时间,此时hypervisor正在为另一个虚拟处理器服务。如果st占比较高,则表示当前虚拟机与该宿主上的其他虚拟机间的cpu争用较为频繁。
对于多个或者多核cpu的情况,常常需要查看每个cpu的利用情况,此时可以按1,便可以查看到每个核cpu的利用率:
Cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu0 : 0.7%us, 0.0%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu0 : 0.0%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
默认情况下top是按照进程来显示cpu的消耗情况的,按shift+H,可以按照线程来查看cpu的消耗情况,这一点对于java来说很有用。
[ec2-user@ip-172-31-17-239 ~]$ top -p 7028
top - 14:17:32 up 87 days, 3:51, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 12 total, 0 running, 12 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 606920k total, 566432k used, 40488k free, 138404k buffers
Swap: 0k total, 0k used, 0k free, 161496k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7042 root 20 0 1218m 110m 5912 S 99.9 18.7 16:27.69 java
7028 root 20 0 1218m 110m 5912 S 0.0 18.7 0:00.00 java
7029 root 20 0 1218m 110m 5912 S 0.0 18.7 0:01.28 java
7031 root 20 0 1218m 110m 5912 S 0.0 18.7 1:30.82 java
7032 root 20 0 1218m 110m 5912 S 0.0 18.7 0:00.03 java
-p选项可以指定查看的进程。
- 集群监控指标(一)
- 集群监控--监控指标
- nmon for SUSE Linux监控指标总结(一)
- 集群式数字监控应用模型研究(一)
- 集群cpu使用率监控系统的简单实现(一)被监控端的实现
- 股票指标总结(一)
- Linux主要性能指标监控
- oracle优化-----监控指标
- oracle优化-----监控指标
- Linux主要性能指标监控
- 服务器资源监控指标
- Weblogic常用监控指标
- nomn监控指标介绍
- loadrunner性能监控指标
- mysql性能监控指标
- Weblogic常用监控指标
- Weblogic监控指标列表
- Weblogic常用监控指标
- 技术管理者应具备哪些能力?
- CRichEditCtrlEx支持静态表情聊天类的使用
- 数据结构算法代码实现——循环链表、双向链表(五)
- 从子类中筛选出不符合基类的项
- oracle 体系结构详解
- 集群监控指标(一)
- EXTjs 提交的方式
- 04-树7. Search in a Binary Search Tree (25)
- 介绍几个在线画流程图的工具
- VC 仿QQ窗口靠边自动收缩隐藏效果
- 设计模式C++实现-解释器模式
- 《MYCAT权威指南》与MYCAT开放电商项目
- Android后台发送短信
- Struts2+ExtJS+Ajax 登录操作例子