20221226集算器+最新(2023-3-6)master分支追加数据到组表内存溢出
Jetol opened this issue · 13 comments
-------------------------客户端错误----------------------------------------
Caused by: com.scudata.common.RQException: Error in cell B12
null
java.sql.SQLException: Error in cell B11
null
at com.scudata.server.unit.JdbcTask$1.run(JdbcTask.java:127)
Caused by: com.scudata.common.RQException: Error in cell B11
null
at com.scudata.thread.Job.join(Job.java:31)
at com.scudata.dw.ColPhyTable.appendDataBlock(ColPhyTable.java:1043)
at com.scudata.dw.ColPhyTable.appendSorted(ColPhyTable.java:1475)
at com.scudata.dw.ColPhyTable.appendCache(ColPhyTable.java:4795)
at com.scudata.dw.ColPhyTable.append(ColPhyTable.java:1596)
at com.scudata.expression.mfn.dw.Append.calculate(Append.java:40)
at com.scudata.expression.operator.DotOperator.calculate(DotOperator.java:86)
at com.scudata.expression.Expression.calculate(Expression.java:160)
at com.scudata.cellset.datamodel.PgmNormalCell.calculate(PgmNormalCell.java:159)
at com.scudata.cellset.datamodel.PgmCellSet.runNext2(PgmCellSet.java:1949)
at com.scudata.cellset.datamodel.PgmCellSet.execute(PgmCellSet.java:2623)
at com.scudata.cellset.datamodel.PgmCellSet.calculateResult(PgmCellSet.java:2666)
at com.scudata.expression.fn.JDBCCall.calculate(JDBCCall.java:113)
at com.scudata.expression.Expression.calculate(Expression.java:160)
at com.scudata.expression.fn.Eval.calc(Eval.java:93)
at com.esproc.jdbc.JDBCUtil.execute(JDBCUtil.java:193)
at com.esproc.jdbc.JDBCUtil.execute(JDBCUtil.java:94)
at com.scudata.server.unit.JdbcTask$1.run(JdbcTask.java:112)
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
at com.scudata.dm.ListBase1.(ListBase1.java:30)
at com.scudata.util.CursorUtil.hashId(CursorUtil.java:636)
at com.scudata.dm.Sequence.id(Sequence.java:2647)
at com.scudata.dw.DataBlockType.checkDict(DataBlockType.java:143)
at com.scudata.dw.DataBlockType.getDataBlockType(DataBlockType.java:130)
at com.scudata.dw.DataBlockWriterJob.writeDataBlock(DataBlockWriterJob.java:67)
at com.scudata.dw.DataBlockWriterJob.writeDataBlock(DataBlockWriterJob.java:294)
at com.scudata.dw.DataBlockWriterJob.run(DataBlockWriterJob.java:43)
at com.scudata.thread.ThreadPool$WorkThread.run(ThreadPool.java:57)
------------------------------------服务端错误--------------------------------------------------
Exception in thread "UnitWorker[JDBC]:Request action:70012
execute connId=131" java.lang.OutOfMemoryError: Java heap space
at com.scudata.dw.BlockLinkWriter.(BlockLinkWriter.java:25)
at com.scudata.dw.ColPhyTable.prepareAppend(ColPhyTable.java:663)
at com.scudata.dw.ColPhyTable.appendCache(ColPhyTable.java:4787)
at com.scudata.dw.ComTable.close(ComTable.java:292)
at com.scudata.dm.ResourceManager.closeResource(ResourceManager.java:29)
at com.scudata.dm.ResourceManager.close(ResourceManager.java:86)
at com.scudata.dm.JobSpace.close(JobSpace.java:210)
at com.scudata.dm.JobSpace.close(JobSpace.java:194)
at com.scudata.dm.JobSpaceManager.closeSpace(JobSpaceManager.java:46)
at com.scudata.server.unit.ConnectionProxy.close(ConnectionProxy.java:91)
at com.scudata.server.IProxy.destroy(IProxy.java:60)
at com.scudata.server.unit.JdbcManager.execute(JdbcManager.java:139)
at com.scudata.parallel.UnitWorker.run(UnitWorker.java:111)
Exception in thread "UnitWorker" java.lang.OutOfMemoryError: Java heap space
Exception in thread "UnitWorker" java.lang.OutOfMemoryError: Java heap space
------------------------服务器ServerConsole.sh修改内存配置----------------------------------------------
内存不断的累加,直到内存溢出,内存不会释放;
-----------------------------找到内存溢出日志,希望帮助你们快些解决问题--------------------------------------------------------
splx是怎么写的?
C9的记录条数多吗?
是每次执行都溢出?还是运行了几次后才溢出的?
C9的记录条数多吗?
目前记录有6百万条,还没有那么多就已经溢出了
是每次执行都溢出?还是运行了几次后才溢出的?
我每次调用集算器服务器都溢出了,应该有5次以上;麻烦你们测试一下呀,这个也好验证了
是每次执行都溢出?还是运行了几次后才溢出的?
我们使用springboot客户端调用集算器单机服务器,调用spl脚本按批追加到组表,每批1万左右记录,5秒左右一批,10分钟左右不到,分配10G内存就溢出了;启动集算器原始Xmx1G时,3分钟都不到就内存溢出了;
是每次执行都溢出?还是运行了几次后才溢出的?
我们使用springboot客户端调用集算器单机服务器,调用spl脚本按批追加到组表,每批1万左右记录,5秒左右一批,10分钟左右不到,分配10G内存就溢出了;启动集算器原始Xmx1G时,3分钟都不到就内存溢出了;
这还是有资源没释放。
是每次执行都溢出?还是运行了几次后才溢出的?
我们使用springboot客户端调用集算器单机服务器,调用spl脚本按批追加到组表,每批1万左右记录,5秒左右一批,10分钟左右不到,分配10G内存就溢出了;启动集算器原始Xmx1G时,3分钟都不到就内存溢出了;
这还是有资源没释放。
集算器代码哪里没有释放了,请问你们有什么方案解决它
能把异常堆栈靠根的部分也发出来么
昨天更新了,可以试试新代码
昨天更新了,可以试试新代码
更新昨天的代码,把几百万条数据追加没有出现内存溢出了;也看到代码中有close socket线程了。感谢官网社区有效解决内存溢出问题!