Monitor 监视命令 | 学习笔记

简介: 快速学习 Monitor 监视命令

开发者学堂课程【线上问题排查利器 Alibaba Arthas(下)Monitor 监视命令】学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/747/detail/13201


Monitor监视命令


内容介绍:

一、Monitor 监视命令作用

二、参数说明


一、Monitor 监视命令作用

学完类和类加载器之后,下面来学习一些更为核心的命令

本次课程要学习的是 Monitor,中文翻译过来是显示器、监视器的作用,它的作用是用来监视指定类中方法的执行情况。

这个方法要不停的执行,这样我们才能监视得到,在默认的情况下,Monitor 监视的时间是比较长的,默认是120秒监视一次,就是两分钟,每过两分钟监视一次他的情况,所以 Monitor 命令,不同与之前所学的命令,Monitor 是一种非实时返回的命令,非实时返回的意思就是命令输入以后,它不会立刻返回结果,而是要等到目标Java返回信息之后,才会把信息输出来,而且是不断的进行监视,直到用户按Q或者直到用户输入 Ctrl + C 退出来才可以,他现在的使用也是简单的,因为它的语法参数并不多。

作用:对匹配 class - pattern / method - pattern 的类、方法的调用进行监控。

monitor 命令是一个非实时返回命令,实时返回命令是输入之后立即返回

而非实时返回的命令,则是不断的等待目标 Java 进程返回信息,直到用户输入 Ctrl + C 为止。


二、参数说明

方法拥有一个命名参数[ c :],意思是统计周期( cycle of output ),拥有一个整型的参数值

class - pattern 类名表达式匹配

method - pattern 方法名表达式匹配

[ E :] 开启正则表达式匹配,默认为通配符匹配

[ c :] 统计周期,默认值为120秒

1.第一个是class - pattern

class - pattern就是类的类名,但是指输入类名也不行,这两个参数都要输,一个是类名,一个是方法的名字,是他匹配的一个方式,一般都是输全名,除了用类名和方法名的方式,也允许采用正则表达式的方式

2.-c的参数

默认情况下,不输出的话,是120秒要等很久,所以如果我们想快速得到监视的结果的话我们要根据情况,适当缩短时间(下面的例子将缩短到5秒),[c:]现在主要作用是cycle of output,cycle就是一个周期的意思,所以c也就翻译成cycle周期。

以下面举例来进行一次操作。

过5秒监控一次,类 demo . MathGame 中primeFactors方法

monitor -c 5 demo. MathGame primeFactors

下面来看一下我们的例子,数学游戏中的一个类,其中的一个方法叫primeFactors,接下来来操作一下,在一边数学游戏运行的情况下,另一边来执行。

image.png

Arthas非常人性化,你输入一个 monitor之后,它会自动补全,按table键补全,然后直接回车的话,什么都不会出来,所以要先给一个类的名字。当你记不清类的名字时,比如说先输入demo,不记得的话按table键,然后它就会自动给你补全,因为这个包里面只有这样一个类。

方法的话,比如说P开头的一个方法,忘记的话,输入一个p按table键,再按table键,就会把所有pri开头的方法列出来,所以说此时打起来就会很方便,再敲一个m键,再按一个table,它也会自动补全,那我现在监视的也就是这个方法,但是你现在如果只按照这个方法回车,监测到这个这个类里边有一个方法,总共花了九毫秒,但是你看到他们没有反应,因为这不是一个实时反应的命令,此时他默认的是120秒,也就是两分钟之后才会有反应。

这时候就要等待,现就先退出来,现在我们带一个参数-c,把它设置上五秒钟,五秒钟接收一次它的返回值,这时候再按回车,就可以看到这五秒钟之后会显示输出一个信息出来,然后再等五秒钟,又会显示输出了一次,再等五秒钟,他又会输出来一次,就是一直以这样的周期。

image.png

上图这个里边的意思是, 第一个参数timestamp是返回的时间,精确到秒,年月日时分秒;第二是 class,表示的是类名;那三个是method,表示的是监视的方法方法名;total,是指总共执行了多少次,调用的次数,如图正好是5次,因为这个程序是每一秒调用一次;  success是指他执行成功的次数,这个里面有异常抛出,生成的数小于二的话,就会抛出来一个异常,一旦抛出一个异常就会被认为执行失败,否则成功的,所以这个里面显示的是执行成功的次数; fail 就是执行失败的次数,就是抛出异常的次数;还有一个 avg. rt ( ms ),以毫秒为单位是指平均执行的时间,指五次里面平均时间是多久;最后一个fail - rate,失败的概率失败率,总共失败了多少次,比如说五次失败三次,失败率就是60%。以上就是监视的情况。

image.png

监控的维度说明:

监控项                   说明

Timestamp                时间截

class                     Java 类

method                   方法(构造方法、普通方法)

total                      调用次数

Success                   成功次数

fail                      失败次数

rt                        平均耗时

fail - rate                  失败率

小结monitor 命令的作用:

用来监视一个时间段中指定方法的执行次数,成功次数,失败次数,耗时等这些信息

相关文章
|
4月前
|
缓存 运维 监控
shell监控系统状态和资源使用命令
shell监控系统状态和资源使用命令
63 2
|
2月前
|
安全 Shell Linux
【Shell 命令集合 系统管理 内置命令】Linux 将系统进入挂起(暂停)suspend命令 使用指南
【Shell 命令集合 系统管理 内置命令】Linux 将系统进入挂起(暂停)suspend命令 使用指南
35 1
|
监控 机器人 Java
lite-monitor 一款基于 shell 命令的监控系统
lite-monitor 一款基于 shell 命令的监控系统
98 0
|
缓存 监控 安全
12.4 Linux实时监听进程运行状态(top命令)
ps 命令可以一次性给出当前系统中进程状态,但使用此方式得到的信息缺乏时效性,并且,如果管理员需要实时监控进程运行情况,就必须不停地执行 ps 命令,这显然是缺乏效率的。
399 0
12.4 Linux实时监听进程运行状态(top命令)
|
Shell Linux 网络安全
Linux运行与控制后台进程的方法:nohup, setsid, &, disown, screen
我们经常会碰到这样的问题,用ssh登录了远程的Linux服务器,运行了一些耗时较长的任务,结果却由于网络等的不稳定导致任务中途失败。这是由于在用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。
1230 0
|
Windows
Windows 技术篇-cmd强制关闭端口、解除端口占用方法,cmd查询端口相关的进程pid并杀死进程实例演示
Windows 技术篇-cmd强制关闭端口、解除端口占用方法,cmd查询端口相关的进程pid并杀死进程实例演示
730 0
Windows 技术篇-cmd强制关闭端口、解除端口占用方法,cmd查询端口相关的进程pid并杀死进程实例演示
在windowService用Process.Start()启动程序没有界面-记录
原文:在windowService用Process.Start()启动程序没有界面-记录 1.在服务程序安装时编程实现,ProjectInstaller.cs   using System; using System.
947 0
|
监控 内存技术