null

Как правильно сватать vdbench? Часть 2. Воспроизведение нагрузки.

Благодаря махинациям, описанным в прошлой части, у нас в распоряжении находится дамп дисковых операций (flatfile.bin.gz), а так же заготовка конфига для тестирования. Самое время натравить vdbench на какое-нибудь блочное устройство.


3. Воспроизведение нагрузки

На тестируемой системе устанавливаем vdbench, копируем на нее flatfile. Допустим, жертвой vdbench'а будет устройство c0t2d0s0. В таком случае файл (назовем его prof.vd), описывающий тест vdbench может выглядеть следующим образом:

sd=sd1,lun=/dev/rdsk/c0t2d0s0,replay=(438086664192)
wd=wd1,sd=sd1
rd=run1,wd=wd1,elapsed=120,interval=1,replay=/root/flatfile.bin.gz



Здесь:
lun=/dev/rdsk/c0t2d0s0 - подопытный диск
replay=/tmp/dump/flatfile.bin.gz - путь до flatfile-а с дампом io. В нем присутствует информация обо всех устройствах, находившихся на исходной системе.
replay=(438086664192) - идентификатор конкретного устройства исходной системы
elapsed=120 - время теста в секундах
interval=1 - интервал снятия статистики

Это то, что осталось от шаблона после внедрения в него конкретики и ликвидации всяческих излишеств.
Тут важно не допустить ошибки в параметре lun, указывающем на тестируемое устройство, ибо после запуска vdbench все данные будут утеряны. Понятно, что это устройство должно быть не меньше того, с которого снимался trace dump (точнее оно должно быть "не меньше" самого большого адреса, встретившегося при записи dump'а).

Все, запускаем vdbench с указанием папки для сохранения результатов /tmp/ou:
 

bash-3.2# ./vdbench -f prof.vd -o /tmp/ou
Vdbench distribution: vdbench502
21:30:58.813 Created output directory '/tmp/ou'
....
21:31:05.180 Replay selected i/o count: 1270; traced elapsed time 125.48 seconds; traced i/o rate: 10.121313
21:31:07.009 Starting RD=run1; I/O rate (Replay):     10; elapsed=120; For loops: None



Во время тестирования на терминал будет сыпаться статистика:

Oct 30, 2011  interval        i/o   MB/sec   bytes   read     resp     resp     resp    cpu%  cpu%
                             rate  1024**2     i/o    pct     time      max   stddev sys+usr   sys
21:31:08.355         1     188.00     1.55    8654 100.00   23.077  108.748   16.716    33.7  22.8
21:31:09.160         2       1.00     0.01    8192 100.00   27.664   27.664    0.000    48.0  28.6
21:31:10.146         3     106.00     0.69    6868 100.00   11.898   45.332   11.048    37.0  26.0
21:31:11.109         4       0.00     0.00       0   0.00    0.000    0.000    0.000    27.3  17.2
....
21:31:32.068        25       0.00     0.00       0   0.00    0.000    0.000    0.000    26.0  18.0
21:31:33.056        26      80.00     0.67    8819 100.00   18.612   52.915   11.711    24.0  20.0
21:31:34.066        27       5.00     0.02    4915 100.00   23.969   40.755   15.044    28.0  24.0
21:31:35.117        28     152.00     1.38    9498 100.00    8.857   50.690    8.927    32.0  26.0
21:31:36.128        29      74.00     0.39    5548 100.00   17.903  104.232   15.676    29.0  21.0
21:31:37.061        30       5.00     0.03    6451  80.00    9.707   15.954    5.498    27.0  20.0
....
21:33:05.071       118      10.00     0.05    5324 100.00   13.705   27.686    7.271    20.0  16.0
21:33:06.065       119       0.00     0.00       0   0.00    0.000    0.000    0.000    20.0  17.0
21:33:07.064       120       1.00     0.00    3072   0.00    0.692    0.692    0.000    20.0  17.0
21:33:07.107 avg_2-120       8.82     0.05    5850  80.76   17.685  872.112   49.210    23.4  18.4
21:33:07.964 Vdbench execution completed successfully. Output directory: /tmp/ou

 

4. Картинки!!!

После завершения теста, в каталоге /tmp/ou нас будут поджидать html файлы с результатами. Хотя стоит отметить, что изучение их содержимого может довольно быстро наскучить, так как представляет из себя необъятного размера таблицы. Гораздо приятнее разглядывать красочные картинки. Для этого можно использовать swat (да-да, тот с помощью которого записывался dump).
Тут все просто. Запускаем Swat Trace Facility (swat -t), далее в File->SetTraceDirectory выбираем папку с результатами vdbench, переходим во вкладку Reporter и жмякаем File->LoadTraceDate. Все, теперь можно разглядывать всякие графики с пропускными способностями, очередями к дискам, iops'ами, а так же просматривать прочие полезные репорты.


К примеру, отобразить на одном графике соотношение операций чтения/записи и размер очереди:

Являюсь инженером компании Tune-IT. Проявляю интерес к:

  • вопросам производительности ВС
  • VoIP и Asterisk
  • железу SUN
  • Solaris