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 ...
随机推荐
- [认证授权] 3.基于OAuth2的认证(译)
OAuth 2.0 规范定义了一个授权(delegation)协议,对于使用Web的应用程序和API在网络上传递授权决策非常有用.OAuth被用在各钟各样的应用程序中,包括提供用户认证的机制.这导致许 ...
- php基础知识(二)---2017-04-14
1.字符串的三种表达形式: (1)双引号 (2)单引号 (3)尖括号 $s = <<<A <div style="width:500px; height:100px; ...
- NOIP2014D2T2寻找道路
洛谷传送门 这道题可以把边都反着存一遍,从终点开始深搜,然后把到不了的点 和它们所指向的点都去掉. 最后在剩余的点里跑一遍spfa就可以了. --代码 #include <cstdio> ...
- 【Tomcat源码学习】-3.应用管理
通过上一节我们完成了对容器进行了加载.初始化.启动,而对于应用的加载部分独立出来,本节进行单独的讲解 一.应用加载流程 1)应用识别,Context创建 在Host启动后,会调用Host的监听Ho ...
- 利用伪元素和css3实现鼠标移入下划线向两边展开效果
一.思路: 将伪元素:before和:after定位到元素底部中间,设置宽度从0变成100%达到目的. 二.实现: 1.首先定义一个块状元素(行内元素没有宽高)并修改样式为一个背景色为浅灰色的矩形,设 ...
- Nmap功能与常用命令
Nmap功能与常用命令 其基本功能有三个,一是探测一组主机是否在线:其次是扫描主机端口,嗅探所提供的网络服务:还可以推断主机所用的操作系统. Nmap可用于扫描仅有两个节点的LAN,直至500个节点以 ...
- java写文件读写操作(IO流,字节流)
package copyfile; import java.io.*; public class copy { public static void main(String[] args) throw ...
- uiautomator+cucumber实现自动化测试
前提 由于公司业务要求,所以自动化测试要达到以下几点: 跨应用的测试 测试用例可读性强 测试报告可读性强 对失败的用例有截图保存并在报告中体现 基于以上几点,在对自动化测试框架选型的时候就选择了uia ...
- Springmvc的工作流程
1.向服务器发送http请求,请求被前端控制器DispatcherServlet捕获. 2.DispatcherServlet根据servlet.xml中的配置进行URL解析后,得到(URL),然后根 ...
- 【Atom】在一个中/大型项目中,那些好用而强大的atom功能
作为一个学生党,一开始使用atom时候并没有意识到atom一些小功能的巨大作用,直到自己实习参与了项目,才知道这些功能在一个项目中是能极大提高工作效率的开发利器 下面是一位不愿意透露其姓名的彭 ...