Sobes.tech
Junior

სერვერი ნელა მუშაობს თუ სად უნდა მიმართო?

sobes.tech AI

პასუხი AI-სგან

  1. სისტემის მონიტორინგი:

    • შემოწმეთ CPU-ის დატვირთვა, მეხსიერების გამოყენება, დისკის შეტანა/გამოტანა.
    • გამოიყენეთ ინსტრუმენტები როგორიცაა Prometheus, Grafana, top, htop.
  2. აპლიკაციის ლოგები:

    • შეამოწმეთ ლოგები შეცდომების, გაფრთხილებების, სტეკტრესების არსებობისთვის.
    • ყურადღება მიაქციეთ ხანგრძლივ შეკითხვებს, ბლოკირებებს.
  3. კოდის პროფილირება:

    • გამოიყენეთ სტანდარტული პაკეტი pprof შესრულების ანალიზისთვის.
    • მოძებნეთ "საკვანძო ადგილები" - ფუნქციები, რომლებიც მოიხმარენ ბევრ CPU-ს ან მეხსიერებას.
// pprof-ის გამოყენების მაგალითი
import (
	"log"
	"net/http"
	_ "net/http/pprof" // pprof-ის დამუშავებლების რეგისტრაცია
)

func main() {
	go func() {
		log.Println(http.ListenAndServe("localhost:6060", nil))
	}()
	// თქვენი ძირითადი კოდი
}
  • ვიზუალიზაცია შედეგების go tool pprof ან Graphviz-ის გამოყენებით.
  1. ბაზასთან კავშირები:

    • შეამოწმეთ ნელი შეკითხვები ბაზასთან.
    • ოპტიმიზაცია SQL შეკითხვების, ინდექსების დამატებით.
    • დარწმუნდით კავშირის პულში სისწორეში.
  2. ქსელი:

    • შეამოწმეთ დაგვიანებები და პაკეტების დაკარგვა მომხმარებლისა და სერვერის შორის, ასევე სისტემის კომპონენტებს შორის.
  3. მესამე მხარის სერვისები:

    • თუ აპლიკაცია ურთიერთქმედებს გარე API-ებთან, შეამოწმეთ მათი რეაგირების სიჩქარე.
  4. კონფიგურაცია:

    • შეამოწმეთ ოპერაციული სისტემის, Go-ის runtime-ის (მაგ. GOMAXPROCS), ვებ-სერვერის (Nginx, Caddy) პარამეტრები.
  5. პარალელიზმი და კონკურენტობა:

    • ანალიზი გორუტინებისა და არხების გამოყენებაზე, მოძებნეთ დელოკები ან ზედმეტი გორუტინების შექმნა.
  6. GC (მოწმობის აგროვება):

    • მონიტორინგი მტვრის აგროვებლის აქტივობის.
    • დიდი მობილობები ან გრძელვადიანი პაუზები მიუთითებს მეხსიერების პრობლემებზე.
  7. განთავსება და ინფრასტრუქტურა:

    • შეამოწმეთ ჰოსტის, კონტეინერის, ვირტუალური მანქანის მდგომარეობა.
    • დარწმუნდით რესურსების არსებობაში.