加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

阿里员工排查问题的工具清单,总有一款适合你!

发布时间:2018-12-19 19:10:04 所属栏目:Windows 来源:红魔七号
导读:副标题#e# 这是一篇来源于阿里内部技术论坛的文章,原文在阿里内部获得一致好评。作者已经把这篇文章开放到云栖社区中供外网访问。文章内容做了部分删减,主要删减掉了其中只有阿里内部才能使用的工具的介绍,并删减掉部分只有通过阿里内网才能访问到的链接

tsar --live ###可以查看实时指标,默认五秒一刷

阿里员工排查问题的工具清单,总有一款适合你!

  1. tsar --mem 
  2. tsar --load 
  3. tsar --cpu 
  4. ###当然这个也可以和-d参数配合来查询某天的单个指标的情况  

阿里员工排查问题的工具清单,,总有一款适合你!

tsar --memtsar --loadtsar --cpu###当然这个也可以和-d参数配合来查询某天的单个指标的情况

阿里员工排查问题的工具清单,总有一款适合你!

阿里员工排查问题的工具清单,总有一款适合你!

阿里员工排查问题的工具清单,总有一款适合你!

top

top除了看一些基本信息之外,剩下的就是配合来查询vm的各种问题了

  1. ps -ef | grep java 
  2. top -H -p pid 

获得线程10进制转16进制后jstack去抓看这个线程到底在干啥

其他

  1. netstat -nat|awk '{print $6}'|sort|uniq -c|sort -rn #查看当前连接,注意close_wait偏高的情况,比如如下 

阿里员工排查问题的工具清单,总有一款适合你!

阿里员工排查问题的工具清单,总有一款适合你!


排查利器 

btrace

首当其冲的要说的是btrace。真是生产环境&预发的排查问题大杀器。 简介什么的就不说了。直接上代码干

1、查看当前谁调用了ArrayList的add方法,同时只打印当前ArrayList的size大于500的线程调用栈

  1. @OnMethod(clazz = "java.util.ArrayList", method="add", location = @Location(value = Kind.CALL, clazz = "/.*/", method = "/.*/")) 
  2. public static void m(@ProbeClassName String probeClass, @ProbeMethodName String probeMethod, @TargetInstance Object instance, @TargetMethodOrField String method) { 
  3.    if(getInt(field("java.util.ArrayList", "size"), instance) > 479){ 
  4.        println("check who ArrayList.add method:" + probeClass + "#" + probeMethod  + ", method:" + method + ", size:" + getInt(field("java.util.ArrayList", "size"), instance)); 
  5.        jstack(); 
  6.        println(); 
  7.        println("==========================="); 
  8.        println(); 
  9.    } 

2、监控当前服务方法被调用时返回的值以及请求的参数

  1. @OnMethod(clazz = "com.taobao.sellerhome.transfer.biz.impl.C2CApplyerServiceImpl", method="nav", location = @Location(value = Kind.RETURN)) 
  2. public static void mt(long userId, int current, int relation, String check, String redirectUrl, @Return AnyType result) { 
  3.    println("parameter# userId:" + userId + ", current:" + current + ", relation:" + relation + ", check:" + check + ", redirectUrl:" + redirectUrl + ", result:" + result); 

更多内容,感兴趣的请移步:https://github.com/btraceio/btrace

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读