Sobes.tech
Middle+

Kako ćete sprovesti proceduru rešavanja problema na serveru u slučaju njegove visoke opterećenosti? Koje pokazatelje ćete analizirati i koje alate ćete koristiti?

sobes.tech АИ

Одговор од АИ

Počeo ću sa analizom sistemskih metrika radi identifikacije uzroka visokog opterećenja.

Glavni pokazatelji za analizu:

  • load average: prosečan broj procesa koji čekaju na izvršenje. Visoka vrednost ukazuje na preopterećenje CPU-a ili čekanje ulazno-izlaznih operacija.
  • CPU utilization: procenat iskorišćenosti procesorskog vremena. Pomaže da se razume koji deo CPU-a je zauzet korisničkim procesima, sistemskim pozivima ili je u stanju mirovanja.
  • Memory utilization: korišćenje RAM-a. Visoka potrošnja može dovesti do aktivnog swapovanja, što drastično smanjuje performanse.
  • Disk I/O: intenzitet operacija čitanja/zapisivanja na diskovima. Visoka aktivnost može biti usko grlo.
  • Network activity: odlazni i dolazni saobraćaj, broj mrežnih veza. Visoko opterećenje može biti izazvano mrežnim problemima ili DoS napadom.
  • Process list: lista pokrenutih procesa, njihova potrošnja resursa, stanje. Pomaže u identifikaciji konkretnog procesa koji izaziva opterećenje.

Dijagnostički alati:

  • top / htop: interaktivni monitoring sistema i procesa u realnom vremenu. Omogućava sortiranje procesa po potrošnji CPU-a, memorije itd.

    # top -c // prikaz pune komandne linije
    
  • vmstat: izveštaj o virtuelnoj memoriji, procesima, CPU i aktivnosti ulaza/izlaza.

    # vmstat 1 // prikaz svakog sekunda
    
  • iostat: monitoring aktivnosti diskova i njihove performanse.

    # iostat -xz 1 // prošireni prikaz po disku i CPU, svake sekunde
    
  • netstat / ss: informacije o mrežnim vezama, rutama, statistikama mrežnih interfejsa.

    # netstat -tunapl // TCP/UDP veze, LISTEN soketi, portovi, PID
    # ss -tunapl
    
  • sar: prikupljanje, izveštavanje i analiza sistemske aktivnosti (CPU, memorija, disk, mreža). Često se koristi za analizu istorijske performanse.

    # sar -u 5 5 // CPU svakih 5 sekundi, 5 puta
    # sar -d 5 5 // disk svakih 5 sekundi, 5 puta
    # sar -n DEV 5 5 // mreža svakih 5 sekundi, 5 puta
    
  • iftop / nethogs: interaktivni monitoring mrežnog saobraćaja po interfejsima ili procesima.

    # iftop -i eth0 // monitoring interfejsa eth0
    # nethogs eth0 // monitoring saobraćaja po procesima na eth0
    
  • dstat: univerzalni alat koji kombinuje mogućnosti vmstat, iostat, netstat.

    # dstat -c -m -d -n // CPU, memorija, disk, mreža
    
  • strace / lsof: praćenje sistemskih poziva (strace) i lista otvorenih fajlova (lsof) za konkretan proces. Korisno za dublju analizu ponašanja aplikacije.

    # strace -p <PID> // praćenje procesa po PID
    # lsof -p <PID> // otvoreni fajlovi procesa po PID
    

Proces će biti iterativan: identifikujem usko grlo na osnovu metrika, koristim odgovarajući alat za detaljnu analizu, analiziram uzrok (npr. konkretan proces), preduzimam korektivne mere (npr. restart ili optimizacija aplikacije, povećanje resursa). Takođe je važno proveriti logove aplikacija i sistemske dnevnike (journalctl, /var/log/*).