00:00
好,那说完这个技术指令之后啊,咱们下边来看一看跟GM相关的啊,也就是说我们在进行这个Java进程的一个监控的时候,最感兴趣的,最关心的这样的一波指令啊,GM相关的这些指令都有哪些?这儿呢,我是把这些指令呢都列出来了,关于每一个指令它的作用是什么,这呢也有一个说明,哎,当然呢,看我这也行,或者呢,直接来看咱们这个官方这个文档,诶这个文档这块呢,也列出来了啊,其实跟我这里边划分的这个维度呢是一样的啊GM相关的啊有这样一些,那具体的每一个指令呢,怎么去使用啊,大家呢,直接你点击开它都有相关的一些这个案例说明。对吧?哎,相关案例说明这个呢,我觉得大家这个自学的能力是完全没有问题的啊,所以说呢,这里边儿我们也就挑着给大家去讲就可以了。另外呢,我们强调一点,就是说,虽然说咱们这里边讲这个阿尔萨斯呢,可能相较于其他前面这些工具呢,花的时间并不多,那是因为呢,咱们已经有前面这样的一些工具的呃底子的一个积淀了,包括呢,对于这个Linux常见这些指令的一个熟悉,所以说大家在上手这个阿尔萨斯的时候呢,诶并不感觉到困难啊,我们花的时间呢少了,但是这个时间少并不意味着这个阿尔萨斯不重要啊,这个大家一定要明确啊,一定要明确啊,那现在呢,也讲究叫什么学呃,活到老,学到老对吧,不像以前了啊,哎,这个新知识呢,现在很多,你要想不被这个社会淘汰呢,也需要不断的去呃学习充实自己的这个技能啊,那这里边儿这个自学的能力呢,哎,是比较重要的,哎,所以这里边呢,大家诶关于这里边常见的一些指令啊,这个我没讲到的,诶大家下来呢,诶也要去熟悉熟悉啊,在真正自己开发场景当中啊,去测试测试,用一用啊就可以了,好,那这个GM相关的有这样一些首当其冲的呢,叫这个dashboard的,那那我们这里边呢,就来做一个相关的这个测试了。
01:44
好,首先的话呢,这里边儿我登录,嗯,咱们这个。程序是吧,呃,咱这是OM test,呃,刚才呢是已经出现OM了,我这呢把它又重新跑起来了,跑起来之后呢,我又诶这个。访问了它是吧,也登录上了就啊好登录上以后呢,现在我们访问的就是这个OM的这样的一个T这样一个进程,好基于这个进程呢,现在我们来进行测试,首先在我们提到这个叫哎,当然是ball的是吧,就它吧,哎这个我们做一个回车。
02:12
啊,这里边呢,大家就能看到相关的一些这个数据了,对吧,那这个daboard怎么去理解呢?这个我们就要数据的一个实时面板啊,那从上往下咱们在这块看一下,首先呢,这块我们能看到的就是当前这个程序当中,它包含的这些是不是叫线程啊,呃,这些线程它的分的组,呃,它的优先级啊,他目前的状态,哎,Time waiting啊,就是time的waiting正在这个等待CPU的一个使用率。啊等等等等这样的一个描述,然后下边呢,关于内存的一个情况,内存的这个大小对内存的大,然后呢,一点区外区O区非堆是吧,这个代码缓存哎,这个圆空间啊压缩类等等等等,你看描述的还是非常清楚的,哎,它的使用的一个比例最大是多少,使用了多少,发生的这个JC的一个情况,对吧,你看这块呢,看都有说明。
03:02
然后这块呢,是关于这个运营时的一个环境,哎,Linux环境啊,系统的版本,Java的这个版本,Java home在哪哎等等啊这块的一个说明,然后再往下看的话呢,大家会发现,诶好像跟我们刚才上面看到的是不是一样啊。又来了一套是吧,啊又来了一套,哎,这呢,我们就说明是什么情况呢,你看我们在讲这个过程当中是不是打印了,你看这么多的情况。还在不停的去打,那那这呢叫什么实时的数据面板,所以呢,它每间隔一定的时间就会帮我们打印一份,那怎么停止呢?哎,这块我们CTRLC一下,那就停止了。啊,那也就是说呢,如果我们不去做这个打印次数这个限制的话呢,它是不是就会一直的打印下去啊,哎,对这个是没问题的是吧?呃,然后呢,我这块呢,来一个单是报的,嗯,这里边呢,有两个主要的参数,我们可以去使用的啊第一个的话呢,就是间隔多长时间呢,去让他打印一份啊,比如我这块呢,写一个叫杠I,我这来一个比如说500吧。这个500的单位呢,是毫秒的一次哈,哎,500毫秒打印一次,那就相当于是,呃,500毫秒,那那那就相当于半半秒钟呗,好这块你看我做一个回车啊。
04:08
好,大家会发现呢,你看现在是不是打印这个速度很快啊。你看打印那个速度很快,让你感觉好像是它就实时的是在这块呢做变化一样是吧,好我CTRLC一下,哎这就停止了啊好这呢是相当于是一个监控的一个情况,嗯,然后呢,我们还可以使用呢,叫dashboard的,呃,有一个叫杠N,嗯,那大家也能猜出来,这个就表示的是这个次数是吧?哎,比如我这块写一个次,呃,那就相当于我们是希望它打印的就是四次就行,好做一个回车。啊,这是打印一次。打印两次,诶它这个默认的一个间隔的话,你看时间是比较长一些的是吧。等于三次了。那再稍等一等,哎,大于四次了。是吧,诶你看打印四的诶啊这个这块就停了,哎这块呢,就一共打印了这样的几个次数,打印完以后的话呢,诶它就又回到我们这个界面里边了,大家可以这样啊,比如把我们刚才这样的两个指令呢,给大家结合起来啊大是报的,哎,然后杠I给我们来一个这个呃500。
05:12
哎,100,诶1000也行是吧,哎,一秒钟打一次,然后杠N呢来一个。来个四吧,好,我们这时候做一个回车。一二。三。次是吧,哎,这就可以结束了,就第一次显示那个它没算是吧,诶然后后边呢,相当于再给你来四次啊OK,这个呢,就我们说这个叫dashboard,哎,我们就说到这儿啊,就实时的一个数据面板啊,这个呢是我们比较常用的一个指令啊呃,然后的话呢,我们再看一个指令呢,这个叫做thread。啊,这个一看这个命令大家应该也很清楚是吧,关于杠H它的一个使用啊,哎,我们有一个这个说明,那你也可以看一看是吧?哎,这里边可以使用的这个example啊,我们直接来讲了,首先的话呢,直接这个thread什么也不写,你看这也有这个案例对吧,什么也不写的话呢,做一个回车。好,这时候大家能看到咱们当前这个程序当中,哎,包含的这个线程啊,32个啊,运行的有多少个啊,微信的有多少个,他们的微信有几个等等等,是不是把这些呢,是不是都列出来了,哎,他们的一个状态,你看通过不同的颜色呢,也做了个区分,哎这里边呢,主要是按照这个CPU的一个使用率看,做了一个排序。
06:16
对吧,来做了一个排序,OK啊,这个呢,是我们说的第一个这个情况,然后呢,还有这个thread呢,大家可以比如说你看这块是不是我们这个现成的一个ID啊,对吧,像这个ID,比如说这里边我们对这个ID是一的这个感兴趣,我们就直接看这个thread,哎,空格一下一这块呢,查看的就是我们这个编号ID为一的这样的一个线程,它的一个情况。啊,这是这个啊,然后还有什么呢,这个thread啊,我们看还可以怎么着呢,这有一个叫杠B的一个指令。啊,有个杠B的指令,这个B的指令的意思呢,就是说block的意思,哎,我们做一个回撤,哎当前呢,咱们这里边是不是没有这个block的这个情况,那通过这个指令呢,我们是不是可以查看当前程序中啊线程出现死锁的这个线程都有哪些是吧?哎,那不就是一个block的这个状态吗?
07:03
哎,OK是吧,哎,这个大家注意一下这个啊,嗯,还可以呢,Thread啊,我们这来一个杠I,比如来一个5000吧。五千五千,那就相当于是五秒钟啊,那你看我们这时候做一个回车啊。这时候呢,大家,哎,你自己数五秒钟。啊,15秒钟是吧,诶出来了,那他这是做什么呢?就是在这个五秒钟的这个时间之内呢,他统一一下当前这个CPU的一个利用率。啊,CC的一个利用率,哎,给我们统计出来,哎这呢是表示的是这个意思啊呃,我们还可以什么呢,这个呃,Thread你看上面也有一个这个参数呢,是不是叫杠N呢,刚才。哎,杠N后边写个杠一啊,这个写个五,哎这写个五,这个是什么意思呢?就是我们考虑的就是从这个CPU的占用率这个排名上来讲,前五个对吧,这意思,比如我这写个二是不是就前两位啊。你看前两位的话呢,你看一个是这个妹啊,一个呢,是我们这个C的这样的一个编辑器是吧。
08:01
OK啊,呃,这是它对应的这个占用率,你看这块也也是不是给我们标志出来了,哎,这个意思啊,行,那这个呢,就是我们说的这个,呃,CPU占用率排名前几的这样的一个情况啊嗯,这呢,我们就关于这个thread呢,就先介绍这两个。哎,先介绍这样几个啊,这是关于GM的,这里边的dashboard和这个thread啊,我们先停一下。
我来说两句