Sobes.tech
Junior

Kam se obrátit, pokud server pracuje pomalu?

sobes.tech AI

Odpověď od AI

  1. Systémové sledování:

    • Zkontrolujte zatížení CPU, využití paměti, vstup/výstup disku.
    • Používejte nástroje jako Prometheus, Grafana, top, htop.
  2. Logy aplikace:

    • Prohlédněte si logy na chyby, varování, zásobníky.
    • Věnujte pozornost dlouhým dotazům, zámkům.
  3. Profilování kódu:

    • Použijte standardní balíček pprof pro analýzu výkonu.
    • Hledejte "úzká místa" - funkce, které spotřebovávají hodně CPU nebo paměti.
// Příklad použití pprof
import (
	"log"
	"net/http"
	_ "net/http/pprof" // Registrace pprof handlerů
)

func main() {
	go func() {
		log.Println(http.ListenAndServe("localhost:6060", nil))
	}()
	// Hlavní kód aplikace
}
  • Vizualizujte výsledky profilování pomocí Graphviz nebo vestavěných nástrojů go tool pprof.
  1. Připojení k databázi:

    • Zkontrolujte pomalé dotazy.
    • Optimalizujte SQL dotazy, přidejte indexy.
    • Ujistěte se, že je dostatečný pool připojení.
  2. Síť:

    • Zkontrolujte latence a ztrátu paketů mezi klientem a serverem, stejně jako mezi komponentami systému.
  3. Externí služby:

    • Pokud aplikace komunikuje s externími API, zkontrolujte jejich odezvu.
  4. Konfigurace:

    • Zkontrolujte nastavení operačního systému, runtime Go (GOMAXPROCS), webového serveru (Nginx, Caddy).
  5. Paralelismus a konkurence:

    • Analyzujte použití gorutin a kanálů, hledejte deadlocky nebo nadměrné vytváření gorutin.
  6. GC (sběrač odpadu):

    • Sledujte aktivitu sběrače odpadu.
    • Velké množství alokací nebo dlouhé pauzy GC mohou naznačovat problémy s pamětí.
  7. Nasazení a infrastruktura:

    • Zkontrolujte stav hostitele, kontejneru, virtuálního stroje.
    • Ujistěte se, že jsou dostupné dostatečné zdroje.