From ae701284796098b13eea44bc93ed116cebf00296 Mon Sep 17 00:00:00 2001 From: Jacob Cody Wimer Date: Thu, 3 Feb 2022 21:33:24 +0000 Subject: [PATCH] Docker compose deploys use the correct passenger workers --- deploy/deploy-test.sh | 6 ++++++ deploy/docker-compose-test.yml | 2 ++ deploy/kubernetes/manifests/wrestlingdev.yaml | 4 +++- deploy/rails-prod-Dockerfile | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/deploy/deploy-test.sh b/deploy/deploy-test.sh index 74d3cfa..d74bd4e 100755 --- a/deploy/deploy-test.sh +++ b/deploy/deploy-test.sh @@ -1,5 +1,11 @@ #!/bin/bash project_dir="$(dirname $( dirname $(readlink -f ${BASH_SOURCE[0]})))" +RAM_KB=$(grep MemTotal /proc/meminfo | awk '{print $2}') +RAM_MB=$(expr $RAM_KB / 1024) +RAM_GB=$(expr $RAM_MB / 1024) +RAM_WITHOUT_OTHER_SERVICES=$(expr $RAM_MB - 1024) # other services use ~1024MB of RAM +PASSENGER_POOL_FACTOR=$(expr $RAM_WITHOUT_OTHER_SERVICES / 256) # 2 pool workers use ~256MB of RAM +PASSENGER_POOL_SIZE=$(expr $PASSENGER_POOL_FACTOR * 2) #docker build -t wrestlingdev:test -f ${project_dir}/deploy/rails-prod-Dockerfile ${project_dir} docker-compose -f ${project_dir}/deploy/docker-compose-test.yml kill diff --git a/deploy/docker-compose-test.yml b/deploy/docker-compose-test.yml index c766e36..7c7dc8e 100644 --- a/deploy/docker-compose-test.yml +++ b/deploy/docker-compose-test.yml @@ -28,6 +28,7 @@ services: - WRESTLINGDEV_INFLUXDB_DATABASE=wrestlingdev - WRESTLINGDEV_INFLUXDB_HOST=influxdb - WRESTLINGDEV_INFLUXDB_PORT=8086 + - PASSENGER_POOL_SIZE=${PASSENGER_POOL_SIZE} networks: database: caching: @@ -67,6 +68,7 @@ services: - WRESTLINGDEV_INFLUXDB_DATABASE=wrestlingdev - WRESTLINGDEV_INFLUXDB_HOST=influxdb - WRESTLINGDEV_INFLUXDB_PORT=8086 + - PASSENGER_POOL_SIZE=${PASSENGER_POOL_SIZE} networks: database: caching: diff --git a/deploy/kubernetes/manifests/wrestlingdev.yaml b/deploy/kubernetes/manifests/wrestlingdev.yaml index ff5e19f..0c01030 100644 --- a/deploy/kubernetes/manifests/wrestlingdev.yaml +++ b/deploy/kubernetes/manifests/wrestlingdev.yaml @@ -34,12 +34,14 @@ spec: image: jcwimer/wrestlingdev:prod imagePullPolicy: Always command: ["bundle"] - args: ["exec", "passenger", "start", "-p", "80", "--max-pool-size", "3","--environment", "production"] + args: ["exec", "passenger", "start", "-p", "80", "--max-pool-size", "2","--environment", "production"] ports: - containerPort: 80 env: - name: RAILS_ENV value: production + - name: PASSENGER_POOL_SIZE + value: "2" - name: WRESTLINGDEV_DB_NAME value: wrestlingdev - name: WRESTLINGDEV_DB_USR diff --git a/deploy/rails-prod-Dockerfile b/deploy/rails-prod-Dockerfile index 3769a73..1986811 100644 --- a/deploy/rails-prod-Dockerfile +++ b/deploy/rails-prod-Dockerfile @@ -52,7 +52,7 @@ EXPOSE 443 # Tini solves the zombie PID problem ENTRYPOINT ["/tini", "--"] -CMD bundle exec passenger start --max-pool-size 2 --min-instances 2 --environment production -p 80 +CMD bundle exec passenger start --max-pool-size ${PASSENGER_POOL_SIZE} --min-instances ${PASSENGER_POOL_SIZE} --environment production -p 80 # Higher max pool uses more ram # Followed recommendation from: https://blog.phusion.nl/2015/11/10/heroku-and-passenger-focus-on-the-app-performance/