From 0afa13ae8df95119acc482ec79e204abd1bc333e Mon Sep 17 00:00:00 2001 From: Rahul Kesharwani <42969463+rahulKQL@users.noreply.github.com> Date: Tue, 25 Feb 2020 01:56:27 +0530 Subject: [PATCH] docs: readme note for gke deployment configuration (#185) * docs: note for gke deployment This change contains a note for deployment in GKE. If no configuration is provided the JVM in CoS detects only 1 CPU/Core, which restrain the number of channels resulting in performance loss. * docs: rephrased the readme notes Added grpc thread sharing note --- README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/README.md b/README.md index 9c9270a7a..a851023c0 100644 --- a/README.md +++ b/README.md @@ -345,6 +345,25 @@ Add the following to your project's pom.xml. ``` +## Container Deployment + +While deploying this client in [Google Kubernetes Engine(GKE)](https://cloud.google.com/kubernetes-engine) with [CoS](https://cloud.google.com/container-optimized-os/docs/). Please make sure to provide CPU configuration in your deployment file. With default configuration JVM detects only 1 CPU, which affects the number of channels with the client, resulting in performance repercussion. + +Also, The number of `grpc-nio-worker-ELG-1-#` thread is same as number of CPUs. These are managed by a single `grpc-default-executor-#` thread, which is shared among multiple client instances. + +For example: +```yaml +appVersion: v1 +... +spec: + ... + container: + resources: + requests: + cpu: "1" # Here 1 represents 100% of single node CPUs whereas other than 1 represents the number of CPU it would use from a node. +``` +see [Assign CPU Resources to Containers](https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/#specify-a-cpu-request-and-a-cpu-limit) for more information. + ## Troubleshooting To get help, follow the instructions in the [shared Troubleshooting