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

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

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



top
top除了看一些基本信息之外,剩下的就是配合来查询vm的各种问题了
- ps -ef | grep java
- top -H -p pid
获得线程10进制转16进制后jstack去抓看这个线程到底在干啥
其他
- netstat -nat|awk '{print $6}'|sort|uniq -c|sort -rn #查看当前连接,注意close_wait偏高的情况,比如如下


排查利器
btrace
首当其冲的要说的是btrace。真是生产环境&预发的排查问题大杀器。 简介什么的就不说了。直接上代码干
1、查看当前谁调用了ArrayList的add方法,同时只打印当前ArrayList的size大于500的线程调用栈
- @OnMethod(clazz = "java.util.ArrayList", method="add", location = @Location(value = Kind.CALL, clazz = "/.*/", method = "/.*/"))
- public static void m(@ProbeClassName String probeClass, @ProbeMethodName String probeMethod, @TargetInstance Object instance, @TargetMethodOrField String method) {
- if(getInt(field("java.util.ArrayList", "size"), instance) > 479){
- println("check who ArrayList.add method:" + probeClass + "#" + probeMethod + ", method:" + method + ", size:" + getInt(field("java.util.ArrayList", "size"), instance));
- jstack();
- println();
- println("===========================");
- println();
- }
- }
2、监控当前服务方法被调用时返回的值以及请求的参数
- @OnMethod(clazz = "com.taobao.sellerhome.transfer.biz.impl.C2CApplyerServiceImpl", method="nav", location = @Location(value = Kind.RETURN))
- public static void mt(long userId, int current, int relation, String check, String redirectUrl, @Return AnyType result) {
- println("parameter# userId:" + userId + ", current:" + current + ", relation:" + relation + ", check:" + check + ", redirectUrl:" + redirectUrl + ", result:" + result);
- }
更多内容,感兴趣的请移步:https://github.com/btraceio/btrace
(编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|