Skip to content

Commit

Permalink
docs: readme note for gke deployment configuration (#185)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
rahulKQL committed Feb 24, 2020
1 parent 1da2497 commit 0afa13a
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions README.md
Expand Up @@ -345,6 +345,25 @@ Add the following to your project's pom.xml.
</dependencyManagement>
```

## 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
Expand Down

0 comments on commit 0afa13a

Please sign in to comment.