日常运维需要实时监控机器运行情况,虽然阿里云和亚马逊都有监控大屏,但登录上去再切到对应机器还是比较麻烦,大多数情况查看实时负载时我都是直接登录机器查看,另外在做压测的时候也可以用这些工具监测系统负载状况。
一、Linux系统监控dstat:它是Python写的一个系统工具,可以实时监控cpu、内存、磁盘、网络等系统信息。需要自己安装一下 yum install dstat.
1、--total-cpu-usage cpu使用率
usr:用户进程cpu占比
sys: 内核进程cpu占比
usr+sys>80说明CPU资源不足,需要考虑升级机器
2、--dsk/total- 磁盘读写数
3、--net/total- 网络收发包数
4、--paging- 内存分页统计,理想情况都是0,如果不为0说明内存不太够用了。
5、--system- 统计中断和上下文切换
常用参数
-c:cpu信息统计
-d:磁盘读写统计
-l: 负载统计 Load值一般不要超过CPU的个数
查一个指定进程资源占用情况 top -p 29117
RES:进程占用物理内存大小
%CPU: 进程所占cpu百分比
%MEM: 程所占内存百分比
jstat监控虚拟机运行状况、它显示虚拟机进程中的类装载、内存、垃圾收集等信息,JDK自带的工具
查看gc情况
S0:幸存区0已用空间
S1:幸存区1已用空间
E: 伊甸区已用空间
O:老年代已用空间
M:元空间,使用本地内存
YGC:年轻代GC次数、YGCT:年轻代GC耗时
FGC:FullGC次数、 FGCT:FullGC耗时
GCT: 垃圾回收总耗时
最主要关注FGC的次数,收银台系统刚上线时,因为代码漏洞造成每天触发30多次FGC,如果没有及时处理机器运行一段时间就会造成内存溢出Down机。
统计类的装载情况
jstat -class 29117Loaded Bytes Unloaded Bytes Time 17816 32133.9 162 242.3 14.41
三、MySQL监控 mytop 可以远程连接数据库,不确定是否是账号权限的问题一直连不上AWS上的生产库,下面连接的是测试环境一个数据库
yum install mytop
Queries:服务器处理过的Query总数
qps:每秒处理查询数平均值
Slow: 慢查询总数
Se/In/Up/De Select/Insert/Update/Delte占比
qps now:本周期查询次数
slow qps:本周期慢查询次数
Thread:当前连接线程数量,括号中第一个数值是active连接线程数量
Key Efficiency :表示多少key是从缓存中获取,而不是从磁盘中查询
Bps in/out: 平均流入流出数据量
Now in/out :当前流入流出数据量