Sobes.tech
Junior

Kam sa obrátiť, ak server pracuje pomaly?

sobes.tech AI

Odpoveď od AI

  1. Systémové sledovanie:

    • Skontrolujte zaťaženie CPU, využitie pamäte, vstup/výstup disku.
    • Používajte nástroje ako Prometheus, Grafana, top, htop.
  2. Logy aplikácie:

    • Prezrite si logy na chyby, varovania, zásobníky.
    • Dávajte pozor na dlhé dotazy, zámky.
  3. Profilovanie kódu:

    • Použite štandardný balík pprof na analýzu výkonu.
    • Hľadajte "úzke miesta" - funkcie, ktoré spotrebúvajú veľa CPU alebo pamäte.
// Príklad použitia pprof
import (
	"log"
	"net/http"
	_ "net/http/pprof" // Registrácia handlerov pprof
)

func main() {
	go func() {
		log.Println(http.ListenAndServe("localhost:6060", nil))
	}()
	// Hlavný kód aplikácie
}
  • Vizualizujte výsledky profilovania pomocou Graphviz alebo vstavaných nástrojov go tool pprof.
  1. Pripojenia k databáze:

    • Skontrolujte pomalé dotazy.
    • Optimalizujte SQL dotazy, pridajte indexy.
    • Uistite sa, že pool pripojení je dostatočný.
  2. Sieť:

    • Skontrolujte latencie a stratu paketov medzi klientom a serverom, ako aj medzi systémovými komponentmi.
  3. Externé služby:

    • Ak aplikácia komunikuje s externými API, skontrolujte ich odozvu.
  4. Konfigurácia:

    • Skontrolujte nastavenia operačného systému, runtime Go (GOMAXPROCS), webového servera (Nginx, Caddy).
  5. Paralelizmus a konkurentnosť:

    • Analyzujte použitie goroutine a kanálov, hľadajte deadlocky alebo nadmerné vytváranie goroutine.
  6. GC (zberač odpadu):

    • Sledujte aktivitu zberača odpadu.
    • Veľký počet alokácií alebo dlhé pauzy GC môžu naznačovať problémy s pamäťou.
  7. Nasadenie a infraštruktúra:

    • Skontrolujte stav hostiteľa, kontajnera, virtuálneho stroja.
    • Uistite sa, že sú dostupné dostatočné zdroje.