You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@iotdb.apache.org by "刘珍 (Jira)" <ji...@apache.org> on 2022/06/30 01:47:00 UTC

[jira] [Created] (IOTDB-3698) [ schema file ] IoTDB-RPC-Client : java.lang.OutOfMemoryError: GC overhead limit exceeded

刘珍 created IOTDB-3698:
-------------------------

             Summary: [ schema file ] IoTDB-RPC-Client : java.lang.OutOfMemoryError: GC overhead limit exceeded
                 Key: IOTDB-3698
                 URL: https://issues.apache.org/jira/browse/IOTDB-3698
             Project: Apache IoTDB
          Issue Type: Bug
          Components: Core/TsFile, mpp-cluster
    Affects Versions: 0.14.0-SNAPSHOT
            Reporter: 刘珍
            Assignee: ZhaoXin
         Attachments: 1client_config.properties, 20client.properties, 50client_config.properties, log-all-20220629.0.log.gz, log_all.log

单机,数据库配置参数(其余默认):
MAX_HEAP_SIZE="128G"
MAX_DIRECT_MEMORY_SIZE="32G"
schema_engine_mode=Schema_File

测试机器:192.168.10.64   72C256G

benchmark运行附件中的脚本,即50并发,50sg,500dev,20万序列,共1亿序列,每个序列insert 1 point:
GROUP_NUMBER=50
DEVICE_NUMBER=500
SENSOR_NUMBER=200000
CLIENT_NUMBER=50
DEVICE_NAME_PREFIX=test.schema_t.d_
LOOP=1
BATCH_SIZE_PER_WRITE=1
OPERATION_PROPORTION=1:0:0:0:0:0:0:0:0:0:0

2022-06-29 23:01:09,536 [pool-17-IoTDB-RPC-Client-17] ERROR o.a.i.c.c.IoTDBDefaultThreadExceptionHandler:31 - Exception in thread pool-17-IoTDB-RPC-Client-17-55
java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:149)
        at java.lang.StringCoding.decode(StringCoding.java:193)
        at java.lang.StringCoding.decode(StringCoding.java:254)
        at java.lang.String.<init>(String.java:546)
        at org.apache.iotdb.tsfile.utils.ReadWriteIOUtils.readString(ReadWriteIOUtils.java:608)
        at org.apache.iotdb.db.metadata.mtree.store.disk.schemafile.InternalPage.getKeyByOffset(InternalPage.java:571)
        at org.apache.iotdb.db.metadata.mtree.store.disk.schemafile.InternalPage.getKeyByIndex(InternalPage.java:579)
        at org.apache.iotdb.db.metadata.mtree.store.disk.schemafile.InternalPage.getIndexByKey(InternalPage.java:518)
        at org.apache.iotdb.db.metadata.mtree.store.disk.schemafile.InternalPage.getRecordByKey(InternalPage.java:145)
        at org.apache.iotdb.db.metadata.mtree.store.disk.schemafile.InternalPage.getRecordByKey(InternalPage.java:44)
        at org.apache.iotdb.db.metadata.mtree.store.disk.schemafile.pagemgr.BTreePageManager.getTargetSegmentAddress(BTreePageManager.java:479)
        at org.apache.iotdb.db.metadata.mtree.store.disk.schemafile.pagemgr.BTreePageManager.getChildNode(BTreePageManager.java:357)
        at org.apache.iotdb.db.metadata.mtree.store.disk.schemafile.SchemaFile.getChildNode(SchemaFile.java:226)
        at org.apache.iotdb.db.metadata.mtree.store.CachedMTreeStore.loadChildFromDisk(CachedMTreeStore.java:149)
        at org.apache.iotdb.db.metadata.mtree.store.CachedMTreeStore.getChild(CachedMTreeStore.java:127)
        at org.apache.iotdb.db.metadata.mtree.MTreeBelowSGCachedImpl.getChildFromPinnedMNode(MTreeBelowSGCachedImpl.java:1512)
        at org.apache.iotdb.db.metadata.schemaregion.SchemaRegionSchemaFileImpl.getMeasurementMNode(SchemaRegionSchemaFileImpl.java:1218)
        at org.apache.iotdb.db.metadata.schemaregion.SchemaRegionSchemaFileImpl.getMeasurementMNodeForInsertPlan(SchemaRegionSchemaFileImpl.java:1619)
        at org.apache.iotdb.db.metadata.schemaregion.SchemaRegionSchemaFileImpl.getSeriesSchemasAndReadLockDevice(SchemaRegionSchemaFileImpl.java:1519)
        at org.apache.iotdb.db.metadata.LocalSchemaProcessor.getSeriesSchemasAndReadLockDevice(LocalSchemaProcessor.java:1273)
        at org.apache.iotdb.db.engine.StorageEngine.getSeriesSchemas(StorageEngine.java:1055)
        at org.apache.iotdb.db.engine.StorageEngine.insertTablet(StorageEngine.java:650)
        at org.apache.iotdb.db.qp.executor.PlanExecutor.insertTablet(PlanExecutor.java:1950)
        at org.apache.iotdb.db.qp.executor.PlanExecutor.processNonQuery(PlanExecutor.java:315)
        at org.apache.iotdb.db.service.basic.StandaloneServiceProvider.executeNonQuery(StandaloneServiceProvider.java:53)
        at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl.executeNonQueryPlan(TSServiceImpl.java:2108)
        at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl.insertTablet(TSServiceImpl.java:1593)
        at org.apache.iotdb.service.rpc.thrift.TSIService$Processor$insertTablet.getResult(TSIService.java:3328)
        at org.apache.iotdb.service.rpc.thrift.TSIService$Processor$insertTablet.getResult(TSIService.java:3308)
        at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
        at org.apache.iotdb.db.service.thrift.ProcessorWithMetrics.process(ProcessorWithMetrics.java:64)
        at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:248)
2022-06-29 23:01:48,310 [pool-17-IoTDB-RPC-Client-101] INFO  o.a.i.d.q.c.SessionManager:124 - IoTDB: Login status: Login successfully. User : root, opens Session-152
2022-06-29 23:07:15,232 [pool-8-IoTDB-Flush-27] ERROR o.a.i.d.e.s.TsFileProcessor:1235 - root.test.g_35-0: 1656512059650-1-0-0.tsfile meet error when flushing a memtable, change system mode to read-only
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at org.apache.iotdb.db.engine.flush.MemTableFlushTask.syncFlushMemTable(MemTableFlushTask.java:138)
        at org.apache.iotdb.db.engine.storagegroup.TsFileProcessor.flushOneMemTable(TsFileProcessor.java:1224)
        at org.apache.iotdb.db.engine.flush.FlushManager$FlushThread.runMayThrow(FlushManager.java:131)
        at org.apache.iotdb.commons.concurrent.WrappedRunnable.run(WrappedRunnable.java:32)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded





--
This message was sent by Atlassian Jira
(v8.20.10#820010)