LVM и iostat
Материал из Xgu.ru
< 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 -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
[править] Atop
atop — это интерактивный монитор, позволяющий отследить активность и уровень потребления различных ресурсов со степенью детализации до одного процесса.
Основные возможности 'atop:
- потребление ресурсов каждым процессом
- отслеживание (занесение в журнал) информации об уровне нагрузки на каждый ресурс
- подсветка наиболее критичных ресурсов цветами
- возможность просмотра информации только об активных процессах
- статистика суммарного потребления ресурсов по пользователям и по процессам
Некоторые возможности atop доступны для обычного ядра Linux,
а некоторые, в частности, отслеживание дисковой активности,
требуют обязательного наложения патча на ядро.
Atop развивается с 2001 года (1 декабя 2001 был сделан публичный анонс). На сегодняшний день atop не включён в состав ядра Linux, однако существуют патчи для большинства версий ядра, включая самые последние.
Дополнительная информация:
- ATOP System & Process Monitor (англ.) — домашняя страница проекта
[править] Материалы по сбору информации о системе на xgu.ru
[править] Статистики о работе системы
Визуальное представление:
Ввод/вывод:
- LVM и iostat