Sobes.tech
Middle

Ինչպես ինտեգրել ստանդարտ պրոֆայլերը ձեր Go հավելվածում?

sobes.tech AI

Պատասխան AI-ից

net/http/pprof փաթեթը ապահովում է HTTP մենեջերներ պրոֆիլավորման տվյալների համար:

Ներմուծեք այն՝

import (
	"net/http"
	_ "net/http/pprof" // Կարևոր է օգտագործել '_'՝ կողմնակի ազդեցություններով ինիցիալիզացիայի համար
)

Սկսեք HTTP սերվերը առանձին goroutine-ում՝

go func() {
	// Սկսեք սերվերը տեղական հասցեում և ստանդարտ pprof պորտով
	if err := http.ListenAndServe("localhost:6060", nil); err != nil {
		// Հաշվարկեք սերվերի գործարկման սխալը, օրինակ՝ գրանցելով
		// log.Printf("pprof սերվերը ձախողվեց՝ %v", err)
	}
}()

Հիմա դուք կարող եք մուտք գործել պրոֆիլավորման տվյալներ՝ հասցեով http://localhost:6060/debug/pprof/:

Նախնական հասանելի վերջնակետեր՝

  • /debug/pprof/: գլխավոր էջ՝ հասանելի պրոֆիլների ցանկով
  • /debug/pprof/heap: heap պրոֆիլ
  • /debug/pprof/goroutine: ակտիվ goroutine-ների պրոֆիլ
  • /debug/pprof/block: բլոկների պրոֆիլ
  • /debug/pprof/threadcreate: օպերացիոն համակարգի թելերի ստեղծման պրոֆիլ
  • /debug/pprof/cmdline: հավելվածի հրամանի տող
  • /debug/pprof/profile: CPU պրոֆիլ (նույնպես հավաքում է տվյալներ 30 վայրկյան)
  • /debug/pprof/trace: կատարողականի հետևման պրոֆիլ (նույնպես հավաքում է տվյալներ 1 վայրկյան)

CPU, heap և բլոկ պրոֆիլների վերլուծության համար սովորաբար օգտագործվում է go tool pprof գործիքը՝

go tool pprof http://localhost:6060/debug/pprof/profile # CPU պրոֆիլ 30 վայրկյան
ngo tool pprof http://localhost:6060/debug/pprof/heap # heap պրոֆիլ

Կատարողականի հետևման վերլուծության համար օգտագործվում է go tool trace գործիքը՝

go tool trace http://localhost:6060/debug/pprof/trace

Մեծ կարևորություն: Զգուշացեք անվտանգության մասին և մի բացեք pprof պորտը հանրային առանց թույլտվության արտադրության մեջ: