Sobes.tech
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).
  • Profilēšana:
    • Izmantojot net/http/pprof paketi HTTP pakalpojumiem.
    • Izmantojot runtime/pprof paketi CPU, atmiņas, bloķējumu, goroutine profilu ģenerēšanai.
    • Analizēt profilus ar go tool pprof rī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.
  • Traukšana:
    • Izmantojot golang.org/x/net/trace paketi.
    • 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)
    }
    
  • 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 test ar Go Dog spraudni 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.