Optimiser le garbage collection Go dans Kubernetes

patrick15 27/04/2026
RÉSOLU
patrick15
Auteur
Avatar de patrick15
patrick15
Auteur

Salut à tous, je galère avec des pics de latence sur un microservice Go tournant dans Kubernetes. Malgré une limite de 4Go de RAM, le GOGC par défaut semble déclencher des cycles trop fréquents, ce qui fait chuter le throughput pendant les pics de trafic.

Est-ce que certains d'entre vous ont déjà tuné le GOMEMLIMIT et GOGC pour stabiliser le heap sur des conteneurs avec des contraintes strictes ?

27/04/2026 à 11:06

7 commentaires

Le GOMEMLIMIT est ton meilleur ami depuis la version 1.19. Il permet au runtime de mieux gérer la pression mémoire avant de déclencher un GC agressif.

28/04/2026 à 07:04
patrick15
Auteur
Avatar de patrick15
patrick15
Auteur

J'ai essayé GOMEMLIMIT=3800MiB, mais j'ai l'impression que le runtime s'emballe quand même. Tu conseilles quelle marge par rapport à la limite du pod ?

29/04/2026 à 04:17
hmeunier
Membre Actif
Avatar de hmeunier
hmeunier
Membre Actif

Une marge de 10% est généralement safe. Si tu es à 4Go, fixe le GOMEMLIMIT à 3.6Go. Regarde aussi tes pprof pour voir si tu n'as pas des allocations inutiles dans tes handlers HTTP.

29/04/2026 à 20:38
lallard
Membre Actif
Avatar de lallard
lallard
Membre Actif

N'oublie pas que GOGC peut être désactivé si tu utilises GOMEMLIMIT efficacement. Ça évite de faire des GC basés sur le pourcentage de croissance.

30/04/2026 à 18:56
patrick15
Auteur
Avatar de patrick15
patrick15
Auteur

C'est une bonne piste. Je vais tester GOGC=off avec un GOMEMLIMIT strict en staging pour voir si le comportement est plus prévisible.

01/05/2026 à 09:00
uboyer
Membre
Avatar de uboyer
uboyer
Membre

Attention au risque de OOMKill si le heap grandit trop vite entre deux GC. Surveille bien la métrique go_memstats_heap_alloc_bytes.

02/05/2026 à 06:34
patrick15
Auteur
Avatar de patrick15
patrick15
Auteur

Reçu. Je vais monitorer ça avec Prometheus et ajuster la marge. Merci pour les retours.

02/05/2026 à 23:08

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