Запрос у пользователя

  1. Из-за чего вы думаете, что проблема с performance?
  2. Когда проблема началась? Система когда-либо работала хорошо?
  3. Что изменилось недавно?
  4. Какие критерии вы используете?
  5. Есть ли влияние на других пользователей/приложения?
  6. Какая среда?

Характеристика загрузки

  1. Кто создает загрузку? pid, uid, ip address etc
  2. Почему загрузка вызывается? код?
  3. Что является загрузкой, перегрузка чего? iops. tput, type ?
  4. как перегрузка изменяется за время

USE метод

  • Utulization: buzy time
  • Saturation: queu length или время в очереди
  • Errors

Tools

  • basic: vmstat, iostat, mpstat, ps, top
  • intermediate: tcpdump, netstat, nicstat, pidstat, sar…
  • advanced: ss, slaptop, perf_events

uptime

  • как долго работает система
  • текущее время
  • количество зарегестрированных пользователей
  • средняя загрузка системы - средние значения загрузки системы за последние 1, 5 и 15 минут. Средняя нагрузка увеличивается из-за более высокой загрузки процессора, нагрузки на диск.
    thor@jump_host ~$ uptime
     10:28:42 up 6 min,  0 users,  load average: 31.29, 21.37, 19.40
    

top

3 строки

  • задачи
  • процессы
  • оперативная память

  • 3 колонка - приоритет, rt - в реальном времени, высокий приоритет
  • Ni - значение nice, негативное - высокий, положительной - низкий
  • Virt - количество используемой виртуальной памяти
  • Res - используемая оперативная память (физическая)
  • %CPU - доля в использовании cpu
  • %Mem - доля в использовании памяти
    top - 10:31:14 up 8 min,  0 users,  load average: 8.58, 16.29, 17.84
    Tasks:  19 total,   1 running,  18 sleeping,   0 stopped,   0 zombie
    %Cpu(s): 11.4 us,  9.3 sy,  0.0 ni, 78.0 id,  0.4 wa,  0.0 hi,  0.9 si, 
    MiB Mem : 209557.7 total,  46664.6 free,  39523.9 used, 123369.2 buff/ca
    MiB Swap:      0.0 total,      0.0 free,      0.0 used. 168456.8 avail M
    
      PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ 
     1250 thor      20   0  184288  21096   9508 S   0.3   0.0   0:00.18 
        1 root      20   0   90404  10544   8280 S   0.0   0.0   0:00.40 
      225 root      20   0   89528  11032  10108 S   0.0   0.0   0:00.11 
      531 root      20   0   94732   7840   6796 S   0.0   0.0   0:00.04 
      535 rpc       20   0   67244   5724   4996 S   0.0   0.0   0:00.02 
      665 root      20   0    9720   1084    964 S   0.0   0.0   0:00.02 
      666 root      20   0   79192   6548   5800 S   0.0   0.0   0:00.03 
      668 dbus      20   0   54144   5348   4740 S   0.0   0.0   0:00.01 
      687 root      20   0  109352   4008   3344 S   0.0   0.0   0:00.01 
      853 root      20   0   76644   7812   6880 S   0.0   0.0   0:00.01 
     1085 dnsmasq   20   0   57644   2764   2304 S   0.0   0.0   0:00.00 
     1086 root      20   0   57540    440      0 S   0.0   0.0   0:00.00 
     1210 root      20   0  114928   7568   6612 S   0.0   0.0   0:00.01 
     1218 root      20   0  109164   5808   4944 S   0.0   0.0   0:00.01 
     1226 thor      20   0   19444   3356   3048 S   0.0   0.0   0:00.00 
     1258 thor      20   0  108120  14584   3080 S   0.0   0.0   0:00.00 
     1259 thor      20   0  108132  14732   3212 S   0.0   0.0   0:00.01 
     1260 thor      20   0   19692   3908   3360 S   0.0   0.0   0:00.01 
     1437 thor      20   0   58468   4492   3844 R   0.0   0.0   0:00.01
    

vmstat

Команда vmstat в Linux выводит статистику использования виртуальной памяти

  • r - количество запущенных процессов
  • b - количество спящих процессов

Память

  • swpd: объем используемой виртуальной памяти.
  • free: объем свободной памяти.
  • buff: количество памяти, используемой в качестве буферов.
  • cache: объем памяти, используемой в качестве кеша.
  • inact: количество неактивной памяти (опция -a).
  • active: количество активной памяти. (опция -a)
    thor@jump_host ~$ vmstat
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     3  0      0 18014948 15330260 142666400    0    0   168  2009   20   10  8  7 83  1  0
    thor@jump_host ~$ vmstat -Sm
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     6  0      0  18188  15698 146307    0    0   168  2009   21   11  8  7 83  1  0
    

Swap

  • si: объем памяти, выгруженный с диска (/s).
  • so: объем памяти, перенесенный на диск (/s).

IO

  • bi: блоки, полученные от блочного устройства (blocks/s).
  • bo: блоки, отправленные на блочное устройство (blocks/s).

System

  • in: количество прерываний в секунду, включая часы.
  • cs: количество переключений контекста в секунду.

CPU Здесь проценты от общего времени процессора.

  • us: время, потраченное на запуск кода, не относящегося к ядру (время пользователя).
  • sy: время, потраченное на выполнение кода ядра (системное время).
  • id: время бездействия. До версии Linux 2.5.41 это включает время ожидания ввода-вывода.
  • wa: время, проведенное в ожидании ввода/вывода. До Linux 2.5.41, включено в idle.
  • st: время, украденное из виртуальной машины. До Linux 2.6.11 неизвестно.

iostat -xmdx 1

mpstat -P ALL 1 - multi-processor statistics, per CPU

free - main memory usage

LLDP

sudo lldpcli show neighbors

# yum -y install lldpad
- For Ubuntu
# apt-get install lldpad
2. Run the LLDP Daemon:
# lldpad -d
3. turn on interfaces
for i in `ls /sys/class/net/ | grep 'eth\|ens\|eno'` ;
do echo "enabling lldp for interface: $i" ;
lldptool set-lldp -i $i adminStatus=rxtx ;
lldptool -T -i $i -V sysName enableTx=yes;
lldptool -T -i $i -V portDesc enableTx=yes ;
lldptool -T -i $i -V sysDesc enableTx=yes;
lldptool -T -i $i -V sysCap enableTx=yes;
lldptool -T -i $i -V mngAddr enableTx=yes;
done

arp

arp

strace

$ strace опции команда аргументы В самом простом варианте strace запускает переданную команду с её аргументами и выводит в стандартный поток ошибок все системные вызовы команды.


<
Previous Post
Time
>
Next Post
TCP