Arthas:线上问题排查工具

安装

下载

java -jar arthas-boot.jar

查看版本:

D:\Program Files\arthas
$ java -jar arthas-boot.jar -version
[INFO] arthas-boot version: 3.1.0
Local versions:
 3.1.0
Remote versions:
 3.1.0
 3.0.5
 3.0.4
 3.0.3
 3.0.0-RC
 3.0.5

命令使用

启动arthas

E:\BaiduYunDownload\arthas-packaging-3.1.0-bin                                           
$ java -jar arthas-boot.jar                                                              
[INFO] arthas-boot version: 3.1.0                                                        
[INFO] Found existing java process, please choose one and hit RETURN.                    
* [1]: 22596 org.jetbrains.idea.maven.server.RemoteMavenServer                           
  [2]: 20728 org.apache.catalina.startup.Bootstrap                                       
  [3]: 29752 com.shitou.Application                                                      
  [4]: 37144                                                                             
  [5]: 15660 org.jetbrains.jps.cmdline.Launcher                                          
3                                                                                        
[INFO] arthas home: E:\BaiduYunDownload\arthas-packaging-3.1.0-bin                       
[INFO] Try to attach process 29752                                                       
[INFO] Found java home from System Env JAVA_HOME: D:\Program Files\Java\jdk1.8.0         
[INFO] Attach process 29752 success.                                                     
[INFO] arthas-client connect 127.0.0.1 3658                                              
  ,---.  ,------. ,--------.,--.  ,--.  ,---.   ,---.                                    
 /  O  \ |  .--. ''--.  .--'|  '--'  | /  O  \ '   .-'                                   
|  .-.  ||  '--'.'   |  |   |  .--.  ||  .-.  |`.  `-.                                   
|  | |  ||  |\  \    |  |   |  |  |  ||  | |  |.-'    |                                  
`--' `--'`--' '--'   `--'   `--'  `--'`--' `--'`-----'                                   
                                                                                         
                                                                                         
wiki: https://alibaba.github.io/arthas                                                   
version: 3.1.0                                                                           
pid: 29752                                                                               
time: 2019-03-20 18:21:26                                                                

查看dashboard

ID       NAME                      GROUP             PRIORIT STATE    %CPU     TIME     INTERRU DAEMON
67       Abandoned connection clea main              5       TIMED_WA 0        0:0      false   true
128      AsyncAppender-Worker-arth system            5       WAITING  0        0:0      false   true
6        Attach Listener           system            5       RUNNABLE 0        0:0      false   true
65       ContainerBackgroundProces main              5       TIMED_WA 0        0:0      false   true
122      DestroyJavaVM             main              5       RUNNABLE 0        0:52     false   false
68       Druid-ConnectionPool-Crea main              5       WAITING  0        0:0      false   true
69       Druid-ConnectionPool-Dest main              5       TIMED_WA 0        0:0      false   true
92       DubboClientReconnectTimer main              5       WAITING  0        0:0      false   true
96       DubboClientReconnectTimer main              5       TIMED_WA 0        0:0      false   true
79       DubboRegistryFailedRetryT main              5       TIMED_WA 0        0:0      false   true
125      DubboResponseTimeoutScanT main              5       TIMED_WA 0        0:0      false   true
83       DubboSaveRegistryCache-th main              5       WAITING  0        0:0      false   true
Memory                 used   total   max    usage   GC
heap                   160M   320M    4050M  3.96%   gc.parnew.count           155
par_eden_space         5M     68M     266M   2.17%   gc.parnew.time(ms)        1154
par_survivor_space     711K   8704K   34048K 2.09%   gc.concurrentmarksweep.co 7
cms_old_gen            153M   243M    3751M  4.10%   unt
nonheap                171M   180M    -1     94.88%  gc.concurrentmarksweep.ti 429
code_cache             25M    25M     240M   10.77%  me(ms)
Runtime
os.name                    Windows 10
os.version                 10.0
java.version               1.8.0_201
java.home                  D:\Program Files\Java\jdk
                           1.8.0\jre
systemload.average         -1.00
数据说明
  • ID: Java级别的线程ID,注意这个ID不能跟jstack中的nativeID一一对应
  • NAME: 线程名
  • GROUP: 线程组名
  • PRIORITY: 线程优先级, 1~10之间的数字,越大表示优先级越高
  • STATE: 线程的状态
  • CPU%: 线程消耗的cpu占比,采样100ms,将所有线程在这100ms内的cpu使用量求和,再算出每个线程的cpu使用占比。
  • TIME: 线程运行总时间,数据格式为分:秒
  • INTERRUPTED: 线程当前的中断位状态
  • DAEMON: 是否是daemon线程

thread:线程信息

显示所有线程信息
$ thread
Threads Total: 80, NEW: 0, RUNNABLE: 23, BLOCKED: 0, WAITING: 33, TIMED_WAITING: 24, TERMINATED: 0
ID       NAME                      GROUP             PRIORIT STATE    %CPU     TIME     INTERRU DAEMON
67       Abandoned connection clea main              5       TIMED_WA 0        0:0      false   true
128      AsyncAppender-Worker-arth system            5       WAITING  0        0:0      false   true
6        Attach Listener           system            5       RUNNABLE 0        0:0      false   true
65       ContainerBackgroundProces main              5       TIMED_WA 0        0:0      false   true
122      DestroyJavaVM             main              5       RUNNABLE 0        0:52     false   false
68       Druid-ConnectionPool-Crea main              5       WAITING  0        0:0      false   true
69       Druid-ConnectionPool-Dest main              5       TIMED_WA 0        0:0      false   true
92       DubboClientReconnectTimer main              5       WAITING  0        0:0      false   true
96       DubboClientReconnectTimer main              5       TIMED_WA 0        0:0      false   true
显示当前最忙的前n个线程,并打印出堆栈
$ thread -n 3
"Reference Handler" Id=2 cpuUsage=0% WAITING on java.lang.ref.Reference$Lock@5889e097
    at java.lang.Object.wait(Native Method)
    -  waiting on java.lang.ref.Reference$Lock@5889e097
    at java.lang.Object.wait(Object.java:502)
    at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)


"Finalizer" Id=3 cpuUsage=0% WAITING on java.lang.ref.ReferenceQueue$Lock@2c5e60e3
    at java.lang.Object.wait(Native Method)
    -  waiting on java.lang.ref.ReferenceQueue$Lock@2c5e60e3
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:216)


"Signal Dispatcher" Id=5 cpuUsage=0% RUNNABLE
查看指定线程的堆栈信息
$ thread 2
"Reference Handler" Id=2 WAITING on java.lang.ref.Reference$Lock@5889e097
    at java.lang.Object.wait(Native Method)
    -  waiting on java.lang.ref.Reference$Lock@5889e097
    at java.lang.Object.wait(Object.java:502)
    at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)

Affect(row-cnt:0) cost in 56 ms.
找出当前阻塞其他线程的线程
$ thread -b
No most blocking thread found!
Affect(row-cnt:0) cost in 68 ms.
指定采样时间间隔
$ thread -n 3 -i 10000
"File Watcher" Id=101 cpuUsage=88% TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.springframework.boot.devtools.filewatch.FileSystemWatcher$Watcher.scan(FileSystemWatcher.java:249)
    at org.springframework.boot.devtools.filewatch.FileSystemWatcher$Watcher.run(FileSystemWatcher.java:239)
    at java.lang.Thread.run(Thread.java:748)


"Hashed wheel timer #1" Id=89 cpuUsage=9% TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.jboss.netty.util.HashedWheelTimer$Worker.waitForNextTick(HashedWheelTimer.java:503)
    at org.jboss.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:401)
    at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
    at java.lang.Thread.run(Thread.java:748)


"http-nio-18080-exec-7" Id=111 cpuUsage=1% WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@fefdf30
    at sun.misc.Unsafe.park(Native Method)
    -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@fefdf30
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:103)
    at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:31)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)


Affect(row-cnt:0) cost in 10062 ms.

watch:查看方法的入参出参:

$ watch com.shitou.huishi.contract.datacontract.service.web.OrderApplyInfoService readCreditDetailByLoanOrderId "{params[0],returnObj}"  -b -f
Press Q or Ctrl+C to abort.
Affect(class-cnt:2 , method-cnt:2) cost in 136 ms.
ts=2019-03-21 16:10:14; [cost=0.01548ms] result=@ArrayList[
    @LoanOrderKeyReq[LoanOrderKeyReq(loanOrderId=PO119110867372605450)],
    null,
]
ts=2019-03-21 16:10:14; [cost=0.011808ms] result=@ArrayList[
    @LoanOrderKeyReq[LoanOrderKeyReq(loanOrderId=PO119110867372605450)],
    null,
]
ts=2019-03-21 16:10:15; [cost=56.043046ms] result=@ArrayList[
    @LoanOrderKeyReq[LoanOrderKeyReq(loanOrderId=PO119110867372605450)],
    @DataResponse[DataResponse(data=ApplyInfoDTO(loanOrderId=PO119110867372605450, orgSource=及时雨, productName=小微企业经营贷, lenderName=小米科技, lenderNo=544619676, lenderNoType=null, applyMoney=60000.00, applyPeriod=55, applyYearRate=63.0000, repaymentType=xxhb_rt, isCredit=0, loanUsage=gmsb_lu, loanUsageDesc=xxxxxxxxxxxxxx, ensureType=dy_bz_zy_et, isSmallLoan=null, showExpireTime=null, doorReview=tangy, conditionAdd=null, isXudai=null))],
]
ts=2019-03-21 16:10:15; [cost=61.627293ms] result=@ArrayList[
    @LoanOrderKeyReq[LoanOrderKeyReq(loanOrderId=PO119110867372605450)],
    @DataResponse[DataResponse(data=ApplyInfoDTO(loanOrderId=PO119110867372605450, orgSource=及时雨, productName=小微企业经营贷, lenderName=小米科技, lenderNo=544619676, lenderNoType=null, applyMoney=60000.00, applyPeriod=55, applyYearRate=63.0000, repaymentType=xxhb_rt, isCredit=0, loanUsage=gmsb_lu, loanUsageDesc=xxxxxxxxxxxxxx, ensureType=dy_bz_zy_et, isSmallLoan=null, showExpireTime=null, doorReview=tangy, conditionAdd=null, isXudai=null))],
]

前2个是请求参数

后2段是返回参数

对于上面的params,returnObj,具体请查看 表达式核心变量

watch具体参数选项
[b]方法调用之前观察
[e]方法异常之后观察
[s]方法返回之后观察
[f]方法结束之后(正常返回和异常返回)观察
[E]开启正则表达式匹配,默认为通配符匹配
[x:]指定输出结果的属性遍历深度,默认为 1

trace:查看方法内部调用路径,并输出每个节点上面的耗时

$ trace com.shitou.huishi.contract.datacontract.service.web.OrderApplyInfoService readCreditDetailByLoanOrderId 
Press Q or Ctrl+C to abort.
Affect(class-cnt:2 , method-cnt:2) cost in 160 ms.
`---ts=2019-03-21 16:14:50;thread_name=http-nio-8083-exec-10;id=3f;is_daemon=true;priority=5;TCCL=org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedWebappClassLoader@34018c56
    `---[77.906206ms] com.shitou.huishi.service.web.OrderApplyInfoServiceImpl$$EnhancerBySpringCGLIB$$1a8938:readCreditDetailByLoanOrderId()
        `---[77.562741ms] org.springframework.cglib.proxy.MethodInterceptor:intercept()
            `---[72.595779ms] com.shitou.huishi.service.web.OrderApplyInfoServiceImpl:readCreditDetailByLoanOrderId()
                +---[0.041883ms] com.shitou.huishi.contract.datacontract.request.web.order.LoanOrderKeyReq:getLoanOrderId()
                +---[71.714061ms] com.shitou.huishi.domain.LoanOrderDetailBizFacade:readCreditDetailByLoanOrderId()
                +---[min=0.00569ms,max=0.030117ms,total=0.035807ms,count=2] com.shitou.huishi.contract.datacontract.dto.web.order.ApplyInfoDTO:getApplyMoney()
                +---[0.0419ms] org.apache.commons.lang3.StringUtils:isNotBlank()
                +---[0.169522ms] com.shitou.huishi.utils.DecimalUtil:divAmount2W()
                +---[0.027774ms] com.shitou.huishi.contract.datacontract.dto.web.order.ApplyInfoDTO:setApplyMoney()
                `---[0.022443ms] com.shitou.huishi.contract.datacontract.response.DataResponse:process()

stack:查看当前方法调用路径

$ stack  com.shitou.huishi.contract.datacontract.service.web.OrderApplyInfoService readCreditDetailByLoanOrderId 
Press Q or Ctrl+C to abort.
Affect(class-cnt:2 , method-cnt:2) cost in 181 ms.
ts=2019-03-21 16:19:04;thread_name=http-nio-8083-exec-8;id=3d;is_daemon=true;priority=5;TCCL=org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedWebappClassLoader@34018c56
    @com.shitou.huishi.service.web.OrderApplyInfoServiceImpl$$FastClassBySpringCGLIB$$1213e5f9.invoke()
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
        at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85)
        at com.shitou.huishi.aop.ControllerAspect.aroundAdvice(ControllerAspect.java:61)
        at sun.reflect.GeneratedMethodAccessor161.invoke(null:-1)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)
        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618)
        at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
        at com.shitou.huishi.service.web.OrderApplyInfoServiceImpl$$EnhancerBySpringCGLIB$$1a8938.readCreditDetailByLoanOrderId(<generated>:-1)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:105)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)

tt:记录下指定方法的调用,后续对其进行筛选,查看,重现等

开始记录:
$ tt -t com.shitou.huishi.contract.datacontract.service.web.OrderApplyInfoService readCreditDetailByLoanOrderId
Press Q or Ctrl+C to abort.
Affect(class-cnt:2 , method-cnt:2) cost in 160 ms.
 INDEX            TIMESTAMP                                 COST(ms)             IS-RET          IS-EXP           OBJECT                         CLASS                                                          METHOD                                                        
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 1000             2019-03-21 16:37:05                       62.710494            true            false            0x4adf3582                     OrderApplyInfoServiceImpl                                      readCreditDetailByLoanOrderId                                 
 1001             2019-03-21 16:37:05                       -0.022655            true            false            0x708c8fb                      OrderApplyInfoServiceImpl$$EnhancerBySpringCGLIB$$1a8938       readCreditDetailByLoanOrderId                                 
 1002             2019-03-21 16:37:14                       44.213677            true            false            0x4adf3582                     OrderApplyInfoServiceImpl                                      readCreditDetailByLoanOrderId                                 
 1003             2019-03-21 16:37:14                       -0.00271             true            false            0x708c8fb                      OrderApplyInfoServiceImpl$$EnhancerBySpringCGLIB$$1a8938       readCreditDetailByLoanOrderId                                 
 1004             2019-03-21 16:37:55                       59.234538            true            false            0x4adf3582                     OrderApplyInfoServiceImpl                                      readCreditDetailByLoanOrderId                                 
 1005             2019-03-21 16:37:55                       -0.00376             true            false            0x708c8fb                      OrderApplyInfoServiceImpl$$EnhancerBySpringCGLIB$$1a8938       readCreditDetailByLoanOrderId                                 
 1006             2019-03-21 16:38:01                       57.618517            true            false            0x4adf3582                     OrderApplyInfoServiceImpl                                      readCreditDetailByLoanOrderId                                 
 1007             2019-03-21 16:38:01                       -0.003653            true            false            0x708c8fb                      OrderApplyInfoServiceImpl$$EnhancerBySpringCGLIB$$1a8938       readCreditDetailByLoanOrderId   
查看所有记录:
$ tt -l
 INDEX            TIMESTAMP                                 COST(ms)             IS-RET          IS-EXP           OBJECT                         CLASS                                                          METHOD                                                        
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 1000             2019-03-21 16:37:05                       62.710494            true            false            0x4adf3582                     OrderApplyInfoServiceImpl                                      readCreditDetailByLoanOrderId                                 
 1001             2019-03-21 16:37:05                       -0.022655            true            false            0x708c8fb                      OrderApplyInfoServiceImpl$$EnhancerBySpringCGLIB$$1a8938       readCreditDetailByLoanOrderId                                 
 1002             2019-03-21 16:37:14                       44.213677            true            false            0x4adf3582                     OrderApplyInfoServiceImpl                                      readCreditDetailByLoanOrderId                                 
 1003             2019-03-21 16:37:14                       -0.00271             true            false            0x708c8fb                      OrderApplyInfoServiceImpl$$EnhancerBySpringCGLIB$$1a8938       readCreditDetailByLoanOrderId                                 
 1004             2019-03-21 16:37:55                       59.234538            true            false            0x4adf3582                     OrderApplyInfoServiceImpl                                      readCreditDetailByLoanOrderId                                 
 1005             2019-03-21 16:37:55                       -0.00376             true            false            0x708c8fb                      OrderApplyInfoServiceImpl$$EnhancerBySpringCGLIB$$1a8938       readCreditDetailByLoanOrderId                                 
 1006             2019-03-21 16:38:01                       57.618517            true            false            0x4adf3582                     OrderApplyInfoServiceImpl                                      readCreditDetailByLoanOrderId                                 
 1007             2019-03-21 16:38:01                       -0.003653            true            false            0x708c8fb                      OrderApplyInfoServiceImpl$$EnhancerBySpringCGLIB$$1a8938       readCreditDetailByLoanOrderId                                 
Affect(row-cnt:8) cost in 11 ms.
对记录进行筛选:

比如对请求 参数进行筛选:

$ tt -s "params[0].loanOrderId=='BO119643577337905166'"
 INDEX            TIMESTAMP                                 COST(ms)             IS-RET          IS-EXP           OBJECT                         CLASS                                                          METHOD                                                        
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 1006             2019-03-21 16:38:01                       57.618517            true            false            0x4adf3582                     OrderApplyInfoServiceImpl                                      readCreditDetailByLoanOrderId                                 
 1007             2019-03-21 16:38:01                       -0.003653            true            false            0x708c8fb                      OrderApplyInfoServiceImpl$$EnhancerBySpringCGLIB$$1a8938       readCreditDetailByLoanOrderId                                 
Affect(row-cnt:2) cost in 21 ms.
查看具体记录信息:
$ tt -i 1006
 INDEX          1006                                                                                                                                                                                                                                                          
 GMT-CREATE     2019-03-21 16:38:01                                                                                                                                                                                                                                           
 COST(ms)       57.618517                                                                                                                                                                                                                                                     
 OBJECT         0x4adf3582                                                                                                                                                                                                                                                    
 CLASS          com.shitou.huishi.service.web.OrderApplyInfoServiceImpl                                                                                                                                                                                                       
 METHOD         readCreditDetailByLoanOrderId                                                                                                                                                                                                                                 
 IS-RETURN      true                                                                                                                                                                                                                                                          
 IS-EXCEPTION   false                                                                                                                                                                                                                                                         
 PARAMETERS[0]  @LoanOrderKeyReq[                                                                                                                                                                                                                                             
                    serialVersionUID=@Long[8109590394803201418],                                                                                                                                                                                                              
                    loanOrderId=@String[BO119643577337905166],                                                                                                                                                                                                                
                ]                                                                                                                                                                                                                                                             
 RETURN-OBJ     @DataResponse[                                                                                                                                                                                                                                                
                    serialVersionUID=@Long[-2479705076778238646],                                                                                                                                                                                                             
                    data=@ApplyInfoDTO[ApplyInfoDTO(loanOrderId=BO119643577337905166, orgSource=及时雨, productName=小微企业经营贷, lenderName=张爱青, lenderNo=99988882, lenderNoType=null, applyMoney=5.00, applyPeriod=24, applyYearRate=63.0000, repaymentType=xxhb_rt, isCredit=0, lo 
                anUsage=gmsb_lu, loanUsageDesc=xxxxxxxxxxxxxx, ensureType=dy_bz_zy_et, isSmallLoan=null, showExpireTime=null, doorReview=null, conditionAdd=null, isXudai=null)],                                                                                             
                ]                                                                                                                                                                                                                                                             
Affect(row-cnt:1) cost in 13 ms.
重做一次调用:
$ tt -i 1006 -p
 RE-INDEX       1006                                                                                                                                                                                                                                                          
 GMT-REPLAY     2019-03-21 16:45:20                                                                                                                                                                                                                                           
 OBJECT         0x4adf3582                                                                                                                                                                                                                                                    
 CLASS          com.shitou.huishi.service.web.OrderApplyInfoServiceImpl                                                                                                                                                                                                       
 METHOD         readCreditDetailByLoanOrderId                                                                                                                                                                                                                                 
 PARAMETERS[0]  @LoanOrderKeyReq[                                                                                                                                                                                                                                             
                    serialVersionUID=@Long[8109590394803201418],                                                                                                                                                                                                              
                    loanOrderId=@String[BO119643577337905166],                                                                                                                                                                                                                
                ]                                                                                                                                                                                                                                                             
 IS-RETURN      true                                                                                                                                                                                                                                                          
 IS-EXCEPTION   false                                                                                                                                                                                                                                                         
 COST(ms)       50.881621                                                                                                                                                                                                                                                     
 RETURN-OBJ     @DataResponse[                                                                                                                                                                                                                                                
                    serialVersionUID=@Long[-2479705076778238646],                                                                                                                                                                                                             
                    data=@ApplyInfoDTO[ApplyInfoDTO(loanOrderId=BO119643577337905166, orgSource=及时雨, productName=小微企业经营贷, lenderName=张爱青, lenderNo=99988882, lenderNoType=null, applyMoney=5.00, applyPeriod=24, applyYearRate=63.0000, repaymentType=xxhb_rt, isCredit=0, lo 
                anUsage=gmsb_lu, loanUsageDesc=xxxxxxxxxxxxxx, ensureType=dy_bz_zy_et, isSmallLoan=null, showExpireTime=null, doorReview=null, conditionAdd=null, isXudai=null)],                                                                                             
                ]                                                                                                                                                                                                                                                             
Time fragment[1006] successfully replayed.

参考:

Arthas 用户文档

转载于:https://www.cnblogs.com/hongdada/p/10572776.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值