100% CPU 与 Tomcat 池

问题描述 投票:0回答:0

下面是线程随机导致 100% CPU 使用率,它只有在节点重新启动时才会解决,需要帮助确定根本原因,我的猜测与导致 CPU SPIKE 的某些循环有关

stackTrace:
java.lang.Thread.State: RUNNABLE\
at javax.net.ssl.SSLEngineResult.<init>([email protected]/SSLEngineResult.java:196)\
at sun.security.ssl.SSLEngineImpl.writeRecord([email protected]/SSLEngineImpl.java:164)\
at sun.security.ssl.SSLEngineImpl.wrap([email protected]/SSLEngineImpl.java:136)\
- eliminated <0x00000000c5c5ebb8> (a sun.security.ssl.SSLEngineImpl)\
at sun.security.ssl.SSLEngineImpl.wrap([email protected]/SSLEngineImpl.java:116)\
- locked <0x00000000c5c5ebb8> (a sun.security.ssl.SSLEngineImpl)\
at javax.net.ssl.SSLEngine.wrap([email protected]/SSLEngine.java:482)\
at oracle.net.nt.SSLSocketChannel.shutdown(SSLSocketChannel.java:381)\
- locked <0x00000000c5c5e868> (a oracle.net.nt.SSLSocketChannel)\
at oracle.net.nt.SSLSocketChannel.write(SSLSocketChannel.java:242)\
at oracle.net.ns.NIOPacket.writeToSocketChannel(NIOPacket.java:302)\
at oracle.net.ns.NIONSDataChannel.writeDataToSocketChannel(NIONSDataChannel.java:173)\
at oracle.net.ns.NIONSDataChannel.writeDataToSocketChannel(NIONSDataChannel.java:124)\
at oracle.jdbc.driver.T4CMAREngineNIO.flush(T4CMAREngineNIO.java:727)\
at oracle.jdbc.driver.T4CMAREngineNIO.prepareForUnmarshall(T4CMAREngineNIO.java:733)\
at oracle.jdbc.driver.T4CMAREngineNIO.unmarshalUB1(T4CMAREngineNIO.java:413)\
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:485)\
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252)\
at oracle.jdbc.driver.T4C7Ocommoncall.doOCOMMIT(T4C7Ocommoncall.java:72)\
at oracle.jdbc.driver.T4CConnection.doCommit(T4CConnection.java:961)\
- eliminated <0x00000000c5c59900> (a oracle.jdbc.driver.T4CConnection)\
at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:1937)\
- locked <0x00000000c5c59900> (a oracle.jdbc.driver.T4CConnection)\
at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:1942)\
at jdk.internal.reflect.GeneratedMethodAccessor55.invoke(Unknown Source)\
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke([email protected]/DelegatingMethodAccessorImpl.java:43)\
at java.lang.reflect.Method.invoke([email protected]/Method.java:566)\
at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:131)\
at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109)\
at org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke(AbstractCreateStatementInterceptor.java:79)\
at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109)\
at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:81)\
at com.sun.proxy.$Proxy81.commit(Unknown Source)\
at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.commit(AbstractLogicalConnectionImplementor.java:86)\
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:282)\
at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:101)\
at io.dropwizard.hibernate.SessionFactoryHealthCheck.lambda$check$0(SessionFactoryHealthCheck.java:56)\
at io.dropwizard.hibernate.SessionFactoryHealthCheck$$Lambda$797/0x0000000840b16440.call(Unknown Source)\
at java.util.concurrent.FutureTask.run([email protected]/FutureTask.java:264)\
at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1128)\
at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)\
at com.codahale.metrics.InstrumentedThreadFactory$InstrumentedRunnable.run(InstrumentedThreadFactory.java:66)\
at java.lang.Thread.run([email protected]/Thread.java:834)\
Locked ownable synchronizers:\
- <0x00000000c2c9c570> (a java.util.concurrent.ThreadPoolExecutor$Worker)\
java spring oracle hibernate jdbc
© www.soinside.com 2019 - 2024. All rights reserved.