Surveillance du nombre de goroutines avec pprof
Le profilage du nombre de goroutines est essentiel pour détecter et prévenir les fuites de goroutines. pprof fournit des outils utiles pour surveiller l'activité des goroutines au fil du temps.
Visualisation du nombre de goroutines
Pour visualiser le nombre de goroutines actives, ouvrez http://localhost:8888/debug /pprof/ dans votre navigateur. Cette page fournit deux liens pertinents :
Le lien "goroutine" affiche une liste de traces de pile goroutine uniques ainsi que les nombre d'instances de chacun. Par exemple :
1 @ 0x42f223 0x42f2e4 0x40542f 0x404f4b 0x4a0586 0x4600a1 # 0x4a0586 gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands.(*RunCommand).startWorkers+0x56 /home/me/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands/multi.go:164
Le préfixe "1" indique qu'il n'y a qu'une seule instance active de cette goroutine.
Dump complet de Goroutine
Le dump goroutine complet est plus détaillé et peut aider à identifier les fuites goroutine. Il répertorie chaque goroutine séparément, sa trace de pile et des informations supplémentaires, telles que le temps d'attente pour les canaux :
goroutine 49 [chan receive, 2 minutes]: gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands.(*RunCommand).startWorkers(0xc820103ee0, 0xc820274000, 0xc820274060, 0xc8201d65a0) /home/me/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands/multi.go:164 +0x56 created by gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands.(*RunCommand).Run /home/me/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands/multi.go:294 +0x41b
En analysant les traces de pile et les informations supplémentaires dans le vidage complet, vous pouvez identifier les goroutines qui ne sont pas correctement terminé ou bloqué indéfiniment.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!