LVM и iostat

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

< LVM

Короткий URL: lvm/iostat


Определить интенсивность ввода/вывода на каждый том LVM можно с помощью программы iostat (пакет sysstat).

Формат вызова:

   iostat [опции] интервал повторения

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

   %# iostat 10 360

Или в расширенном виде:

   %# iostat -dx 10 360

Содержание

[править] Понятные имена томов в выводе iostat

Для вывода нормальных имён томов в iostat нужно использовать ключ -N:

 %# iostat -N

Если iostat не понимает ключ -N, она показывает имена томов, которые чаще всего оказываются неинформативными для администратора:

$ iostat -dx
Linux 2.6.18-4-xen-686 (cholpon)        14.02.2008

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0,44   128,55    1,77    3,36    57,23  1055,45   216,61     0,98  189,81   3,00   1,54
sdb               0,08     0,00    0,05    0,00     0,60     0,00    12,57     0,00    1,92   1,61   0,01
dm-0              0,00     0,00    0,03    0,00     0,22     0,00     7,99     0,00    4,08   0,76   0,00
dm-1              0,00     0,00    0,03    0,00     0,21     0,00     7,98     0,00    3,96   1,00   0,00
dm-2              0,00     0,00    0,28  123,53    13,62   988,24     8,09   111,58  901,24   0,07   0,81
dm-3              0,00     0,00    0,02    0,48     1,06     3,83     9,75     0,02   37,80   0,67   0,03
dm-4              0,00     0,00    0,00    0,00     0,01     0,00     7,70     0,00    2,00   2,00   0,00
dm-5              0,00     0,00    0,03    0,00     0,22     0,00     7,99     0,00    1,69   0,75   0,00
dm-6              0,00     0,00    0,20    2,48     3,52    19,85     8,72     0,02    6,06   1,28   0,34

Здесь, видно, напимер, что нагрузка на dm-2 выше чем на другие LVM тома, но сразу не видно, какому именно тому соответствует dm-2. Это можно выяснить вручную:

%$ ls -l /dev/dm-2
brw-rw---- 1 root disk 254, 2 Фев 14 12:49 /dev/dm-2
%$ ls -l /dev/mapper/| grep '254,\s*2'
brw-rw---- 1 root disk 254,  2 Фев 14 12:49 MAIN-xen

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

Функция dm_convert, представленная ниже, преобразует имена томов к понятной форме. Она работает как фильтр: обрабатывает стандартный поток ввода, и отправляет результат на поток вывода. При замене учитывается то, что имена могут иметь разную длину, и что данные должны сохранить форматирование.

dm_convert() { 
 sed "s/ /      /; $( \
 LANG=C ls -l /dev/dm* /dev/mapper/* | grep 25[34], | sort -n -k +6 | awk '{print $10}' \
 | sed 's@/dev/@@; s@mapper/@@'  \
 | perl -ne '$a=$_;$b=<>;chomp $a; chomp $b; $p=q(.)x(length($b)-length(a)-4); print qq(s/$a $p/$b/;) ')"
}

теперь вы можете пропускать вывод iostat через dm_convert' и получать сразу понятные результаты:

Замер нагрузки на подсистему ввода/вывода с помощью iostat
$ iostat -dx 1 100 | dm_convert 
Linux 2.6.18-4-xen-686 (cholpon)        14.02.2008

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0,43   124,98    1,74    3,33    55,91  1026,56   213,52     0,95  186,94   2,97   1,51
sdb               0,08     0,00    0,05    0,00     0,58     0,00    12,57     0,00    1,92   1,61   0,01
VG2-music         0,00     0,00    0,03    0,00     0,22     0,00     7,99     0,00    4,08   0,76   0,00
VG2-xentaur       0,00     0,00    0,03    0,00     0,20     0,00     7,98     0,00    3,96   1,00   0,00
MAIN-xen          0,00     0,00    0,27  120,02    13,23   960,13     8,09   108,41  901,22   0,07   0,79
MAIN-backup       0,00     0,00    0,02    0,47     1,04     3,74     9,74     0,02   37,61   0,67   0,03
MAIN-movies       0,00     0,00    0,00    0,00     0,01     0,00     7,70     0,00    2,00   2,00   0,00
MAIN-iso          0,00     0,00    0,03    0,00     0,21     0,00     7,99     0,00    1,69   0,75   0,00
MAIN-home         0,00     0,00    0,19    2,47     3,43    19,74     8,71     0,02    5,94   1,26   0,34
...


Для того чтобы смотреть статистику не в виде бесконечной, бегущей по консоли полосы, а в виде постоянно обновляющегося окна (a-la top), вы можете использовать программу watch (или display в FreeBSD).

Но в этом случае dm_convert должен быть оформлен не как функция shell, а как отдельный скрипт:

%$ cat /usr/local/bin/dm_convert
#!/bin/sh

sed "s/ /      /; $( \
LANG=C ls -l /dev/dm* /dev/mapper/* | grep 25[34], | sort -n -k +6 | awk '{print $10}' \
| sed 's@/dev/@@; s@mapper/@@'  \
| perl -ne '$a=$_;$b=<>;chomp $a; chomp $b; $p=q(.)x(length($b)-length(a)-4); print qq(s/$a $p/$b/;) ')"

Скрипт должен быть исполняемым:

%# chmod +x /usr/local/bin/dm_convert


Теперь можно вызывать программу просмотра статистики нагрузки iostat и смотреть на какие тома LVM наибольшая нагрузка:

%# iostat -dx 2 2 | dm_convert
%# watch 'iostat -dx 2 2 | dm_convert'

Если вы используете систему виртуализации, то результаты автоматическ означают какую дисковую активность создаёт тот или иной виртуальный домен.

Собранная информация может быть отправной точкой, для того чтобы регулировать приоритеты ввода/вывода для доменов с помощью dm-band. В любом случае, это позволит выяснить какие именно задачи создают на дисковую подсистему системы виртуализации наибольшую нагрузку.

[править] Интенсивность ввода/вывода в Cacti

Графическое представление статистики ввода/вывода в Cacti

Cacti-iostat-1.png

Cacti-iostat-2.png

[править] Atop

Наблюдение за уровнем дисковой активности процессов в atop

atop — это интерактивный монитор, позволяющий отследить активность и уровень потребления различных ресурсов со степенью детализации до одного процесса.

Основные возможности 'atop:

  • потребление ресурсов каждым процессом
  • отслеживание (занесение в журнал) информации об уровне нагрузки на каждый ресурс
  • подсветка наиболее критичных ресурсов цветами
  • возможность просмотра информации только об активных процессах
  • статистика суммарного потребления ресурсов по пользователям и по процессам


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

Atop развивается с 2001 года (1 декабя 2001 был сделан публичный анонс). На сегодняшний день atop не включён в состав ядра Linux, однако существуют патчи для большинства версий ядра, включая самые последние.

Дополнительная информация:

Xentaur
Дисковая подсистема
Linux | FreeBSD

Диски и разделы
Файлы устройств: Блочное устройство | Символьное устройство | Raw-устройство | loop-устройство
Диски: IDE | SATA (SATA hotplug) | SCSI | USB
RAID-массивы: Аппаратный RAID | Linux RAID | FreeBSD RAID
Дисковые разделы: Раздел | MBR | fdisk | parted | disklabel | GPT

Управление томами
Логический том | Физический том | Группа томов | Снимок | Клон
device-mapper | dm-ioband | dm-crypt | dm-userspace | multipath
Системы управления томами: LVM | CLVM | EVMS | Btrfs* | ZFS* | AdvFS* | Zumastor

Сетевые хранилища и репликация
Отказоустойчивость: DRBD | Xen + DRBD | ggate + gmirror | HAST
Сетевые хранилища: AoE | iSCSI | FCoE | GNBD

Файловые системы
Монтирование | Проверка целостности | Дефрагментация | Суперблок | inode | Журнал | Кэш | VFS | UUID | FUSE
Локальные: ext3 | ext3cow | ext4 | JFS | Reiser4 | XFS | ZFS | Btrfs | AdvFS | ISO | aufs
Сетевые: NFS | CIFS | AFS | POHMELFS
Кластерные: GFS | OCFS2 | CXFS | VMFS | GPFS
Распределенные: Lustre | PVFS | Ceph | Coda

* Btrfs, ZFS и AdvFS — это файловые системы с возможностями управления томами

[править] Материалы по сбору информации о системе на xgu.ru

[править] Статистики о работе системы

Визуальное представление:

Ввод/вывод:

  • LVM и iostat
Источник — «http://xgu.ru/wiki/LVM_%D0%B8_iostat»