PowerJob icon indicating copy to clipboard operation
PowerJob copied to clipboard

server执行一段时间后日志报OOM

Open Real-lilYoung opened this issue 1 year ago • 2 comments

配置

powerJob版本:4.0.1

##现象描述 项目压测过程中发现运行一段时间后,调试面板无法在线查看日志,server端内存打满,但是任务调度看起来不影响 只是日志存储失效 日志调试

##日志信息 at org.h2.message.DbException.getJdbcSQLException(DbException.java:429) ~[h2-1.4.200.jar:1.4.200] at org.h2.message.DbException.get(DbException.java:194) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Session.getTransaction(Session.java:1792) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Session.getStatementSavepoint(Session.java:1804) ~[h2-1.4.200.jar:1.4.200] at org.h2.engine.Session.setSavepoint(Session.java:915) ~[h2-1.4.200.jar:1.4.200] at org.h2.command.Command.executeUpdate(Command.java:244) ~[h2-1.4.200.jar:1.4.200] at org.h2.jdbc.JdbcConnection.rollbackInternal(JdbcConnection.java:1530) ~[h2-1.4.200.jar:1.4.200] at org.h2.jdbc.JdbcConnection.rollback$original$g1zJIQ0s(JdbcConnection.java:561) ~[h2-1.4.200.jar:1.4.200] at org.h2.jdbc.JdbcConnection.rollback$original$g1zJIQ0s$accessor$5FrwePGb(JdbcConnection.java) ~[h2-1.4.200.jar:1.4.200] at org.h2.jdbc.JdbcConnection$auxiliary$oBfFg9Mk.call(Unknown Source) ~[h2-1.4.200.jar:1.4.200] at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInter.intercept(InstMethodsInter.java:86) ~[skywalking-agent.jar:8.1.0] at org.h2.jdbc.JdbcConnection.rollback(JdbcConnection.java) ~[h2-1.4.200.jar:1.4.200] at com.zaxxer.hikari.pool.ProxyConnection.rollback(ProxyConnection.java:396) ~[HikariCP-3.4.5.jar:?] at com.zaxxer.hikari.pool.HikariProxyConnection.rollback(HikariProxyConnection.java) ~[HikariCP-3.4.5.jar:?] at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.rollback(AbstractLogicalConnectionImplementor.java:121) ~[hibernate-core-5.4.20.Final.jar:5.4.20.Final] at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.rollback(JdbcResourceLocalTransactionCoordinatorImpl.java:304) ~[hibernate-core-5.4.20.Final.jar:5.4.20.Final] at org.hibernate.engine.transaction.internal.TransactionImpl.rollback(TransactionImpl.java:142) ~[hibernate-core-5.4.20.Final.jar:5.4.20.Final] at org.springframework.orm.jpa.JpaTransactionManager.doRollback(JpaTransactionManager.java:561) ~[spring-orm-5.2.8.RELEASE.jar:5.2.8.RELEASE] ... 33 more Caused by: java.lang.IllegalStateException: java.lang.OutOfMemoryError: Direct buffer memory [1.4.200/3] at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:950) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.store(MVStore.java:1338) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.store(MVStore.java:1312) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.tryCommit(MVStore.java:1272) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.beforeWrite(MVStore.java:2463) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.beforeWrite(MVMap.java:1028) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.operate(MVMap.java:1792) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.rewrite(MVMap.java:614) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.rewritePage(MVMap.java:775) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.rewrite(MVMap.java:734) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.rewrite(MVMap.java:748) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.rewrite(MVMap.java:748) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.rewrite(MVMap.java:748) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.rewrite(MVMap.java:710) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.compactRewrite(MVStore.java:2137) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.rewriteChunks(MVStore.java:2026) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.doMaintenance(MVStore.java:2844) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.writeInBackground(MVStore.java:2788) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore$BackgroundWriterThread.run(MVStore.java:3290) ~[h2-1.4.200.jar:1.4.200] Caused by: java.lang.OutOfMemoryError: Direct buffer memory at java.nio.Bits.reserveMemory(Bits.java:694) ~[?:1.8.0_181] at java.nio.DirectByteBuffer.(DirectByteBuffer.java:123) ~[?:1.8.0_181] at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:311) ~[?:1.8.0_181] at sun.nio.ch.Util.getTemporaryDirectBuffer(Util.java:241) ~[?:1.8.0_181] at sun.nio.ch.IOUtil.write(IOUtil.java:58) ~[?:1.8.0_181] at sun.nio.ch.FileChannelImpl.writeInternal(FileChannelImpl.java:778) ~[?:1.8.0_181] at sun.nio.ch.FileChannelImpl.write(FileChannelImpl.java:764) ~[?:1.8.0_181] at org.h2.store.fs.FileNio.write(FilePathNio.java:79) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.DataUtils.writeFully(DataUtils.java:475) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.FileStore.writeFully(FileStore.java:113) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.write(MVStore.java:1111) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.storeNow(MVStore.java:1479) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.store(MVStore.java:1334) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.store(MVStore.java:1312) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.tryCommit(MVStore.java:1272) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.beforeWrite(MVStore.java:2463) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.beforeWrite(MVMap.java:1028) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.operate(MVMap.java:1792) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.rewrite(MVMap.java:614) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.rewritePage(MVMap.java:775) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.rewrite(MVMap.java:734) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.rewrite(MVMap.java:748) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.rewrite(MVMap.java:748) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.rewrite(MVMap.java:748) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVMap.rewrite(MVMap.java:710) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.compactRewrite(MVStore.java:2137) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.rewriteChunks(MVStore.java:2026) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.doMaintenance(MVStore.java:2844) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore.writeInBackground(MVStore.java:2788) ~[h2-1.4.200.jar:1.4.200] at org.h2.mvstore.MVStore$BackgroundWriterThread.run(MVStore.java:3290) ~[h2-1.4.200.jar:1.4.200]

额外信息&配置补充

任务量在100个左右,都是cron的方式,每过整5分钟一起执行 目前server端一些数据库连接配置 spring.datasource.core.hikari.maximum-pool-size=20 spring.datasource.core.hikari.minimum-idle=5

大佬帮忙问题出在哪里,如何调整!!3Q!!

Real-lilYoung avatar Feb 21 '24 03:02 Real-lilYoung

Direct buffer memory 分配了多少?JVM 的内存信息方便贴一下吗?

KFCFans avatar Feb 21 '24 13:02 KFCFans

还有就是在线日志量不要太大了。 其实任务调试稳定后,建议关闭调整在线日志级别,或者直接改为本地日志(直接在控制台配置即可)。

KFCFans avatar Feb 21 '24 13:02 KFCFans