Junior
Kam se obrátit, pokud server pracuje pomalu?
sobes.tech AI
Odpověď od AI
-
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.
-
Logy aplikace:
- Prohlédněte si logy na chyby, varování, zásobníky.
- Věnujte pozornost dlouhým dotazům, zámkům.
-
Profilování kódu:
- Použijte standardní balíček
pprofpro analýzu výkonu. - Hledejte "úzká místa" - funkce, které spotřebovávají hodně CPU nebo paměti.
- Použijte standardní balíček
// 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.
-
Připojení k databázi:
- Zkontrolujte pomalé dotazy.
- Optimalizujte SQL dotazy, přidejte indexy.
- Ujistěte se, že je dostatečný pool připojení.
-
Síť:
- Zkontrolujte latence a ztrátu paketů mezi klientem a serverem, stejně jako mezi komponentami systému.
-
Externí služby:
- Pokud aplikace komunikuje s externími API, zkontrolujte jejich odezvu.
-
Konfigurace:
- Zkontrolujte nastavení operačního systému, runtime Go (
GOMAXPROCS), webového serveru (Nginx, Caddy).
- Zkontrolujte nastavení operačního systému, runtime Go (
-
Paralelismus a konkurence:
- Analyzujte použití gorutin a kanálů, hledejte deadlocky nebo nadměrné vytváření gorutin.
-
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í.
-
Nasazení a infrastruktura:
- Zkontrolujte stav hostitele, kontejneru, virtuálního stroje.
- Ujistěte se, že jsou dostupné dostatečné zdroje.