Performance degradation during load #3566
Replies: 2 comments 11 replies
-
By default configuration isn't tuned and the throughput is limited. I think it's better to tune the default configuration for new JanusGraph users, but for now I would suggest taking a look at the following configuration options.
I don't know how heavy operations you are performing but usually it's not the bottleneck of Scylla nodes. Nevertheless you should check ScyllaDB metrics as well to verify there is no any limitations on that side. Usually if you have good network capping to handle all load it shouldn't be a problem with network throughput either (nevertheless it's always better to check just in case). |
Beta Was this translation helpful? Give feedback.
-
It strikes me that the reads on the graphindex take much longer than those on the edgestore. Are you sure that the indexed property values have a high cardinatlity? See the section "caveat" in this blog: https://li-boxuan.medium.com/janusgraph-deep-dive-part-2-demystify-indexing-d26e71edb386 |
Beta Was this translation helpful? Give feedback.
-
We have the operation on backend that performs few janusgraph queries. The total execution time of operation is ~100ms average. We use indexes on vertexes and not full graph scans.
When we start to perform multiple operations (100-200) in paralell the performance started to degradate (5000-9000ms).
We tried different configurations without any results.
All metrics and configurations are below. Are there any ideas what can be improved?
Configuration:
3 pods of Janusgraph with following deployment configuration:
env:
- name: JAVA_OPTIONS
value: >-
-Xms256m -Xmx6144m -Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.rmi.port=9999
- name: gremlinserver.threadPoolWorker
value: '16'
- name: gremlinserver.gremlinPool
value: '32'
- name: gremlinserver.writeBufferHighWaterMark
value: '6553600'
- name: gremlinserver.writeBufferLowWaterMark
value: '627680'
- name: gremlinserver.maxContentLength
value: '365536'
- name: gremlinserver.resultIterationBatchSize
value: '128'
- name: gremlinserver.evaluationTimeout
value: '1800000'
- name: janusgraph.storage.cql.local-datacenter
value: northcentralus
- name: janusgraph.cassandra.keyspace
value: janusgraph
- name: JANUS_PROPS_TEMPLATE
value: cql
- name: janusgraph.storage.hostname
value: *****
- name: janusgraph.ids.block-size
value: '100000'
- name: janusgraph.storage.cql.read-consistency-level
value: QUORUM
- name: janusgraph.storage.cql.write-consistency-level
value: QUORUM
- name: janusgraph.storage.cql.replication-factor
value: '3'
- name: janusgraph.cache.db-cache
value: 'false'
- name: janusgraph.query.batch
value: 'true'
- name: janusgraph.query.batch-property-prefetch
value: 'true'
- name: janusgraph.query.smart-limit
value: 'false'
- name: janusgraph.metrics.enabled
value: 'true'
- name: janusgraph.metrics.prefix
value: janusgraph
- name: janusgraph.metrics.jmx.enabled
value: 'true'
- name: janusgraph.metrics.jmx.domain
value: janusgraph
- name: janusgraph.storage.batch-loading
value: 'false'
- name: janusgraph.storage.page-size
value: '500'
- name: janusgraph.storage.cql.batch-statement-size
value: '100'
resources:
limits:
cpu: 850m
memory: 6096Mi
requests:
cpu: 650m
memory: 5096Mi
CQL janusgraph.graphindex latency during load:
CQL janusgraph.edgestore latency during load:
Grmelin dashboard:
Janusgraph dashabords:
Beta Was this translation helpful? Give feedback.
All reactions