diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 88b49ba..1459ff2 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -35,7 +35,7 @@ jobs: echo "${{ secrets.KUBECONFIG }}" > ~/.kube/config chmod 600 ~/.kube/config kubectl set resources statefulset/im-server -n im-server-system -c im-server \ - --requests=cpu=1,memory=512Mi --limits=cpu=2,memory=1Gi + --requests=cpu=2,memory=512Mi --limits=cpu=2,memory=1Gi kubectl set env statefulset/im-server -n im-server-system -c im-server \ CLUSTER_PROXY_TO_MASTER_BUFFER=4096 \ CLUSTER_PROXY_TO_MASTER_WORKERS=16 \ @@ -108,7 +108,7 @@ jobs: mysql_conn_max_lifetime="$(kubectl get statefulset/im-server -n im-server-system -o \ jsonpath='{.spec.template.spec.containers[?(@.name=="im-server")].env[?(@.name=="MYSQL_CONN_MAX_LIFETIME_SECONDS")].value}')" echo "effective requests=${request_cpu}/${request_memory} limits=${limit_cpu}/${limit_memory} liveness=${liveness} mysql=${mysql_max_open}/${mysql_max_idle} registry=${mysql_registry_max_open}/${mysql_registry_max_idle} lifetime=${mysql_conn_max_lifetime}" - if [ "${request_cpu}" != "1" ] || [ "${request_memory}" != "512Mi" ] || \ + if [ "${request_cpu}" != "2" ] || [ "${request_memory}" != "512Mi" ] || \ [ "${limit_cpu}" != "2" ] || [ "${limit_memory}" != "1Gi" ] || \ [ "${liveness}" != "/livez" ] || [ "${mysql_max_open}" != "24" ] || \ [ "${mysql_max_idle}" != "8" ] || [ "${mysql_registry_max_open}" != "4" ] || \ diff --git a/deploy/argocd/im-server-test/README.md b/deploy/argocd/im-server-test/README.md index 38b2f12..4b274d7 100644 --- a/deploy/argocd/im-server-test/README.md +++ b/deploy/argocd/im-server-test/README.md @@ -31,10 +31,11 @@ kubectl auth can-i list pods.metrics.k8s.io \ -n im-server-system ``` -Expected values are requests `1 CPU / 512Mi`, limits `2 CPU / 1Gi`, and +Expected values are requests `2 CPU / 512Mi`, limits `2 CPU / 1Gi`, and liveness path `/livez`. The MySQL pool environment must be `MYSQL_MAX_OPEN_CONNS=24`, `MYSQL_MAX_IDLE_CONNS=8`, `MYSQL_REGISTRY_MAX_OPEN_CONNS=4`, and `MYSQL_REGISTRY_MAX_IDLE_CONNS=2`. +The MySQL connection lifetime must be `MYSQL_CONN_MAX_LIFETIME_SECONDS=1800`. The WebSocket heartbeat environment must be `WS_PING_PERIOD_SECONDS=15` and `WS_PONG_WAIT_SECONDS=90`. The Pod DNS options must be `ndots:1`, `timeout:2`, and `attempts:2`. Keeping diff --git a/deploy/argocd/im-server-test/statefulset-performance-patch.yaml b/deploy/argocd/im-server-test/statefulset-performance-patch.yaml index 5ea0fce..3275ec9 100644 --- a/deploy/argocd/im-server-test/statefulset-performance-patch.yaml +++ b/deploy/argocd/im-server-test/statefulset-performance-patch.yaml @@ -46,9 +46,11 @@ spec: value: "4" - name: MYSQL_REGISTRY_MAX_IDLE_CONNS value: "2" + - name: MYSQL_CONN_MAX_LIFETIME_SECONDS + value: "1800" resources: requests: - cpu: "1" + cpu: "2" memory: 512Mi limits: cpu: "2"