Java Windows服务器上CPU使用率高的故障排除
我们有基于J2EE的web应用程序。在我们的生产环境中,我们间歇性地面临高CPU使用率(80-90%)。 我们无法在QA环境中复制它 生产环境:Windows 2012服务器(64位)、JDK 1.8(64位) 对于故障排除,我们采用了线程转储。 它显示了总共215个线程Java Windows服务器上CPU使用率高的故障排除,java,performance,cpu,Java,Performance,Cpu,我们有基于J2EE的web应用程序。在我们的生产环境中,我们间歇性地面临高CPU使用率(80-90%)。 我们无法在QA环境中复制它 生产环境:Windows 2012服务器(64位)、JDK 1.8(64位) 对于故障排除,我们采用了线程转储。 它显示了总共215个线程 111 threads are in WAITING status 34 threads are in RUNNABLE status 67 threads are in TIMED_WAITING status 3 thre
111 threads are in WAITING status
34 threads are in RUNNABLE status
67 threads are in TIMED_WAITING status
3 threads are in BLOCKED status
我们如何找到哪些线程导致CPU使用率高
线程转储
2016-03-01 11:07:52全线程转储Java热点(TM)64位服务器虚拟机
(25.5-b02混合模式):
“螺纹-739969”-螺纹t@807668java.lang.Thread.State:正在等待
在java.lang.Object.wait(本机方法)
-正在等待(org.apache.solr.util.ConcurrentLRUCache$CleanupThread)
wait(Object.java:502)位于
org.apache.solr.util.ConcurrentLRUCache$CleanupThread.run(ConcurrentLRUCache.java:604)
锁定可拥有的同步器:
-没有
“螺纹-739968”-螺纹t@807667java.lang.Thread.State:正在等待
在java.lang.Object.wait(本机方法)
-正在等待(org.apache.solr.util.ConcurrentLRUCache$CleanupThread)
wait(Object.java:502)位于
org.apache.solr.util.ConcurrentLRUCache$CleanupThread.run(ConcurrentLRUCache.java:604)
锁定可拥有的同步器:
-没有
“螺纹-739963”-螺纹t@807662java.lang.Thread.State:正在等待
在java.lang.Object.wait(本机方法)
-正在等待(org.apache.solr.util.ConcurrentLRUCache$CleanupThread)
wait(Object.java:502)位于
org.apache.solr.util.ConcurrentLRUCache$CleanupThread.run(ConcurrentLRUCache.java:604)
锁定可拥有的同步器:
-没有
“螺纹-739962”-螺纹t@807661java.lang.Thread.State:正在等待
在java.lang.Object.wait(本机方法)
-正在等待(org.apache.solr.util.ConcurrentLRUCache$CleanupThread)
wait(Object.java:502)位于
org.apache.solr.util.ConcurrentLRUCache$CleanupThread.run(ConcurrentLRUCache.java:604)
锁定可拥有的同步器:
-没有
“螺纹-739960”-螺纹t@807659java.lang.Thread.State:正在等待
在java.lang.Object.wait(本机方法)
-正在等待(org.apache.solr.util.ConcurrentLRUCache$CleanupThread)
wait(Object.java:502)位于
org.apache.solr.util.ConcurrentLRUCache$CleanupThread.run(ConcurrentLRUCache.java:604)
锁定可拥有的同步器:
-没有
“螺纹-739959”-螺纹t@807658java.lang.Thread.State:正在等待
在java.lang.Object.wait(本机方法)
-正在等待(org.apache.solr.util.ConcurrentLRUCache$CleanupThread)
wait(Object.java:502)位于
org.apache.solr.util.ConcurrentLRUCache$CleanupThread.run(ConcurrentLRUCache.java:604)
锁定可拥有的同步器:
-没有
“httpShardExecutor-3-thread-57429-processing-{core=actions注释,
副本=核心节点1,
ShardRequest.shards=s1.asite.com:8983//solr//actionscomments | s1r1.asite.com:8983//solr//actionscomments,
node_name=10.120.112.31:8983_solr,shard=shard1,
集合=操作建议,
ShardRequest.urlList=[,,
}“-线程t@807648
java.lang.Thread.State:可在
位于的java.net.SocketInputStream.socketRead0(本机方法)
java.net.SocketInputStream.read(SocketInputStream.java:150)位于
java.net.SocketInputStream.read(SocketInputStream.java:121)位于
org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:160)
在
org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:84)
在
org.apache.http.impl.io.SocketInputBuffer.isDataAvailable(SocketInputBuffer.java:95)
在
org.apache.http.impl.AbstractHttpClientConnection.isStale(AbstractHttpClientConnection.java:310)
在
org.apache.http.impl.conn.ManagedClientConnectionImpl.isStale(ManagedClientConnectionImpl.java:158)
在
org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:433)
在
org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:882)
在
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
在
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
在
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
在
org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:466)
在
org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:235)
在
org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:227)
在
org.apache.solr.client.solrj.impl.LBHttpSolrClient.doRequest(LBHttpSolrClient.java:376)
在
org.apache.solr.client.solrj.impl.LBHttpSolrClient.request(LBHttpSolrClient.java:328)
在
org.apache.solr.handler.component.HttpShardHandlerFactory.makeLoadBalancedRequest(HttpShardHandlerFactory.java:246)
在
org.apache.solr.handler.component.HttpShardHandler$1.call(HttpShardHandler.java:221)
在
org.apache.solr.handler.component.HttpShardHandler$1.call(HttpShardHandler.java:183)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
Executors$RunnableAdapter.call(Executors.java:511)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
org.apache.solr.common.util.execututil$MDCAwareThreadPoolExecutor$1.run(execututil.java:148)
在
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
在
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
运行(Thread.java:745)
锁定可拥有的同步器:
-锁定(java.util.concurrent.ThreadPoolExecutor$Worker)
用于标识占用CPU的线程。这是一篇关于inte的好文章