Tuning des threads Go : éviter la saturation GOMAXPROCS

veronique90 11/05/2026
RÉSOLU
veronique90
Auteur
Avatar de veronique90
veronique90
Auteur

Je constate une latence élevée sur mon service Go en production. Après analyse avec go tool pprof, je vois un nombre massif de context switches. Mon conteneur est limité à 2 vCPU via Kubernetes, mais GOMAXPROCS semble tenter de créer bien plus de threads. Est-ce que quelqu'un a déjà rencontré une dégradation de performance due à un mauvais alignement des threads OS avec les limites de ressources cgroups ?

11/05/2026 à 12:14

6 commentaires

breton-astrid
Membre Actif Secouriste
Avatar de breton-astrid
breton-astrid
Membre Actif Secouriste

C'est un classique. Go ne lit pas nativement les limites de cgroups pour GOMAXPROCS. Il voit tous les cœurs du host. Tu dois utiliser une librairie comme automaxprocs pour ajuster cela dynamiquement.

12/05/2026 à 06:36
veronique90
Auteur
Avatar de veronique90
veronique90
Auteur

Merci, je vais tester l'import de go.uber.org/automaxprocs. Est-ce que cela impacte aussi le garbage collector ?

13/05/2026 à 01:50
ccharrier
Membre
Avatar de ccharrier
ccharrier
Membre

Oui, le GC est lié au nombre de processeurs visibles. Si tu as 64 cœurs sur le host, le GC va se déclencher de manière beaucoup trop agressive pour un conteneur qui n'a que 2 vCPU.

13/05/2026 à 16:31
martins-luce
Membre Actif
Avatar de martins-luce
martins-luce
Membre Actif

Exact. Sans automaxprocs, tu forces le runtime Go à gérer une file d'attente de threads inutilement longue. Regarde aussi GOMEMLIMIT pour stabiliser le heap.

14/05/2026 à 16:21
breton-astrid
Membre Actif Secouriste
Avatar de breton-astrid
breton-astrid
Membre Actif Secouriste

N'oublie pas de vérifier tes métriques avec :

go tool pprof -http=:8080 profile.pb.gz
après le déploiement de la correction.

15/05/2026 à 05:09
veronique90
Auteur
Avatar de veronique90
veronique90
Auteur

J'ai ajouté import _ "go.uber.org/automaxprocs", les latences p99 ont chuté de 40ms à 8ms. Merci pour le tips !

16/05/2026 à 04:16

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire