Middle+
Kādi ir veidi, kā identificēt un diagnosticēt veiktspējas problēmas ražošanā?
sobes.tech AI
Atbilde no AI
- Metriku uzraudzība:
- Izmantojot iebūvētos pakotnes:
expvar(vienkāršas atslēgas-vertības metrikas),runtime(GC, goroutine un citas statistikas). - Trešo pušu bibliotēkas: Prometheus, Datadog, New Relic.
- Uzraudzīt RPS, pieprasījumu aizkavi, kļūdas, resursu patēriņu (CPU, RAM).
- Izmantojot iebūvētos pakotnes:
- Profilēšana:
- Izmantojot
net/http/pprofpaketi HTTP pakalpojumiem. - Izmantojot
runtime/pprofpaketi CPU, atmiņas, bloķējumu, goroutine profilu ģenerēšanai. - Analizēt profilus ar
go tool pprofrīku.
# Piemērs `go tool pprof` izmantošanai go tool pprof http://localhost:6060/debug/pprof/heap # Heap profils- Profilēšanas veidi: CPU, Heap, Goroutine, Blocking, Mutex, ThreadCreate, Trace.
- Izmantojot
- Traukšana:
- Izmantojot
golang.org/x/net/tracepaketi. - Izmantojot OpenTracing/OpenTelemetry sadalītai trauksmei.
- Uzraudzīt pieprasījuma ceļu sistēmā, identificēt šaurās vietas pakalpojumu mijiedarbībā.
// Piemērs trauksmes izmantošanai import "golang.org/x/net/trace" func handleRequest(w http.ResponseWriter, r *http.Request) { tr := trace.New("my_service", "handleRequest") defer tr.Finish() // Notikumu reģistrācija trases laikā tr.LazyLog("Sākas pieprasījuma apstrāde", false) // ... pieprasījuma apstrādes loģika ... tr.LazyLog("Pieprasījuma apstrāde pabeigta", false) } - Izmantojot
- Logu analīze:
- Logu vākšana un centralizēta glabāšana (ELK Stack, Loki/Grafana).
- Anomāliju, kļūdu, lēnu pieprasījumu meklēšana logos.
- Logu un trauksmes integrācija notikumu sasaistīšanai.
- Izmantojot specializētus APM risinājumus:
- Dynatrace, AppDynamics, New Relic.
- Nodrošina visaptverošus rīkus uzraudzībai, profilēšanai un trauksmei.
- Uzraudzības, profilēšanas un trauksmes salīdzinājums:
| Instruments | Mērķis | Detalizācijas līmenis | Overhead |
|---|---|---|---|
| Uzraudzība | Sistēmas kopējais stāvoklis, tendences | Zems | Zems |
| Profilēšana | Karsto punktu identificēšana (funkcijas, alokācijas) | Augsts | Vidējs |
| Traukšana | Pieprasījuma ceļš, komponentu mijiedarbība | Vidējs | Vidējs/Auksts |
- Veikt slodzes testus pirms ražošanas uzstādīšanas.
- Izmantot
go testarGo Dogspraudni funkciju un metožu veiktspējas mērīšanai. - Savākt un analizēt atmiņas dumpus, lai identificētu atmiņas noplūdes vai pārmērīgu patēriņu.