日常运维需要实时监控机器运行情况,虽然阿里云和亚马逊都有监控大屏,但登录上去再切到对应机器还是比较麻烦,大多数情况查看实时负载时我都是直接登录机器查看,另外在做压测的时候也可以用这些工具监测系统负载状况。
一、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: 程所占内存百分比
?二、Jvm堆内存
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 29117
Loaded 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 :当前流入流出数据量?
|