From f27c3ee79a1cf75c4c71cdf093bcb5d9d51616ea Mon Sep 17 00:00:00 2001 From: Jozef Volak Date: Mon, 20 Feb 2023 09:06:58 +0100 Subject: [PATCH] Conductor locking, increase CPU resource limits --- composefiles/swarm-workflow-manager.yml | 12 +++++++---- config/conductor/config.properties | 27 ++++++++++++++++++++----- config/dev_settings.txt | 2 +- config/high_settings.txt | 2 +- config/prod_settings.txt | 2 +- 5 files changed, 33 insertions(+), 12 deletions(-) diff --git a/composefiles/swarm-workflow-manager.yml b/composefiles/swarm-workflow-manager.yml index 12ef46a..ae6d61b 100644 --- a/composefiles/swarm-workflow-manager.yml +++ b/composefiles/swarm-workflow-manager.yml @@ -23,6 +23,9 @@ x-placement: &placement x-traefik-label: &traefik_labels - traefik.enable=false +x-tcp_keepalive: &tcp_keepalive + net.ipv4.tcp_keepalive_time: 300 + x-wfm-enabled: &wfm-enabled WORKFLOW_MANAGER_ENABLED=true x-uniconfig-enabled: &uniconfig-enabled @@ -38,7 +41,7 @@ x-dt-enabled: &dt-enabled services: krakend: - image: frinx/krakend:latest + image: frinx/krakend:1.0.5 # user: root logging: *logging_loki environment: @@ -65,7 +68,6 @@ services: - *uniconfig-enabled - *l3vpn-enabled - *dt-enabled - volumes: - ${UF_CONFIG_PATH}/krakend:/etc/krakend:ro secrets: @@ -115,7 +117,7 @@ services: memory: ${KD_RES_LIMIT_MEM} conductor-server: - image: frinx/conductor-server:stable-1.0.X + image: frinx/conductor-server:2.0.1 # user: guest logging: *logging_loki environment: @@ -148,7 +150,7 @@ services: cap_drop: - all sysctls: - net.ipv4.tcp_keepalive_time: 300 + <<: *tcp_keepalive deploy: labels: *traefik_labels <<: *placement @@ -194,6 +196,8 @@ services: hard: -1 cap_drop: - all + sysctls: + <<: *tcp_keepalive deploy: labels: *traefik_labels <<: *placement diff --git a/config/conductor/config.properties b/config/conductor/config.properties index 868e390..9856982 100644 --- a/config/conductor/config.properties +++ b/config/conductor/config.properties @@ -33,16 +33,19 @@ conductor.additional.modules=com.netflix.conductor.contribs.metrics.MetricsRegis conductor.metrics-logger.enabled=true conductor.metrics-logger.reportPeriodSeconds=15 +conductor.metrics-datadog.enabled=false +conductor.metrics-logger.enable=false +conductor.metrics-prometheus.enabled=false # Load sample kitchen sink workflow loadSample=false # Increase payload threshold limits for transferring big schemas to PostgreSQL -conductor.app.workflowInputPayloadSizeThreshold=25 -conductor.app.workflowOutputPayloadSizeThreshold=25 +conductor.app.workflowInputPayloadSizeThreshold=85 +conductor.app.workflowOutputPayloadSizeThreshold=85 conductor.app.maxWorkflowInputPayloadSizeThreshold=1024000 conductor.app.maxWorkflowOutputPayloadSizeThreshold=1024000 -conductor.app.taskInputPayloadSizeThreshold=25 -conductor.app.taskOutputPayloadSizeThreshold=25 +conductor.app.taskInputPayloadSizeThreshold=85 +conductor.app.taskOutputPayloadSizeThreshold=85 conductor.app.maxTaskInputPayloadSizeThreshold=1024000 conductor.app.maxTaskOutputPayloadSizeThreshold=1024000 @@ -54,4 +57,18 @@ conductor.external-payload-storage.postgres.max-data-days=0 conductor.external-payload-storage.postgres.max-data-months=0 conductor.external-payload-storage.postgres.max-data-years=1 -conductor.app.taskExecutionPostponeDuration=0 \ No newline at end of file +conductor.app.taskExecutionPostponeDuration=0 + +#### Performance / timer tweaks #### +conductor.app.systemTaskWorkerCallbackDuration=10 +conductor.app.workflowOffsetTimeout=10 + +# local only lock works only with a single conductor instance NOT in an HA setup +conductor.workflow-execution-lock.type=local_only +conductor.app.workflowExecutionLockEnabled=true + + +conductor.workflow-repair-service.enabled=false + +# management.security.enabled=false +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration diff --git a/config/dev_settings.txt b/config/dev_settings.txt index 79ca00d..7bdd506 100644 --- a/config/dev_settings.txt +++ b/config/dev_settings.txt @@ -50,7 +50,7 @@ CS_ULIMIT_NOFILE_SOFT=65535 CS_ULIMIT_NOFILE_HARD=65535 CS_ULIMIT_NPROC_SOFT=5000 CS_ULIMIT_NPROC_HARD=5000 -CS_RES_LIMIT_CPUS=2 +CS_RES_LIMIT_CPUS=4 CS_RES_LIMIT_MEM=4G ES_ULIMIT_NOFILE_SOFT=65535 diff --git a/config/high_settings.txt b/config/high_settings.txt index 5af5e7d..c9695c3 100644 --- a/config/high_settings.txt +++ b/config/high_settings.txt @@ -50,7 +50,7 @@ CS_ULIMIT_NOFILE_SOFT=65535 CS_ULIMIT_NOFILE_HARD=65535 CS_ULIMIT_NPROC_SOFT=5000 CS_ULIMIT_NPROC_HARD=5000 -CS_RES_LIMIT_CPUS=2 +CS_RES_LIMIT_CPUS=4 CS_RES_LIMIT_MEM=11G ES_ULIMIT_NOFILE_SOFT=65535 diff --git a/config/prod_settings.txt b/config/prod_settings.txt index 63ec9c8..2994402 100644 --- a/config/prod_settings.txt +++ b/config/prod_settings.txt @@ -50,7 +50,7 @@ CS_ULIMIT_NOFILE_SOFT=65535 CS_ULIMIT_NOFILE_HARD=65535 CS_ULIMIT_NPROC_SOFT=5000 CS_ULIMIT_NPROC_HARD=5000 -CS_RES_LIMIT_CPUS=2 +CS_RES_LIMIT_CPUS=4 CS_RES_LIMIT_MEM=4G ES_ULIMIT_NOFILE_SOFT=65535