Load balancing at a connection level
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- kubernetes, python
- Área
- api, backend, distributed-systems, networking
Línea de trabajo
Comienza con el punto de entrada de Python riva.client.ASRService(auth) y las definiciones de Kubernetes Deployment y Service incluidas en el informe. Determina si el cliente reutiliza las conexiones y si eso explica el desequilibrio observado entre los pods; se considera terminado cuando se documente una causa confirmada o la evidencia que falta para reproducirlo.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I have an application with two pods and some client from inside the same cluster connecting to them by a service, as far as I know this will do a connection level multiplexing.
There is no reason for the workload to be consistently higher at one pod than another, yet I can see one of the pods receiving nearly 3 times more load than the other over a period of 3 hours.
The pod with more load was already running when the other pod started.
My first hypothesis was session stickiness, but a quick test shows that the connections are balanced
for _ in `seq 300` ;
do
curl -b cookies.txt -c cookies.txt -s riva-api.riva:8002/metrics | grep '^nv_gpu_utilization';
sleep 0.1;
done | awk '{print $1}' | sort | uniq -c
My new hypothesis is that python riva client is reusing the connections. Does that make sense or we are guaranteed to start a new connection when calling riva.client.ASRService(auth)?
Here you can find some snippets of the configuration
riva-api (pod) partial definition
apiVersion: apps/v1
kind: Deployment
metadata:
name: riva-api
namespace: riva
labels:
app: riva-api
release: riva-api
spec:
replicas: 2
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app: riva-api
release: riva-api
template:
metadata:
labels:
app: riva-api
release: riva-api
...
spec:
...
containers:
- name: riva-api
image: nvcr.io/nvidia/riva/riva-speech:2.14.0
...
riva-api-online definition
apiVersion: v1
kind: Service
metadata:
name: riva-api
namespace: riva
spec:
ports:
...
selector:
app: riva-api
release: riva-api
- Lenguaje dominante
- Python
- Estrellas
- 142
- Forks
- 52
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de nvidia-riva/python-clients
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
nvidia-riva/python-clients#172 · 4 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
nvidia-riva/python-clients#145 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
nvidia-riva/python-clients#100 · 1 comentario ·
-
Connection_RefuseAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 15/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
nvidia-riva/python-clients#93 · 1 reacción ·
Todos los issues de nvidia-riva/python-clients
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
mishraprafful/multihull#150 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
python-caldav/caldav#735 ·
Los mantenedores suelen responder en 1 día
-
bug triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
mealie-recipes/mealie#8682 ·
Los mantenedores suelen responder en 1 día
-
good first issue lane:repo
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100