Тестирование производительности томов внешнего стораджа в ОС AIX

добавлено: 19 июл 13
понравилось:0
просмотров: 1928
комментов: 0

теги:

Автор: ДохтаР

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



У нас имеется :
2 LPAR -а fmdtest10 и fmdtest11
с одинаковым набором томов ,
Они разлоложены на виртуальных стораджах с независимыми ресурсами
на разных парити группах и имеют разный обьем кеша стораджа.

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

Пересечение есть по SAN портам стораджа и по FC сервера.
Я так прикинул на пальцах :), что 4 шнурка по 8 Gbit
не должны оказаться насколько слабым местом,
что бы оказывать взаимное влияние на системы и результаты тестов.

Мы сможем потом проверить сравнивая результаты паралельных тестов
с последовательными.



fmdtest11
lspv
hdisk0 00f6299ff15017ba rootvg active
hdisk1 none None
hdisk2 none None
hdisk3 none None
hdisk4 none None
hdisk5 none None
hdisk6 none None
hdisk7 none None
hdisk8 none None
hdisk9 none None
hdisk10 none None
hdisk11 none None
hdisk12 none None


Напомню, что нулевой LUN (hdisk0) загрузочный и кроме хранения ОS
никак не будет принимать участи в тестировании.

Сразу приведем имеющиеся тома в порядок , с точки зренения максимального перфоманса
классических дисков, потом будем смотреть как эта конфигурация покажет себя на FMD.

fmdtest11#
for dd in {1..12}; do chdev -l hdisk$dd -a reserve_policy=no_reserve; done
hdisk1 changed
hdisk2 changed
hdisk3 changed
hdisk4 changed
hdisk5 changed
hdisk6 changed
hdisk7 changed
hdisk8 changed
hdisk9 changed
hdisk10 changed
hdisk11 changed
hdisk12 changed



На сервере fmdtest11 hdlm драйвер пока не стоит ,
поэтому команда будет такой

fmdtest11
fmdtest11#for dd in {1..12}; do chdev -l hdisk$dd -a queue_depth=32 -a algorithm=round_robin; done;
hdisk1 changed
hdisk2 changed
hdisk3 changed
hdisk4 changed
hdisk5 changed
hdisk6 changed
hdisk7 changed
hdisk8 changed
hdisk9 changed
hdisk10 changed
hdisk11 changed
hdisk12 changed




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

Я так подумал , что возможно даже еще одну статью напишу, в стиле древних флеймов Linux vs Windows.
Но речь там буде идти только про AIX. Заинтриговал ?


Тесты на fmdtest11 я начну делать без hdlm с дефалтовым MPIO драйвером AIX.

Для проведения тестов , была выбрана программа fio моделирющая нагрузку на диски аналогично поведению СУБД.

При установке пакета , он хотел видеть AIX 5 а у меня AIX 6 , поэтому появились следующее сообщение,
+

rpm -iv fio-2.1.1-1.aix5.3.ppc.rpm
fio-2.1.1-1

Please note that POSIX aio may not be enabled by default on AIX.
If you get messages like:

Symbol resolution failed for /usr/lib/libc.a(posix_aio.o) because:
Symbol _posix_kaio_rdwr (number 2) is not exported from dependent module /unix.

you need to enable POSIX aio. Run the following commands as root:

# lsdev -C -l posix_aio0
posix_aio0 Defined Posix Asynchronous I/O
# cfgmgr -l posix_aio0
# lsdev -C -l posix_aio0
posix_aio0 Available Posix Asynchronous I/O

POSIX aio should work now. To make the change permanent:

# chdev -l posix_aio0 -P -a autoconfig='available'
posix_aio0 changed



так как AIO достаточно сильно поменялся от 5 к 6 версии .

Но, во время работы fio с режимом
ioengine=posixaio
ничего подозрительного замечено небыло.

Я не вникал в исходинки fio у меня на это сейчас нет времени,
Если у вас есть подозрения, что сообщение может как то влиять на результаты тестов ,
прошу их высказать в каментах.



Создаем первую группу томо для тестирования.

mkvg -y test1g_vf hdisk1
0516-1254 mkvg: Changing the PVID in the ODM.
test1g_vf

Группа распологается на одном томе обьемом 1 Тб находящемся на RAID5(3+1) из флеш накопителей.

Создадим на ней raw девайс обьемом 500 GB.
автор
mklv -y test1 -t raw test1g_vf 500G


Пробуем тестировать

cat fio.cfg
[rwtest]
blocksize=4k
filename=/dev/rtest1
rw=randrw
direct=1
buffered=0
iodepth=128
iodepth_batch=128
size=21474836480
ioengine=posixaio


запускаем
fio --runtime 20 fio.cfg

очень не красивую картину:
sar -d
17:57:00 hdisk0 0 0.0 0 0 0.0 0.0
cd0 0 0.0 0 0 0.0 0.0
hdisk1 95 20.1 22042 88168 1.7 1.2
hdisk2 0 0.0 0 0 0.0 0.0
hdisk3 0 0.0 0 0 0.0 0.0
hdisk4 0 0.0 0 0 0.0 0.0
hdisk5 0 0.0 0 0 0.0 0.0
hdisk6 0 0.0 0 0 0.0 0.0
hdisk7 0 0.0 0 0 0.0 0.0
hdisk8 0 0.0 0 0 0.0 0.0
hdisk9 0 0.0 0 0 0.0 0.0
hdisk10 0 0.0 0 0 0.0 0.0
hdisk11 0 0.0 0 0 0.0 0.0
hdisk12 0 0.0 0 0 0.0 0.0



Операции ввода вывода стоят в очереди в AIX-е
У этого ожидания может быть 2 причины
1. Недоастаточная глубина очереди queue_depth=32
2. vmstat -v показывает большое число в
0 pending disk I/Os blocked with no pbuf

Если вы тестируете на файловой системе , внимательно посмотрите на другие ожидания в vmstat -v
обещаю вы найдете много интересного ,
а также новые возможности для тюнинга ввода вывода , если раньше вы этого не знали.

по vmstat у нас ожиданий нет займемся queue_depth

И тут бац ......
автор
fmdtest11 tests #chdev -l hdisk1 -a queue_depth=64
Method error (/usr/lib/methods/chgdisk):
0514-062 Cannot perform the requested function because the
specified device is busy.


Нормально , естественно , мы ведь том заняли группой .
Не вопрос, так как мы тестируем , все решается легко.
Експортируем группу меняем параметры том , импортируем обратно.
автор
fmdtest11 tests #varyoffvg test1g_vf

fmdtest11 tests #exportvg test1g_vf

fmdtest11 tests #chdev -l hdisk1 -a queue_depth=64
hdisk1 changed

fmdtest11 tests #importvg -y test1g_vf hdisk1
test1g_vf

fmdtest11 tests #varyonvg test1g_vf



Как поступить в случае , если все происходит в продуктиве , тема другой статьи.
Возможно на досуге я как нибудь расскажу.

что бы не растягивать , сразу скажу что 64 тоже мало.
ИОПСы не поменялись , но число 20.1 из sar -d превратилось в 7-8
что говорит об имеющей место проблеме с ожиданиями ввода вывода в ОС.
Значение 128 ОИПСов не добавило( в реднем 28 000 iops) , но сократило ожидание
в sar -d до нуля.




Продолжение следует ........

Комментарии




Необходимо войти на сайт, чтобы оставлять комментарии