35

Вячеслав Бирюков - Linux инструменты системного администратора

  • Upload
    yandex

  • View
    460

  • Download
    6

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Вячеслав Бирюков - Linux инструменты системного администратора
Page 2: Вячеслав Бирюков - Linux инструменты системного администратора

Linux-инструменты системного администратора

Page 3: Вячеслав Бирюков - Linux инструменты системного администратора

Современный сервис

Сервис – система состоящая из N узлов.

Система может быть распределённая.

Узкие места могут быть как у узла, так и у системы в целов.

Узел:

• процессор;

• память;

• диск.

Система:

• сеть.

3

Page 4: Вячеслав Бирюков - Linux инструменты системного администратора

Роль системного администратора

• Планировать ёмкость системы и строить архитектуру сервиса и инфраструктуру;

• производить деплой и обновление программ;

• поиск узких мест и оптимизация как приложения так и ОС;

• реагирование на возникающие инциденты (активное и реактивное).

4

Page 5: Вячеслав Бирюков - Linux инструменты системного администратора

Документация – главный инструмент

Документация:

• man <command>

• info / pinfo

• /usr/share/doc/

!

А если её нет?

• Код – хорошая документация (git, svn);

• инструменты отладки: ldd, strace, ltrace, gdb, objdump и т.п.

5

Page 6: Вячеслав Бирюков - Linux инструменты системного администратора

Shell оболочка

• bash;

• zsh;

• dash – Debian Almquist shell;

• ash – Almquist shell.

6

Page 7: Вячеслав Бирюков - Linux инструменты системного администратора

Внешние команды

• *utils;

• grep;

• sed;

• awk;

• ... тысячи их.

7

Page 8: Вячеслав Бирюков - Linux инструменты системного администратора

Эмулятор терминала

• *term;

• screen;

• tmux.

8

Page 9: Вячеслав Бирюков - Linux инструменты системного администратора

Текстовый редактор

• nano;

• vi[m];

• emacs;

• …

9

Page 10: Вячеслав Бирюков - Linux инструменты системного администратора

10

Подсистемы и инструменты

by Brendan Gregg

Page 11: Вячеслав Бирюков - Linux инструменты системного администратора

Класификация инструментов

vmstat iostat sar

tcpdump systemtap

ps top

strace gdb

Счётчики Трассировка

Общесистемные

На каждый процесс

Page 12: Вячеслав Бирюков - Linux инструменты системного администратора

Типы инструментов

• Счётчики;

• трассировка;

• профилирование – серия снимков (snapshot) системы целиком или процесса.

12

Page 13: Вячеслав Бирюков - Linux инструменты системного администратора

Счётчики Бесплатные – не добавляют накладных расходов, как при сборе так и при использовании.

Как правило, целочисленные беззнаковые (unsigned integers), которые увеличиваются при наступлении события. К примеру, счётчики количества принятых сетевых пакетов, сколько было произведено дисковых операций и системных вызовов.

Общесистемные

К примеру vmstat, iostat, netstat, sar.

На основе счётчики из /proc, /sys.

На каждый процесс

ps, top …

Как правило читают из /proc.

13

Page 14: Вячеслав Бирюков - Linux инструменты системного администратора

Трассировка

Трассировка – сбор данных событий для дальнейшего анализа.

Трассировка, как правило не включена по умолчанию, так как добавляет накладные расходы на процессор и может потребовать значительного места для сохранения данных.

Логи могут быть названы инструментами трассировки в каком-то приближении, включенными по умолчанию в большинстве приложений.

Общесистемные

tcpdump, blktrace, SystemTap, perf.

Собирают данные при помощи: libpcap, tracepoints, kprobes, ftrace…

На каждый процесс

strace, gdb.

14

Page 15: Вячеслав Бирюков - Linux инструменты системного администратора

Профилирование

Профилирование, как правило, производится при помощи:

• oprofile;

• perf;

• SystemTap.

15

Page 16: Вячеслав Бирюков - Linux инструменты системного администратора

CPU (1)

Нагрузка на процессор измеряется в процентах от времени, когда он был занят выполнением работы за интервал.

Она также может быть измерена как время, когда процессор не выполнял поток ядра называемый idle, а был занят выполнением приложений, других потоков ядра или обслуживанием прерываний.

CPU делят на User-Time/Kernel-Time.

16

Page 17: Вячеслав Бирюков - Linux инструменты системного администратора

CPU (2)

• uptime – показывает среднюю нагрузку (load average) для понимания характера нагрузки на процессор и систему (растёт/падает);

• vmstat – запустив утилиту с интервалов в 1 секунду, можно, к примеру, увидеть сколько запаса по процессору осталось;

• top – показывает какой процесс и пользователь потребляет больше всех процессорного времени.

• pidstat – показывает как именно используется процессор в разрезе user и system time.

• sar -q – показывает величину очереди на выполнение (run-queue).

17

Page 18: Вячеслав Бирюков - Linux инструменты системного администратора

Память (1)

• Виртуальная;

• физическая;

• Page Cache.

18

Page 19: Вячеслав Бирюков - Linux инструменты системного администратора

Память (2)

• vmstat – выводит общесистемную статистику использования виртуальной и физической памяти;

• sar:

◦ -B – статистика paging;

◦ -H: – статистика huge pages;

◦ -r: – использование памяти.

• ps;

• top;

• free;

• valgrind.

19

Page 20: Вячеслав Бирюков - Linux инструменты системного администратора

Память (3)

Cчётчики: • /proc/meminfo – общесистемные счётчики памяти; • /proc/zoneinfo – статистика по зонам памяти (NUMA ноды).

20

Page 21: Вячеслав Бирюков - Linux инструменты системного администратора

Дисковое IO (1)Дисковое I/O может приводить к значительному уменьшению времени отклика приложения и теоритически важнейшая цель анализа производительности системы.

Под высокой нагрузкой диски становятся узким местом, оставляя процессор простаивать в ожидании окончания операций ввода-вывода.

Нагрузка на дисковую подсистему может быть рассчитана как время, когда диск был нагружен выполнением работы, за интервал.

Диск используется на 0%, т.е. простаивает, и на 100% – непрерывно выполняет операции ввода-вывода и другие команды.

Диск в 100% использовании источник проблем с производительностью.

Однако любой показатель использования диска может быть причиной плохой производительности приложения хотя бы потому, что он самый медленный элемент в системе.

21

Page 22: Вячеслав Бирюков - Linux инструменты системного администратора

Дисковое IO (2)

!

I/O wait – метрика каждого CPU, которая показывает время проведённое в статусе idle в ожидании дисковой операции.

I/O wait делит время CPU idle на время, когда нечего было делать, и время, когда процессор был заблокирован на дисковом I/O.

Высокие показатели I/O wait говорят о том, что диск может быть узким местом, и недогруженным CPU.

Однако с IO wait нужно быть осторожным.

22

Page 23: Вячеслав Бирюков - Linux инструменты системного администратора

Дисковое IO (3)

• iostat;

• iotop;

• smartctl;

• blkid;

• blockdev;

• sar -d;

• pidstat -d;

• blktrace – трассировка блочного I/O устройства;

• MegaCli – статистика и настройка LSI RAID контроллера.

23

Page 24: Вячеслав Бирюков - Linux инструменты системного администратора

• Round-Trip Time;

• First-Byte Latency;

• пропускная способность относительно общей полосы пропускания в байтах и пакетах.

Сеть (1)

24

Page 25: Вячеслав Бирюков - Linux инструменты системного администратора

Сеть (2)• netstat -s – много общесистемной статистики;

• netstat -i – показывает ошибки на интерфейсах;

• ifconfig – ошибки на интерфейсах, дропы и т.д.;

• iftop;

• ip link;

• sar

◦ -n DEV – статистика интерфейса;

◦ -n EDEV – ошибки на интерфейсе;

• ping;

• traceroute; mtr.

25

Page 26: Вячеслав Бирюков - Linux инструменты системного администратора

Анализаторы пакетов

• tcpdump;

• tshark / wireshark;

• dumpcap;

• airodump-ng.

26

Page 27: Вячеслав Бирюков - Linux инструменты системного администратора

Отладка и профилирование

• gdb;

• valgrind;

• oprofile;

• perf;

• ...

27

Page 28: Вячеслав Бирюков - Linux инструменты системного администратора

Трассировка

• strace;

• ltrace;

• SystemTap;

• LTTng.

28

Page 29: Вячеслав Бирюков - Linux инструменты системного администратора

Мониторинг

• sar;

• Nagios/Icinga;

• Zabbix;

• …;

• функциональный.

29

Page 30: Вячеслав Бирюков - Linux инструменты системного администратора

Менеджеры пакетов

• rpm;

• dpkg;

• …

30

Page 31: Вячеслав Бирюков - Linux инструменты системного администратора

Управление версиями

• git;

• svn.

31

Page 32: Вячеслав Бирюков - Linux инструменты системного администратора

Автоматизация

• Пакетирование;

• Puppet;

• Salt Stack;

• Ansible;

• Chef;

• CFEngine;

• …

32

Page 33: Вячеслав Бирюков - Linux инструменты системного администратора

Контроль целостности

• tripwire;

• aide.

33

Page 34: Вячеслав Бирюков - Linux инструменты системного администратора

Методы резервного копирования

• Полное;

• инкрементальное;

• дифференциальное;

• непрерывное.

34

Page 35: Вячеслав Бирюков - Linux инструменты системного администратора

Резервное копирование

• tar;

• rsync/rdiff/duplicity;

• моментальные снимки (lvm snapshots, btrfs snapshots, NetApp, etc);

• pg_dump/mysqldump;

• Amanda;

• Bacula;

• ...

35