Cara Memprofilkan Bilangan Goroutine
Memantau kiraan goroutine boleh membantu dalam mengesan potensi kebocoran. Pprof menawarkan kaedah untuk memaparkan maklumat ini.
Untuk melihat kiraan goroutine dari semasa ke semasa, navigasi ke http://localhost:8888/debug/pprof/. Dua pilihan berkaitan tersedia:
goroutine (http://localhost:8888/debug/pprof/goroutine?debug=1)
Pandangan ini mengumpulkan goroutine yang dilaksanakan kod yang sama dan memaparkan kiraan mereka. Contohnya:
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 1 @ 0x42f223 0x43dfd7 0x43d532 0x4a04ed 0x4600a1 # 0x4a04ed gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands.(*RunCommand).processRunners+0x45d /home/me/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands/multi.go:147
lombakan tindanan goroutine penuh (http://localhost:8888/debug/pprof/goroutine?debug=2)
Ini menyediakan gambaran keseluruhan menyeluruh bagi setiap goroutine, termasuk jejak tindanan dan aktiviti semasanya (mis., menunggu untuk menerima daripada saluran). Ia amat berguna untuk mengenal pasti kebocoran:
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 goroutine 50 [select]: gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands.(*RunCommand).processRunners(0xc820103ee0, 0x0, 0xc820274060, 0xc8201d65a0) /home/me/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands/multi.go:147 +0x45d created by gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands.(*RunCommand).startWorkers /home/me/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands/multi.go:165 +0x96
Atas ialah kandungan terperinci Bagaimana Mengenalpasti dan Mendiagnosis Kebocoran Goroutine Menggunakan Pprof?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!