前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云cvm的关于监控指标的相关解释

腾讯云cvm的关于监控指标的相关解释

原创
作者头像
云售后焦俊成
发布2020-08-25 16:01:20
2K0
发布2020-08-25 16:01:20
举报

平常处理服务器的问题遇到的最多的是负载高了,内存高了,io高了等问题,这里最明显的表现就是相关的监控指标了,对于诊断这种问题起到事半功倍的效果。

又因为监控指标也仅仅是指标,并看到具体是什么导致的,所以常用的linux 内部的相关系统命令也是有必要了解和掌握的

1、腾云cvm监控信息

关于cvm的监控指标都是根据云监控侧的一个监控脚本来进行采集的,如果说机器上没有这个脚本或者说用了非腾讯云cvm默认的dns的话,这里我们就看不到其监控信息了,所以如果我们没有特殊需求的话,建议是用腾讯云cvm自己的dns和监控脚本

具体的各种指标含义,见这个文档

https://cloud.tencent.com/document/product/248/6843

这里有个基础cpu利用率,这个是通过宿主机来采集的监控信息,服务器如果挂了,这个监控信息我们还是可以在控制台看到的

2、常用的监控命令

除了以上云上的监控指标介绍外,其实我们还是要重点看下系统内的相关指标是什么意思,才可以更加清楚去排查问题,处理问题。

2.1、top/atop系统监控命令

1)、第一排参数

up:机器已经运行了多长时间

1 user:当前有多少用户存活

load average:cpu平均负载表示在某段时间内正在处理(占有cpu时间)的进程以及等待处理(等待唤醒的进程)的进程数,上面三个数分别表示1分钟、5分钟、15分钟的平均负载,一般关注5分钟或者15分钟的指标就行,可以代表机器的真正压力。

一核就好比一座桥,假如一个cpu可以同时处理100个进程,就好比一座桥可以同时过100个人,如果同时过20个人,那么cpu的负载就是0.2,过100个人的时候,正好达到瓶颈负载1,如果说现在有150个人在过桥,其中有50个人在等待中,那么此时cpu负载就是1.5,虽然100的并发没有变,但是cpu已经无法支撑这么多任务了,会拖长整体的处理速度,如果长时间高负载的话就需要考虑升级配置来增加处理效率了

tasks:总进程数 running:正在运行的进程数 sleeping:睡眠中的任务数 stopped:停止的进程数 zombie:僵尸进程(已经不占用cpu和内存了,但是还未被销毁的进程数,这个状态是每个进程必须经历的,子进程释放掉资源后,但是父进程没有及时回收或者处理,就会出现这种‘Z’状态的进程,如果说父进程在子进程结束之前结束,就会交由系统处理掉了或者说直接kill掉父进程)

2)、第二排参数

%Cpu(s):cpu使用率

us, user: 运行(未调整优先级的) 用户进程的CPU时间

sy,system: 运行内核进程的CPU时间

ni,niced:运行已调整优先级的用户进程的CPU时间

wa,IO wait: 用于等待IO完成的CPU时间

hi:处理硬件中断的CPU时间

si: 处理软件中断的CPU时间

st:底层虚拟系统占用的cpu时间

cpu使用率是最常见的了,可以直接体现cpu的繁忙度,表示某段时间内每个进程所占用的cpu时间百分比,平常碰到最多的就是高cpu使用率了,就拿java进程来说吧,如果java进程长期占用cpu导致高使用率的话,其实就要考虑我的配置能否跟上我的程序了,如果是某个时间段或者某个瞬间出现高使用率的情况,此时需要针对具体情况来分析,比如是否当时有个计算型的操作或者循环类操作等,一般对于java来说有结合linux的相关命令有比较容易定位的步骤

1.jps 获取Java进程的PID。

2.jstack pid >> java.txt 导出CPU占用高进程的线程栈。

3.top -H -p PID 查看对应进程的哪个线程占用CPU过高。

4.echo “obase=16; PID” | bc 将线程的PID转换为16进制,大写转换为小写。

5.在第二步导出的Java.txt中查找转换成为16进制的线程PID。找到对应的线程栈。

6.分析负载高的线程栈都是什么业务操作。优化程序并处理问题

3)竖排参数

PID :进程id

USER :进程所有者

PR :进程优先级

NI :nice值。负值表示高优先级,正值表示低优先级

VIRT (kb): 进程起来时分配的内存,加载的代码、数据等申请的内存,如果进程申请了100M,但实际用了50M,这里就会增加100M,此指标实际并不是真正使用的内存量,VIRT=SWAP+RES

RES(kb) :进程使用的、未被换出的物理内存大小,进程实际在用的进程,如果申请了100M,这个值就会直接增加100M。

SHR :共享内存大小,单位kb

S :进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU : 上次更新到现在的CPU时间占用百分比

%MEM : 进程使用的物理内存百分比

TIME+ :进程使用的CPU时间总计,单位1/100秒

COMMAND : 进程名称(命令名/命令行)

3、atop

因为top是展示实时的动态监控,无法获取历史监控信息,而atop可以做到历史监控信息的保存,如果自己本身有监控系统其实也不用安装atop

3.1、atop安装:

yum install -y atop

今天安装atop的时候居然卡住了。。

卡在这不动了

没办法,不重启机器的情况下处理吧

先把这个进程调度到后台,通过ctrl+z调度到后台,然后执行 ps -aux | grep yum 找到卡住的yum进程,然后kill -9 pid 杀掉

至此认为可以正常启动了,但是还是有报错,如下

通过报错显示看似乎是rpmdb进程挂了,然后去找吧,当时正好在/usr/bin目录下,直接执行了这个rpmdb脚本,但是发现不让这么用,尴尬了··

正好看到提醒,有初始化、有重建,就想重建下吧

rpmdb --rebuilddb

执行后,发现没有报错,然后在去验证yum命令,发现正常了,然后再次安装atop就可以了

3.2、atop配置定时任务,间隔某时间段来拉取监控信息,便于后续查看

启动atop服务

systemctl start atop

配置间隔时间

cat /etc/sysconfig/atop

LOGINTERVA主要用于调整atop监控周期,默认600s采集一次,建议改到1分钟采集一次

日志存储目录(默认)/var/log/atop

默认定时任务如下

/usr/share/atop/atop.daily配置日志保留时间,默认是28天,因为我们有时需要让客户按照这个命令,所以一般情况下为避免长时间运行占用太多磁盘空间,建议改小到7天左右或者直至问题复现后关掉

atop在启动之后,会将采集记录在 /var/log/atop目录中,可执行如下命令查看日志文件

atop -r 日志文件

3.3、atop常用指令

c 按照进程cpu使用率进行降序筛选

m按照进程内存使用率进行降序筛选

d 按照进程磁盘使用率进行降序筛选

a 按照进程资源综合使用率进行降序筛选

n 按照进程网络使用率进行降序筛选(需要额外安装内核模块才支持,默认不支持)

t 跳转到下一个监控采集点

T 跳转到上一个监控采集点

B 指定时间点,格式 hh:mm:ss

3.4、系统资源监控字段含义

详细字段解释参考大佬文档:https://baijiahao.baidu.com/s?id=1658884324200587364&wfr=spider&for=pc

ATOP列:该列显示了主机名、信息采样日期和时间点

PRC列:该列显示进程整体运行情况

sys, user 表示 CPU 在内核态和用户态的运行时间比例

1、proc 为当前总进程数

2、trun表示 running 状态线程数

3、tslpi表示 sleeping interruptible 状态的进线程数

4、tslpu表示 sleeping uninterruptible 状态线程数

5、zombie表示僵尸进程数

6、clones 表示在监控周期(默认10s)内 clone() 系统调用次数

linux 中进程有两种 sleep 状态:

interruptible sleep: 进程接收系统信号,可以被系统信号中断,uninterruptible sleep: 进程不接收系统信号,不可被系统信号中断,包括kill -9 (SIGKILL 信号)。此状态的进程通常在等待系统资源,如磁盘IO或网络IO。

CPU列:该列显示CPU整体(即多核CPU作为一个整体CPU资源)的使用情况,我们知道CPU可被用于执行进程、处理中断,也可处于空闲状态(空闲状态分两种,一种是活动进程等待磁盘IO导致CPU空闲,另一种是完全空闲)

  1. sys、usr字段指示CPU被用于处理进程时,进程在内核态、用户态所占CPU的时间比例
  2. irq字段指示CPU被用于处理中断的时间比例
  3. idle字段指示CPU处在完全空闲状态的时间比例
  4. wait字段指示CPU处在“进程等待磁盘IO导致CPU空闲”状态的时间比例

CPU列各个字段指示值相加结果为N00%,其中N为cpu核数。

cpu列:该列显示某一核cpu的使用情况,各字段含义可参照CPU列,各字段值相加结果为100%

CPL列:该列显示CPU负载情况

  1. avg1、avg5和avg15字段:过去1分钟、5分钟和15分钟内运行队列中的平均进程数量
  2. csw字段指示上下文交换次数
  3. intr字段指示中断发生次数

MEM列:该列指示内存的使用情况

  1. tot字段指示物理内存总量
  2. free字段指示空闲内存的大小
  3. cache字段指示用于页缓存的内存大小
  4. buff字段指示用于文件缓存的内存大小
  5. slab字段指示系统内核占用的内存大小
  6. dirty字段指示需要写回磁盘的脏页用量,这部分内存使用已包含在cache中

SWP列:该列指示交换空间的使用情况

  1. tot字段指示交换区总量
  2. free字段指示空闲交换空间大小

PAG列:该列指示虚拟内存分页情况

swin、swout字段:换入和换出内存页数

DSK列:该列指示磁盘使用情况,每一个磁盘设备对应一列,如果有sdb设备,那么增多一列DSK信息

  1. sda字段:磁盘设备标识
  2. busy字段:磁盘忙时比例
  3. read、write字段:读、写请求数量

NET列:多列NET展示了网络状况,包括传输层(TCP和UDP)、IP层以及各活动的网口信息

  1. XXXi 字段指示各层或活动网口收包数目
  2. XXXo 字段指示各层或活动网口发包数目

4、sar监控命令

这个命令监控的系统组件很多而且很全,是一个全面的监控系统,虽然这些不要求售后掌握,但是客户有很多用这个命令的,而且腾讯云的后端监控有部分也是靠sar来监控的,所以我们要知道这个命令的常用指标的含义,具体可以参考这位大佬写,写的很全,很详细

https://www.jellythink.com/archives/483

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、腾云cvm监控信息
  • 2、常用的监控命令
    • 2.1、top/atop系统监控命令
      • 1)、第一排参数
        • 2)、第二排参数
          • 3)竖排参数
          • 3、atop
            • 3.1、atop安装:
              • 3.2、atop配置定时任务,间隔某时间段来拉取监控信息,便于后续查看
                • 3.3、atop常用指令
                  • 3.4、系统资源监控字段含义
                  • 4、sar监控命令
                  相关产品与服务
                  云服务器
                  云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档