Junior
Куда треба да се обратите ако сервер ради споро?
sobes.tech АИ
Одговор од АИ
-
Sistem nadgledanje:
- Proveriti opterećenje CPU-a, korišćenje memorije, ulaz/izlaz diska.
- Koristiti alate poput Prometheus, Grafana,
top,htop.
-
Logovi aplikacije:
- Pregledati logove na greške, upozorenja, stogove.
- Obratiti pažnju na duge upite, blokade.
-
Profilisanje koda:
- Koristiti standardni paket
pprofza analizu performansi. - Tražiti "uska grla" - funkcije koje troše mnogo CPU ili memorije.
- Koristiti standardni paket
// Primer korišćenja pprof
import (
"log"
"net/http"
_ "net/http/pprof" // Registracija pprof handlera
)
func main() {
go func() {
log.Println(http.ListenAndServe("localhost:6060", nil))
}()
// Glavni kod aplikacije
}
- Vizualizovati rezultate profilisanja pomoću Graphviz ili ugrađenih alata
go tool pprof.
-
Veze sa bazom podataka:
- Proveriti spore upite.
- Optimizovati SQL upite, dodati indekse.
- Uveriti se da je pool konekcija dovoljan.
-
Mreža:
- Proveriti latencije i gubitak paketa između klijenta i servera, kao i između komponenti sistema.
-
Spoljni servisi:
- Ako aplikacija komunicira sa eksternim API-jem, proveriti njihovu odzivnost.
-
Konfiguracija:
- Proveriti podešavanja operativnog sistema, runtime Go (
GOMAXPROCS), web servera (Nginx, Caddy).
- Proveriti podešavanja operativnog sistema, runtime Go (
-
Paralelizam i konkurentnost:
- Analizirati korišćenje gorutina i kanala, tražiti deadlockove ili prekomerno kreiranje gorutina.
-
GC (sakupljač smeća):
- Pratiti aktivnost sakupljača smeća.
- Veliki broj alokacija ili duge pauze GC mogu ukazivati na probleme sa memorijom.
-
Deploy i infrastruktura:
- Proveriti stanje hosta, kontejnera, virtuelne mašine.
- Uveriti se da postoje dovoljni resursi.