Troubleshoot
Запрос у пользователя
- Из-за чего вы думаете, что проблема с performance?
- Когда проблема началась? Система когда-либо работала хорошо?
- Что изменилось недавно?
- Какие критерии вы используете?
- Есть ли влияние на других пользователей/приложения?
- Какая среда?
Характеристика загрузки
- Кто создает загрузку? pid, uid, ip address etc
- Почему загрузка вызывается? код?
- Что является загрузкой, перегрузка чего? iops. tput, type ?
- как перегрузка изменяется за время
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 запускает переданную команду с её аргументами и выводит в стандартный поток ошибок все системные вызовы команды.