vvvice opened a new issue, #2836: URL: https://github.com/apache/incubator-hugegraph/issues/2836
### Problem Type (问题类型) performance (性能优化) ### Before submit - [x] 我已经确认现有的 [Issues](https://github.com/apache/hugegraph/issues) 与 [FAQ](https://hugegraph.apache.org/docs/guides/faq/) 中没有相同 / 重复问题 (I have confirmed and searched that there are no similar problems in the historical issue and documents) ### Environment (环境信息) - Server Version: 1.5.0 (Apache Release Version) - Backend: cassandra 3 nodes, HDD - OS: 8 CPUs, 16G RAM, CentOS 7.x - Data Size: 100W vertices, 100W edges ### Your Question (问题描述) 执行下列语句时并发压力测试,并发数量每次都把cpu占用压到百分之八九十发现qps不高,和官网给的性能数据相差上千倍,而且偶尔会出现超时,环境是通过nginx代理了三个server节点 1.g.V().has('sourceIPAddress','iP','192.168.1.13').outE('produce').inV().hasLabel('accessBehavior').outE('associatedOperation').inV().has('businessOperation','operateUUID','opu294').outE('result').inV().valueMap(); 2.g.V().has('sourceIPAddress','iP','192.168.1.11').outE('produce').inV().hasLabel('accessBehavior').has('time',gt('2025-07-04 14:41:32.391')).has('time',lt('2025-07-04 15:00:22.158')).outE('associatedOperation').inV().hasLabel('businessOperation').values('operateUUID'); 3.g.V().out(); 4.g.V().out().out(); 利用下列javaapiqps很低且偶尔oom 1.traverser.shortestPath(sourceId, targetId, 4); 2.traverser.kneighbor(sourceId, 2); 如何优化语句或者优化schema或者更改某些配置优化 ### Vertex/Edge example (问题点 / 边数据举例) ```javascript ``` ### Schema [VertexLabel, EdgeLabel, IndexLabel] (元数据结构) ```javascript SchemaManager schema = hugeClient.schema(); schema.propertyKey("iP").asText().ifNotExist().create(); schema.propertyKey("behaviorTrackingID").asText().ifNotExist().create(); schema.propertyKey("time").asDate().ifNotExist().create(); schema.propertyKey("loginMethod").asText().ifNotExist().create(); schema.propertyKey("ecologicalSubject").asText().ifNotExist().create(); schema.propertyKey("userName").asText().ifNotExist().create(); schema.propertyKey("operateUUID").asText().ifNotExist().create(); schema.propertyKey("operationName").asText().ifNotExist().create(); schema.propertyKey("operationRemarks").asText().ifNotExist().create(); schema.propertyKey("voucherType").asText().ifNotExist().create(); schema.propertyKey("voucherContent").asText().ifNotExist().create(); schema.propertyKey("kid").asText().ifNotExist().create(); schema.propertyKey("certificate").asText().ifNotExist().create(); schema.propertyKey("publicKey").asText().ifNotExist().create(); schema.propertyKey("businessObjectType").asText().ifNotExist().create(); schema.propertyKey("identification").asText().ifNotExist().create(); schema.propertyKey("name").asText().ifNotExist().create(); schema.propertyKey("result").asText().ifNotExist().create(); schema.propertyKey("reason").asText().ifNotExist().create(); schema.propertyKey("verificationResult").asText().ifNotExist().create(); schema.propertyKey("type").asText().ifNotExist().create(); schema.propertyKey("codeAssignmentIdentification").ifNotExist().create(); schema.propertyKey("clientID").asText().ifNotExist().create(); schema.propertyKey("URL").asText().ifNotExist().create(); schema.vertexLabel("sourceIPAddress") .usePrimaryKeyId() .properties("iP") .primaryKeys("iP") .ifNotExist() .create(); schema.vertexLabel("accessBehavior") .properties("behaviorTrackingID", "time") .primaryKeys("behaviorTrackingID") .ifNotExist() .create(); schema.vertexLabel("userIdentityCertificate") .properties("loginMethod", "ecologicalSubject", "userName") .ifNotExist() .create(); schema.vertexLabel("businessOperation") .properties("operateUUID", "operationName", "operationRemarks") .primaryKeys("operateUUID") .ifNotExist() .create(); schema.vertexLabel("oIDCIdentityCredential") .properties("voucherType", "voucherContent") .primaryKeys("voucherType") .ifNotExist() .create(); schema.vertexLabel("keyPairsIdentityCredentials") .properties("kid", "certificate", "publicKey") .primaryKeys("kid") .ifNotExist() .create(); schema.vertexLabel("businessObject") .properties("businessObjectType", "identification", "name") .primaryKeys("identification") .ifNotExist() .create(); schema.vertexLabel("operationResult") .properties("operateUUID", "result", "reason") .primaryKeys("operateUUID") .ifNotExist() .create(); schema.vertexLabel("technicalSystemIdentity") .properties("verificationResult", "type", "codeAssignmentIdentification", "clientID") .ifNotExist() .create(); schema.vertexLabel("userIdentity") .properties("verificationResult", "userName") .ifNotExist() .create(); schema.vertexLabel("page") .properties("URL") .primaryKeys("URL") .ifNotExist() .create(); schema.vertexLabel("frontEndAndBackEndInterfaces") .properties("URL") .primaryKeys("URL") .ifNotExist() .create(); schema.vertexLabel("capabilityOpenInterface") .properties("URL") .primaryKeys("URL") .ifNotExist() .create(); schema.edgeLabel("produce") .sourceLabel("sourceIPAddress") .targetLabel("accessBehavior") .ifNotExist() .create(); schema.edgeLabel("adoptVouchers_1") .sourceLabel("accessBehavior") .targetLabel("userIdentityCertificate") .ifNotExist() .create(); schema.edgeLabel("associatedOperation") .sourceLabel("accessBehavior") .targetLabel("businessOperation") .ifNotExist() .create(); schema.edgeLabel("adoptVouchers_2") .sourceLabel("accessBehavior") .targetLabel("oIDCIdentityCredential") .ifNotExist() .create(); schema.edgeLabel("adoptVouchers_3") .sourceLabel("accessBehavior") .targetLabel("keyPairsIdentityCredentials") .ifNotExist() .create(); schema.edgeLabel("operationObject") .sourceLabel("businessOperation") .targetLabel("businessObject") .ifNotExist() .create(); schema.edgeLabel("result") .sourceLabel("businessOperation") .targetLabel("operationResult") .ifNotExist() .create(); schema.edgeLabel("trueIdentity_1") .sourceLabel("accessBehavior") .targetLabel("technicalSystemIdentity") .ifNotExist() .create(); schema.edgeLabel("trueIdentity_2") .sourceLabel("accessBehavior") .targetLabel("userIdentity") .ifNotExist() .create(); schema.edgeLabel("visitCross_section_1") .sourceLabel("accessBehavior") .targetLabel("page") .ifNotExist() .create(); schema.edgeLabel("visitCross_section_2") .sourceLabel("accessBehavior") .targetLabel("frontEndAndBackEndInterfaces") .ifNotExist() .create(); schema.edgeLabel("visitCross_section_3") .sourceLabel("accessBehavior") .targetLabel("capabilityOpenInterface") .ifNotExist() .create(); schema.edgeLabel("adoptKey") .sourceLabel("oIDCIdentityCredential") .targetLabel("keyPairsIdentityCredentials") .ifNotExist() .create(); schema.indexLabel("accessBehaviorByTime") .onV("accessBehavior") .by("time") .range() .ifNotExist() .create(); schema.indexLabel("userIdentityCertificateByUserName") .onV("userIdentityCertificate") .by("userName") .secondary() .ifNotExist() .create(); schema.indexLabel("businessOperationByOperationName") .onV("businessOperation") .by("operationName") .secondary() .ifNotExist() .create(); schema.indexLabel("businessOperationByOperationRemarks") .onV("businessOperation") .by("operationRemarks") .search() .ifNotExist() .create(); schema.indexLabel("businessObjectByBusinessObjectType") .onV("businessObject") .by("businessObjectType") .secondary() .ifNotExist() .create(); schema.indexLabel("businessObjectByName") .onV("businessObject") .by("name") .secondary() .ifNotExist() .create(); schema.indexLabel("operationResultByResult") .onV("operationResult") .by("result") .search() .ifNotExist() .create(); schema.indexLabel("operationResultByReason") .onV("operationResult") .by("reason") .search() .ifNotExist() .create(); schema.indexLabel("technicalSystemIdentityByVerificationResult") .onV("technicalSystemIdentity") .by("verificationResult") .search() .ifNotExist() .create(); schema.indexLabel("technicalSystemIdentityByType") .onV("technicalSystemIdentity") .by("type") .secondary() .ifNotExist() .create(); schema.indexLabel("technicalSystemIdentityByCodeAssignmentIdentification") .onV("technicalSystemIdentity") .by("codeAssignmentIdentification") .secondary() .ifNotExist() .create(); schema.indexLabel("technicalSystemIdentityByClientID") .onV("technicalSystemIdentity") .by("clientID") .secondary() .ifNotExist() .create(); //userIdentity--verificationResult--verificationResult--userName schema.indexLabel("userIdentityByVerificationResult") .onV("userIdentity") .by("verificationResult") .search() .ifNotExist() .create(); schema.indexLabel("userIdentityByUserName") .onV("userIdentity") .by("userName") .secondary() .ifNotExist() .create(); ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@hugegraph.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org