Sobes.tech
Middle+

Как ще извършите процедурата по отстраняване на неизправности на сървъра при висок товар? Какви показатели ще анализирате и кои утилити ще използвате?

sobes.tech AI

Отговор от AI

Ще започна с анализа на системните метрики за откриване на причините за високото натоварване.

Основни показатели за анализ:

  • load average: средният брой процеси, чакащи изпълнение. Висока стойност показва пренатоварване на CPU или очакване на входно-изходни операции.
  • CPU utilization: процентът използване на процесорното време. Помага да се разбере коя част от CPU е заета от потребителски процеси, системни извиквания или е в простое.
  • Memory utilization: използване на оперативната памет. Високата консумация може да доведе до активно swapping, което значително намалява производителността.
  • Disk I/O: интензивност на операциите по четене/запис на дискове. Висока активност може да бъде тесен участък.
  • Network activity: изходящ и входящ трафик, брой мрежови връзки. Високото натоварване може да е причинено от мрежови проблеми или DoS атака.
  • Process list: списък на стартираните процеси, тяхната консумация на ресурси, състояние. Помага да се идентифицира конкретен процес, който създава натоварване.

Инструменти за диагностика:

  • top / htop: интерактивен мониторинг на системните ресурси и процеси в реално време. Позволява сортиране по потребление на CPU, памет и др.

    # top -c // показване на пълната команда
    
  • vmstat: отчет за виртуалната памет, процесите, CPU и активността на входа/изхода.

    # vmstat 1 // изход всяка секунда
    
  • iostat: мониторинг на активността на дисковите устройства и тяхната производителност.

    # iostat -xz 1 // разширен изход всяка секунда
    
  • netstat / ss: информация за мрежови връзки, маршрути, статистики на мрежовите интерфейси.

    # netstat -tunapl // TCP/UDP връзки, LISTEN сокети, портове, PID
    # ss -tunapl
    
  • sar: събиране, отчет и анализ на системната активност (CPU, памет, диск, мрежа). Често се използва за анализ на исторична производителност.

    # sar -u 5 5 // CPU на всеки 5 секунди, 5 пъти
    # sar -d 5 5 // диск на всеки 5 секунди, 5 пъти
    # sar -n DEV 5 5 // мрежа на всеки 5 секунди, 5 пъти
    
  • iftop / nethogs: интерактивен мониторинг на мрежовия трафик по интерфейси или процеси.

    # iftop -i eth0 // мониторинг на интерфейса eth0
    # nethogs eth0 // мониторинг на трафика по процеси на eth0
    
  • dstat: универсален инструмент, който обединява възможностите на vmstat, iostat, netstat.

    # dstat -c -m -d -n // CPU, памет, диск, мрежа
    
  • strace / lsof: трасировка на системните извиквания (strace) и списък на отворените файлове (lsof) за конкретен процес. Полезно за по-дълбок анализ на поведението на приложението.

    # strace -p <PID> // трасировка на процес по PID
    # lsof -p <PID> // отворени файлове на процес по PID
    

Процесът ще бъде итеративен: идентифицирам тесните места въз основа на метриките, използвам подходящ инструмент за детайлна анализа, анализирам причината (например конкретен процес), предприемам коригиращи мерки (например рестарт или оптимизация на приложението, увеличаване на ресурсите). Важно е също да проверявам логовете на приложенията и системните журнали (journalctl, /var/log/*).