集群监控
Posted _NullPointer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集群监控相关的知识,希望对你有一定的参考价值。
一、监控指标
成熟稳健的系统往往需要对集群运行时的各个指标进行收集,如系统的load、CPU的利用率、I/O繁忙程度、网络traffic、内存利用率、应用心跳等。
1、load
系统的load被定义为特定时间间隔内运行队列中的平均线程数,每一个CPU的核都维护了一个运行队列。
一般每个CPU当前的活动线程数不大于3,视为正常;大于5表示系统负载非常高了。
命令:top、uptime
2、CPU利用率
在linux系统下,CPU的时间消耗主要在这几个方面,即用户进程、内核进程、中断处理、I/O等待、Nice时间、丢失时间、空闲等几个部分,而CPU的利用率则为这些时间所占总时间的百分比。
us(User Time)用户时间,表示CPU执行用户进程所占用的时间;
sy(System Time)系统时间,表示CPU在内核态所花费的时间;
ni(Nice Time)调整优先级时间,表示CPU在调整进程优先级的时候花费的时间;
id(Idle Time)空闲时间,表示系统处于空闲期,等待进程运行,这个过程所占用的时间;
wa(Waiting Time)等待时间,表示CPU在等待I/O操作所花费的时间;
hi(Hard Irq Time)硬件中断时间,表示系统处理硬件中断所占用的时间;
si(Soft Irq Time)软件中断时间,表示系统处理软件中断所占用的时间;
st(Steal Time)丢失时间,表示当前虚拟机与该宿主上的其他虚拟机间的CPU争用时间;
命令: top + 1、 jps + top -p x
3、磁盘剩余空间
du -d1 -h /home
-d 指定递归深度,-h按照文件大小单位的格式化输出
4、网络traffic
sar -n DEV 1 1
-n 表示汇报网络状况,DEV查看各个网卡的网络流量,第一个1表示每秒抽样一次,第二个1表示总共取一次,
Average表示平均值。
5、磁盘I/O
iostat -d -k
-d 表示查看磁盘的使用情况, -k表示以KB为单位显示;
6、内存的使用
free -m
linux的内核会将剩余的内存申请为cached,而cached不属于free范畴,用于分配给程序的内存不仅仅只有free,还包括buffers和cached占用的内存;
对于应用来说,更值得关注的应该是虚拟内存swap的消耗,swap内存使用过多,表示物理内存不够用,操作系统将
本应该是物理内存的一部分内存页调度到磁盘上。swap I/O较为频繁,会严重影响系统的性能。
vmstat 可以查看到swap I/O情况
7、qps
query per second,即每秒查询数。qps在很大程度上代表了系统在业务上的繁忙程度,而每次请求的背后,可能对应着多次磁盘I/O、所赐网络请求,以及多个CPU时间片。
8、rt
response time 直接关系前端的用户体验。降低rt时间需要从各个方面入手,例如:部署CDN边缘节点来缩短用户请求的物理路径;通过内容压缩来减少传输的字节数;使用缓存来减少磁盘I/O和网络请求等。
CPU、内存、网络、磁盘、qps和rt,是所有类型的应用都需要关注;如select/ps、update/ps只针对数据库应用,thread running值针对MySql数据库应用,FullGC只针对Java应用。
9、select/ps
请求数量过多,则可以适当的增加读库,以降低系统读的压力;
10、update/ps、delete/ps
请求数量过多,则可以对相应的库进行拆分,将请求分散到其他集群;
11、GC
当GC发生时,JVM上的应用程序的工作线程会暂时停止运行,从外部来看便是程序暂时停止响应。可应对JVm的一些内存参数进行调整和优化,以降低GC时应用停止响应的时间。
以上是关于集群监控的主要内容,如果未能解决你的问题,请参考以下文章