Greys学习笔记(未完待续)
Greys介绍
greys-anatomy是一个Java线上诊断工具,取名来自美剧<实习医生格雷>,由菜鸟-杜琨同学开发维护。比我们常用的脚本工具btrace提供更多的功能,greys采用了命令式诊断。
安装greys
curl -sLk http://ompc.oss.aliyuncs.com/greys/install.sh|sh
或者
下载 zip包 ./install_local.sh
greys启动命令
./greys <PID>[@IP:PORT]
会话与任务
Greys是一个C/S架构的程序,所以当Client访问到Server时,Server会维护一个session(会话),以及session的心跳、超时机制。事务(Tx)机制则是建立在session的基础上,所有的命令交互都会创建一个事务,并且产生对应的队列进行输出缓冲。
重要命令
| 命令 | 说明 |
|---|---|
| help | 查看命令的帮助文档,每个命令和参数都有很详细的说明 |
| sc | 查看JVM已加载的类信息 |
| sm | 查看已加载的方法信息 |
| monitor | 方法执行监控 |
| trace | 渲染方法内部调用路径,并输出方法路径上的每个节点上耗时 |
| ptrace | 强化版的trace命令。通过指定渲染路径,并可记录下路径中所有方法的入参、返值;与tt命令联动。 |
| watch | 方法执行数据观测 |
| tt | 方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测 |
| [stack | 输出当前方法被调用的调用路径 |
| [version | 输出当前目标Java进程所加载的Greys版本号 |
| quit | 退出greys客户端 |
| shutdown | 关闭greys服务端 |
| reset | 重置增强类,将被greys增强过的类全部还原 |
| jvm | 查看当前JVM的信息 |
help命令
- 查看帮助文档
help trace
hlep monitor
trace命令
- trace命令可以看方法性能开销,目前支持一级调用方法的耗时追踪
trace class-pattern method-pattern condition-express
具体的使用方法查看 help trace
- 举例
trace *ElasticSearchService insertIndexBulk '#cost>10'
trace *ElasticSearchService insertIndexBulk params[0].length==1
trace *NovaCodec decode '#cost>200'
ptrace命令
- trace的增强版本,可以指定渲染的路径,还可以和tt命令联动
ptrace lass-pattern method-pattern condition-express [-t]
--path 可以过滤渲染的路径
- 举例
ptrace *ChannelBuffers dynamicBuffer --path com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter '#cost>=1' -t
Greys学习笔记(未完待续)的更多相关文章
- Go web编程学习笔记——未完待续
1. 1).GOPATH设置 先设置自己的GOPATH,可以在本机中运行$PATH进行查看: userdeMacBook-Pro:~ user$ $GOPATH -bash: /Users/user/ ...
- linux学习笔记---未完待续,缓慢更新
做为linux菜鸟,由于work的需要,慢慢的开始接触学习linux. <鸟哥的linux私房菜>学习笔记. 一.基础命令操作 1.显示日期的命令 date 执行date命令后,显示结果为 ...
- jQuery 学习笔记(未完待续)
一.jQuery概述 宗旨: Write Less, Do More. 基础知识: 1.符号$代替document.getElementById()函数 2.使 ...
- oracle-绑定变量学习笔记(未完待续)
--定义变量SQL> var a number; --给绑定变量赋值SQL> exec :a :=123; PL/SQL procedure successfully completed. ...
- Java学习笔记(未完待续)
变量的作用域(scope)是指变量可以在程序中引用的范围.在方法中定义的变量称为局部变量(local variable).局部变量的作用域从声明变量的地方开始,直到包含该变量的块结束为止.局部变量都必 ...
- c++课程学习(未完待续)
关于c++课程学习 按照计划,我首先阅读谭浩强c++程序设计一书的ppt,发现第一章基本上都是很基础的东西. 同时,书中与班导师一样,推荐了使用visual c++. 而师爷的教程里面推荐使用的是ec ...
- Papers | 超分辨 + 深度学习(未完待续)
目录 1. SRCNN 1.1. Contribution 1.2. Inspiration 1.3. Network 1.3.1. Pre-processing 1.3.2. Patch extra ...
- Scrapy 爬虫框架学习笔记(未完,持续更新)
Scrapy 爬虫框架 Scrapy 是一个用 Python 写的 Crawler Framework .它使用 Twisted 这个异步网络库来处理网络通信. Scrapy 框架的主要架构 根据它官 ...
- sql语句学习及索引学习,未完待续,补充增删改查
1,查询出last_name 为 'Chen' 的 manager 的信息. select * fromwhere employee_id = ( selectfrom employees wher ...
随机推荐
- POJ3592 Instantaneous Transference题解
题意: 给一个矩形,矩形中某些点有一定数量的矿石,有些点为传送点,有些点为障碍.你驾驶采矿车(ore-miner truck,我也不知道是什么),从左上角出发,采尽量多的矿石,矿石不可再生.不能往左边 ...
- C#设计模式之简单工厂模式
简单工厂模式解释: 简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern) 是通过专门定义一 ...
- C#中的ArrayList
ArrayList非常类似于数组,也有人称它为数组列表,ArrayList可以动态维护 提示: 和数组相似,ArrayList中存储的数据称为元素,ArrayList可以保存的元素数就是ArrayLi ...
- 学习react,动手实现一个小demo(仿知乎问答)
学习react也有一周的时间,最近自己做了个仿知乎问答的小demo,项目源码在github上:https://github.com/yang302/reactQa 使用技术:bower+gulp+re ...
- (转)Python 遍历List三种方式
转自: http://www.cnblogs.com/pizitai/archive/2017/02/14/6398276.html # 方法1 print '遍历列表方法1:' for i in l ...
- ## Python中的Package和Jupyter中import包问题
前言 关于python包的一些知识 Java中的package概念 我们知道在java中的import package概念, java中的包就是一个目录,里面包含着子目录,子目录套着子目录,当需要引入 ...
- extj6.0写增删查改(1)-------查询
本文主要实现的效果是:点击查询按钮,根据form中的条件,在Grid中显示对应的数据(如果form为空,显示全部数据) 一.静态页面 1.查询按钮 { text:'查询', handler: 'onS ...
- LinkedList 学习笔记
先摆上JDK1.8中hashMap的类注释:我翻译了一下 /** * Doubly-linked list implementation of the {@code List} and {@code ...
- HTTP笔记
"你知道当我们在网页浏览器(Web browser)的地址栏中输入 URL 时,Web 页面是如何呈现的吗?" HTTP协议 HTTP协议(HyperText Transfer P ...
- .NET枚举类型转为List类型
如图所示这个竞卖状态,原先是在前端界面通过html代码写死的几个状态,现在需要改为动态加载.这个几个状态是定义的枚举类型. 1:定义一个枚举类型 /// <summary> /// ...