Hi everyone,
my name is Luca and I’m using Camunda 7 CE (version 7.20.0) to manage a series of processes that control robots in an industrial plant, these are the dependencies of my project:
vaadinVersion=24.3.0
hillaVersion=2.2.0
springVersion=3.1.2
camundaVersion=7.20.0
camelVersion=4.1.0
hazelcastVersion=5.2.4
postgresqlVersion=42.6.0
jibVersion=3.4.2
The spring boot application that contains the Camunda engine, is deployed with a .jar file executed as a service among the Windows services.
We are talking about a Camunda instance that in production should support the load of 5/10 processes at the same time (so very few reading the online documentation).
At the moment Camunda must control the movements of only 1 robot.
When the .jar is running as a service, and I check its resource usage from the task manager, I see that it easily consumes 2 GB of RAM, this value seems very strange to me.
I don’t know what to expect when instead of having to manage 1 robot, I will have to manage a fleet of 10 robots.
It seems to me a high RAM consumption by the engine. Is it possible?
I attach below the application.yaml file with all the parameters that I inserted:
management:
endpoints:
web:
exposure:
include:
- prometheus
endpoint:
prometheus:
enabled: true
metrics:
export:
prometheus:
enabled: true
#spring.datasource.url: jdbc:h2:file:./camunda-h2-database
spring.datasource:
url: jdbc:postgresql://localhost:5432/camunda_cg
username: fluid
password: fluid
driver-class-name: org.postgresql.Driver
#logging:
# level:
# root: info
# org.springframework: debug
# org.camunda: debug
camunda.bpm.admin-user:
id: admin
password: admin
server:
port: 8081
camunda:
bpm:
history-level: activity
job-execution:
wait-time-in-millis: 1000
max-wait: 5000
generic-properties:
properties:
historyCleanupBatchWindowStartTime: "00:01"
historyCleanupBatchWindowEndTime: "06:59"
historyCleanupStrategy: removalTimeBased
batchOperationHistoryTimeToLive: "P1D"
historyRemovalTimeStrategy: "end"
historyCleanupEnabled: true
historyTimeToLive: P1D
Based on your experience are there other parameters, that could help me keep the workload low?
It seems strange to me that if I do not have processes running, the engine still uses 1 or 2 GB.
The engine is not distributed, it is running only on a Windows server machine.
I would like to point out that I have not run any queries to optimize the indexes, the database is the one that is initially created.
In theory, if the database slowed down or Camunda slow, then it could be an index problem, but not if Camunda uses too much RAM.
Please tell me if I have left out any useful details for a more in-depth analysis.
I installed Prometeus last night and so since yesterday I have started to collect some metrics from the production environment, I could attach them at the end of this day.
Thank you in advance,
Luca