6 commentaires
Regarde du côté des sync.Pool pour réutiliser tes buffers. Si tu alloues trop de slices temporaires, le GC va passer sa vie à nettoyer. Voici un exemple rapide :
var bufferPool = sync.Pool{
New: func() interface{} {
return new(bytes.Buffer)
},
}
Laisser une réponse
Vous devez être connecté pour poster un message !
Salut à tous, je galère avec des spikes de latence sur un microservice Go tournant dans Kubernetes. Malgré des limites mémoire bien définies, on observe des pauses GC significatives dès que la heap dépasse 2Go. J'ai essayé de jouer avec
GOGCmais ça ne stabilise pas assez le throughput.Est-ce que quelqu'un a déjà réussi à tuner finement le runtime pour des applications à haute fréquence de requêtes sans sacrifier la mémoire disponible ?