日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

使用JVM命令查询故障

發布時間:2024/1/1 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用JVM命令查询故障 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一:cpu占用高

1、top名稱查詢出cpu使用高的java進程

命令:top

2、使用jstack命令查看 進程下所有線程的棧日志

命令:jstack? 36506? 直接查看;或者?jstack? 36506? > 36506.txt 會將結果輸出到文件。

[root@localhost ~]# jstack 36506 2019-09-20 02:59:00 Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.74-b02 mixed mode):"Keep-Alive-Timer" #695 daemon prio=8 os_prio=0 tid=0x00007f9c04639800 nid=0x9202 waiting on condition [0x00007f9bf05df000]java.lang.Thread.State: TIMED_WAITING (sleeping)at java.lang.Thread.sleep(Native Method)at sun.net.www.http.KeepAliveCache.run(KeepAliveCache.java:172)at java.lang.Thread.run(Thread.java:745)"Attach Listener" #550 daemon prio=9 os_prio=0 tid=0x00007f9bd8001800 nid=0x914f waiting on condition [0x0000000000000000]java.lang.Thread.State: RUNNABLE"DestroyJavaVM" #28 prio=5 os_prio=0 tid=0x00007f9c04008800 nid=0x8e9b waiting on condition [0x0000000000000000]java.lang.Thread.State: RUNNABLE"http-nio-8888-Acceptor-0" #26 daemon prio=5 os_prio=0 tid=0x00007f9c04867000 nid=0x8eb5 runnable [0x00007f9bf08fc000]java.lang.Thread.State: RUNNABLEat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:422)at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:250)- locked <0x00000000eddc97c8> (a java.lang.Object)at org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:448)at org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:70)at org.apache.tomcat.util.net.Acceptor.run(Acceptor.java:95)at java.lang.Thread.run(Thread.java:745)"http-nio-8888-ClientPoller-0" #25 daemon prio=5 os_prio=0 tid=0x00007f9c04852000 nid=0x8eb4 runnable [0x00007f9bf09fd000]java.lang.Thread.State: RUNNABLEat sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)- locked <0x00000000eddd25d8> (a sun.nio.ch.Util$2)- locked <0x00000000eddd25c8> (a java.util.Collections$UnmodifiableSet)- locked <0x00000000eddd24b0> (a sun.nio.ch.EPollSelectorImpl)at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:743)at java.lang.Thread.run(Thread.java:745)"http-nio-8888-exec-10" #24 daemon prio=5 os_prio=0 tid=0x00007f9c04732800 nid=0x8eb3 waiting on condition [0x00007f9bf0afe000]java.lang.Thread.State: WAITING (parking)at sun.misc.Unsafe.park(Native Method)- parking to wait for <0x00000000eddcf738> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)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:107)at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)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)"http-nio-8888-exec-9" #23 daemon prio=5 os_prio=0 tid=0x00007f9c046d1000 nid=0x8eb2 waiting on condition [0x00007f9bf0bff000]java.lang.Thread.State: WAITING (parking)at sun.misc.Unsafe.park(Native Method)- parking to wait for <0x00000000eddcf738> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)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:107)at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)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)"http-nio-8888-exec-8" #22 daemon prio=5 os_prio=0 tid=0x00007f9c048bd000 nid=0x8eb1 waiting on condition [0x00007f9bf0d00000]java.lang.Thread.State: WAITING (parking)at sun.misc.Unsafe.park(Native Method)- parking to wait for <0x00000000eddcf738> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)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:107)at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)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)"http-nio-8888-exec-7" #21 daemon prio=5 os_prio=0 tid=0x00007f9c04860000 nid=0x8eb0 waiting on condition [0x00007f9bf0e01000]java.lang.Thread.State: WAITING (parking)at sun.misc.Unsafe.park(Native Method)- parking to wait for <0x00000000eddcf738> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)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:107)at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)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)"http-nio-8888-exec-6" #20 daemon prio=5 os_prio=0 tid=0x00007f9c047df000 nid=0x8eaf waiting on condition [0x00007f9bf0f02000]java.lang.Thread.State: WAITING (parking)at sun.misc.Unsafe.park(Native Method)- parking to wait for <0x00000000eddcf738> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)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:107)at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)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)"http-nio-8888-exec-5" #19 daemon prio=5 os_prio=0 tid=0x00007f9c04827800 nid=0x8eae waiting on condition [0x00007f9bf1003000]java.lang.Thread.State: WAITING (parking)at sun.misc.Unsafe.park(Native Method)- parking to wait for <0x00000000eddcf738> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)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:107)at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)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)"http-nio-8888-exec-4" #18 daemon prio=5 os_prio=0 tid=0x00007f9c0455d000 nid=0x8ead runnable [0x00007f9bf1101000]java.lang.Thread.State: RUNNABLEat java.net.SocketInputStream.socketRead0(Native Method)at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)at java.net.SocketInputStream.read(SocketInputStream.java:170)at java.net.SocketInputStream.read(SocketInputStream.java:141)at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)at java.io.BufferedInputStream.read(BufferedInputStream.java:345)- locked <0x00000000e377f608> (a java.io.BufferedInputStream)at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:704)at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)- locked <0x00000000e377cd78> (a sun.net.www.protocol.http.HttpURLConnection)at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)- locked <0x00000000e377cd78> (a sun.net.www.protocol.http.HttpURLConnection)at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)at org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:82)at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48)at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:53)at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:735)at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:670)at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:311)at zxl.com.gchighconcurrency.gchighconcurrencytest.service.OutOfStackService.sayHello(OutOfStackService.java:41)at zxl.com.gchighconcurrency.gchighconcurrencytest.service.OutOfStackService.test1(OutOfStackService.java:29)at zxl.com.gchighconcurrency.gchighconcurrencytest.controller.StackController.test1(StackController.java:22)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)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:189)at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897)at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)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:53)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.FormContentFilter.doFilterInternal(FormContentFilter.java:92)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:93)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:200)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:200)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)- locked <0x00000000edf2a520> (a org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper)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)"http-nio-8888-exec-3" #17 daemon prio=5 os_prio=0 tid=0x00007f9c04832000 nid=0x8eac waiting on condition [0x00007f9bf1205000]java.lang.Thread.State: WAITING (parking)at sun.misc.Unsafe.park(Native Method)- parking to wait for <0x00000000eddcf738> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)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:107)at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)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)"http-nio-8888-exec-2" #16 daemon prio=5 os_prio=0 tid=0x00007f9c04866000 nid=0x8eab runnable [0x00007f9bf1303000]java.lang.Thread.State: RUNNABLEat java.net.SocketInputStream.socketRead0(Native Method)at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)at java.net.SocketInputStream.read(SocketInputStream.java:170)at java.net.SocketInputStream.read(SocketInputStream.java:141)at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)at java.io.BufferedInputStream.read(BufferedInputStream.java:345)- locked <0x00000000e379f600> (a java.io.BufferedInputStream)at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:704)at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)- locked <0x00000000e379cd70> (a sun.net.www.protocol.http.HttpURLConnection)at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)- locked <0x00000000e379cd70> (a sun.net.www.protocol.http.HttpURLConnection)at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)at org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:82)at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48)at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:53)at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:735)at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:670)at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:311)at zxl.com.gchighconcurrency.gchighconcurrencytest.service.OutOfStackService.sayHello(OutOfStackService.java:41)at zxl.com.gchighconcurrency.gchighconcurrencytest.service.OutOfStackService.test1(OutOfStackService.java:29)at zxl.com.gchighconcurrency.gchighconcurrencytest.controller.StackController.test1(StackController.java:22)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)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:189)at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897)at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)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:53)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.FormContentFilter.doFilterInternal(FormContentFilter.java:92)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:93)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:200)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:200)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)- locked <0x00000000edeea800> (a org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper)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)"http-nio-8888-exec-1" #15 daemon prio=5 os_prio=0 tid=0x00007f9c04837000 nid=0x8eaa runnable [0x00007f9bf1404000]java.lang.Thread.State: RUNNABLEat java.net.SocketInputStream.socketRead0(Native Method)at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)at java.net.SocketInputStream.read(SocketInputStream.java:170)at java.net.SocketInputStream.read(SocketInputStream.java:141)at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)at java.io.BufferedInputStream.read(BufferedInputStream.java:345)- locked <0x00000000e3787980> (a java.io.BufferedInputStream)at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:704)at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)- locked <0x00000000e37850f0> (a sun.net.www.protocol.http.HttpURLConnection)at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)- locked <0x00000000e37850f0> (a sun.net.www.protocol.http.HttpURLConnection)at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)at org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:82)at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48)at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:53)at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:735)at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:670)at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:311)at zxl.com.gchighconcurrency.gchighconcurrencytest.service.OutOfStackService.sayHello(OutOfStackService.java:41)at zxl.com.gchighconcurrency.gchighconcurrencytest.service.OutOfStackService.test1(OutOfStackService.java:29)at zxl.com.gchighconcurrency.gchighconcurrencytest.controller.StackController.test1(StackController.java:22)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)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:189)at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897)at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)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:53)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.FormContentFilter.doFilterInternal(FormContentFilter.java:92)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:93)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:200)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:200)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)- locked <0x00000000ede67830> (a org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper)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)"NioBlockingSelector.BlockPoller-1" #14 daemon prio=5 os_prio=0 tid=0x00007f9c0489f800 nid=0x8ea9 runnable [0x00007f9bf1508000]java.lang.Thread.State: RUNNABLEat sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)- locked <0x00000000eddcaed8> (a sun.nio.ch.Util$2)- locked <0x00000000eddcae60> (a java.util.Collections$UnmodifiableSet)- locked <0x00000000eddcabe0> (a sun.nio.ch.EPollSelectorImpl)at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)at org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:304)"container-0" #13 prio=5 os_prio=0 tid=0x00007f9c046ac800 nid=0x8ea8 waiting on condition [0x00007f9bf1809000]java.lang.Thread.State: TIMED_WAITING (sleeping)at java.lang.Thread.sleep(Native Method)at org.apache.catalina.core.StandardServer.await(StandardServer.java:568)at org.springframework.boot.web.embedded.tomcat.TomcatWebServer$1.run(TomcatWebServer.java:181)"Catalina-utility-2" #12 prio=1 os_prio=0 tid=0x00007f9c047b8800 nid=0x8ea7 waiting on condition [0x00007f9bf251b000]java.lang.Thread.State: TIMED_WAITING (parking)at sun.misc.Unsafe.park(Native Method)- parking to wait for <0x00000000edb7f628> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)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)"Catalina-utility-1" #11 prio=1 os_prio=0 tid=0x00007f9c047b8000 nid=0x8ea6 waiting on condition [0x00007f9bf34d2000]java.lang.Thread.State: WAITING (parking)at sun.misc.Unsafe.park(Native Method)- parking to wait for <0x00000000edb7f628> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)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.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)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)"Service Thread" #7 daemon prio=9 os_prio=0 tid=0x00007f9c040da000 nid=0x8ea2 runnable [0x0000000000000000]java.lang.Thread.State: RUNNABLE"C1 CompilerThread1" #6 daemon prio=9 os_prio=0 tid=0x00007f9c040d7000 nid=0x8ea1 waiting on condition [0x0000000000000000]java.lang.Thread.State: RUNNABLE"C2 CompilerThread0" #5 daemon prio=9 os_prio=0 tid=0x00007f9c040d5000 nid=0x8ea0 waiting on condition [0x0000000000000000]java.lang.Thread.State: RUNNABLE"Signal Dispatcher" #4 daemon prio=9 os_prio=0 tid=0x00007f9c040d3800 nid=0x8e9f runnable [0x0000000000000000]java.lang.Thread.State: RUNNABLE"Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007f9c040a0800 nid=0x8e9e in Object.wait() [0x00007f9bf3ad8000]java.lang.Thread.State: WAITING (on object monitor)at java.lang.Object.wait(Native Method)at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)- locked <0x00000000ecf194c0> (a java.lang.ref.ReferenceQueue$Lock)at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)"Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x00007f9c0409c000 nid=0x8e9d in Object.wait() [0x00007f9bf3bd9000]java.lang.Thread.State: WAITING (on object monitor)at java.lang.Object.wait(Native Method)at java.lang.Object.wait(Object.java:502)at java.lang.ref.Reference.tryHandlePending(Reference.java:191)- locked <0x00000000ecf19678> (a java.lang.ref.Reference$Lock)at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)"VM Thread" os_prio=0 tid=0x00007f9c04094000 nid=0x8e9c runnable "VM Periodic Task Thread" os_prio=0 tid=0x00007f9c040dd800 nid=0x8ea3 waiting on condition JNI global references: 1067

3、查看進程下的線程。找出cpu消耗高的線程id。

命令:

[root@localhost ~]# top -Hp 36506

4、前面取到的線程id是十進制的,將十進制pid轉換為十六進制的pid

printf ?"%x" 8247

[root@localhost ~]# printf "%x\n" 36525 8ead

5、用十六進制的pid到jstack的棧日志中找到對應的線程情況。 進而找到問題代碼,本流程結束。

?

二、內存占用高

1、使用jstat查看內存使用情況

垃圾回收統計

[root@localhost ~]# jstat -gcutil 44458 250 5S0 S1 E O M CCS YGC YGCT FGC FGCT GCT 0.00 100.00 32.11 97.77 94.94 92.23 8259 100.611 1813 103.917 204.5270.00 100.00 32.11 97.77 94.94 92.23 8259 100.611 1813 103.917 204.5270.00 100.00 32.11 97.77 94.94 92.23 8259 100.611 1813 103.917 204.5270.00 100.00 32.11 97.77 94.94 92.23 8259 100.611 1813 103.917 204.5270.00 100.00 32.11 97.77 94.94 92.23 8259 100.611 1813 103.917 204.527

堆內存使用情況統計

[root@localhost ~]# jstat -gccapacity 44458 20 20NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC 10240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 181310240.0 156288.0 26944.0 2688.0 2688.0 21568.0 20480.0 312704.0 53764.0 53764.0 0.0 1081344.0 36648.0 0.0 1048576.0 4912.0 8259 1813

類加載統計

[root@localhost ~]# jstat -class 44458 1000 100 Loaded Bytes Unloaded Bytes Time 6862 12444.5 0 0.0 5.056862 12444.5 0 0.0 5.056862 12444.5 0 0.0 5.056862 12444.5 0 0.0 5.056862 12444.5 0 0.0 5.056862 12444.5 0 0.0 5.056862 12444.5 0 0.0 5.056862 12444.5 0 0.0 5.056862 12444.5 0 0.0 5.056862 12444.5 0 0.0 5.056862 12444.5 0 0.0 5.056862 12444.5 0 0.0 5.056862 12444.5 0 0.0 5.056862 12444.5 0 0.0 5.056862 12444.5 0 0.0 5.056862 12444.5 0 0.0 5.056862 12444.5 0 0.0 5.056862 12444.5 0 0.0 5.05

2、使用jmap

jmap -heap 【pid】查看整個JVM內存狀態?

[root@localhost ~]# jmap -heap 44458 Attaching to process ID 44458, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.74-b02using thread-local object allocation. Mark Sweep Compact GCHeap Configuration:MinHeapFreeRatio = 40MaxHeapFreeRatio = 70MaxHeapSize = 480247808 (458.0MB)NewSize = 10485760 (10.0MB)MaxNewSize = 160038912 (152.625MB)OldSize = 20971520 (20.0MB)NewRatio = 2SurvivorRatio = 8MetaspaceSize = 21807104 (20.796875MB)CompressedClassSpaceSize = 1073741824 (1024.0MB)MaxMetaspaceSize = 17592186044415 MBG1HeapRegionSize = 0 (0.0MB)Heap Usage: New Generation (Eden + 1 Survivor Space):capacity = 24838144 (23.6875MB)used = 13198592 (12.587158203125MB)free = 11639552 (11.100341796875MB)53.138398746701846% used Eden Space:capacity = 22085632 (21.0625MB)used = 10446080 (9.962158203125MB)free = 11639552 (11.100341796875MB)47.29808048961424% used From Space:capacity = 2752512 (2.625MB)used = 2752512 (2.625MB)free = 0 (0.0MB)100.0% used To Space:capacity = 2752512 (2.625MB)used = 0 (0.0MB)free = 2752512 (2.625MB)0.0% used tenured generation:capacity = 55054336 (52.50390625MB)used = 36454968 (34.76616668701172MB)free = 18599368 (17.73773956298828MB)66.21634306878208% used13190 interned Strings occupying 1878480 bytes.

jmap -histo [pid]??查看JVM堆中對象詳細占用情況

1810: 1 24 org.springframework.aop.support.DefaultPointcutAdvisor 1811: 1 24 org.springframework.aop.support.annotation.AnnotationClassFilter 1812: 1 24 org.springframework.aop.support.annotation.AnnotationMatchingPointcut 1813: 1 24 org.springframework.aop.target.EmptyTargetSource 1814: 1 24 org.springframework.beans.AbstractNestablePropertyAccessor$PropertyTokenHolder 1815: 1 24 org.springframework.beans.TypeConverterDelegate 1816: 1 24 org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement 1817: 1 24 org.springframework.beans.factory.config.RuntimeBeanReference 1818: 1 24 org.springframework.beans.support.ResourceEditorRegistrar 1819: 1 24 org.springframework.boot.DefaultApplicationArguments 1820: 1 24 org.springframework.boot.SpringApplicationBannerPrinter$PrintedBanner 1821: 1 24 org.springframework.boot.autoconfigure.AutoConfigurationImportSelector$AutoConfigurationEntry 1822: 1 24 org.springframework.boot.autoconfigure.AutoConfigurationPackages$BasePackages 1823: 1 24 org.springframework.boot.autoconfigure.condition.BeanTypeRegistry 1824: 1 24 org.springframework.boot.autoconfigure.condition.ConditionMessage$Style$1 1825: 1 24 org.springframework.boot.autoconfigure.condition.ConditionMessage$Style$2 1826: 1 24 org.springframework.boot.autoconfigure.condition.FilteringSpringBootCondition$ClassNameFilter$1 1827: 1 24 org.springframework.boot.autoconfigure.condition.FilteringSpringBootCondition$ClassNameFilter$2 1828: 1 24 org.springframework.boot.autoconfigure.freemarker.FreeMarkerTemplateAvailabilityProvider 1829: 1 24 org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAvailabilityProvider 1830: 1 24 org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$$EnhancerBySpringCGLIB$$fae39788$$FastClassBySpringCGLIB$$12022951

jmap -dump:format=b,file=文件名 [pid]? ?導出整個JVM 中內存信息

[root@localhost ~]# jmap -dump:format=b,file=44458-3.txt 44458 Dumping heap to /root/44458-3.txt ... Heap dump file created

使用eclipse Memory Analyzer工具分析內存日志文件(自行下載)

1)打開日志文件,看到問題點,找java應用相關的問題線程名稱:例如。http-nio-8888-exec-4

2)打開dominator_tree試圖

,并輸入線程名稱查找,可以看異常的對象。筆者的問題對象是list對象,業務類是Student。

到這里消耗內存的問題就定位到業務類,然后在代碼中找大量創建此類型的位置,進行優化。

總結

以上是生活随笔為你收集整理的使用JVM命令查询故障的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。