meta data for this page
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| wiki:benchmark:tests:storage:fio [2022/07/05 09:48] – mchus | wiki:benchmark:tests:storage:fio [2025/06/02 07:44] (current) – old revision restored (2022/11/22 11:34) mchus | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== FIO (Flexible IO Tester) ====== | ||
| + | ===== Синтетическое тестирование (v.1.0)===== | ||
| + | == Начальные условия == | ||
| + | == Мероприятия по подготовке == | ||
| + | - Создать виртуальную машину следующей конфигурации: | ||
| + | - 8 vCPU | ||
| + | - 2 GB mem | ||
| + | - Linux Debian | ||
| + | - 256 GB Disk | ||
| + | - Установить '' | ||
| + | - Установить '' | ||
| + | - Создать файлы файлы по шаблону ниже. Или скопировать из предоставленного {{ : | ||
| + | - Командой '' | ||
| + | - Указать в файле bench.ini тестируемое устройство, | ||
| + | |||
| + | <code bash bench.sh> | ||
| + | #!/bin/sh | ||
| + | BASEDIR=/ | ||
| + | INIDIR=$BASEDIR/ | ||
| + | LOGDIR=$BASEDIR/ | ||
| + | DEV=/ | ||
| + | IODEPTH=16 | ||
| + | RUNTIME=300 | ||
| + | TPAUSE=30 | ||
| + | STOR=" | ||
| + | echo "stor $STOR" > $INIDIR/ | ||
| + | |||
| + | # --------------------- | ||
| + | / | ||
| + | fiocmdlc=" | ||
| + | for fiocmdl in " --blocksize=4k --output=$LOGDIR/ | ||
| + | " --blocksize=8k --output=$LOGDIR/ | ||
| + | " --blocksize=16k --output=$LOGDIR/ | ||
| + | " --blocksize=256k --output=$LOGDIR/ | ||
| + | " --blocksize=4k --output=$LOGDIR/ | ||
| + | " --blocksize=8k --output=$LOGDIR/ | ||
| + | " --blocksize=16k --output=$LOGDIR/ | ||
| + | " --blocksize=256k --output=$LOGDIR/ | ||
| + | " --blocksize=4k --output=$LOGDIR/ | ||
| + | " --blocksize=8k --output=$LOGDIR/ | ||
| + | " --blocksize=16k --output=$LOGDIR/ | ||
| + | " --blocksize=256k --output=$LOGDIR/ | ||
| + | " --blocksize=4k --output=$LOGDIR/ | ||
| + | " --blocksize=8k --output=$LOGDIR/ | ||
| + | " --blocksize=16k --output=$LOGDIR/ | ||
| + | " --blocksize=256k --output=$LOGDIR/ | ||
| + | " --blocksize=4k --output=$LOGDIR/ | ||
| + | " --blocksize=8k --output=$LOGDIR/ | ||
| + | " --blocksize=16k --output=$LOGDIR/ | ||
| + | " --blocksize=256k --output=$LOGDIR/ | ||
| + | " --blocksize=4k --output=$LOGDIR/ | ||
| + | " --blocksize=8k --output=$LOGDIR/ | ||
| + | " --blocksize=16k --output=$LOGDIR/ | ||
| + | " --blocksize=256k --output=$LOGDIR/ | ||
| + | do | ||
| + | echo " ----- $fiocmdlc $fiocmdl" | ||
| + | fio $fiocmdlc $fiocmdl >> $LOGDIR/ | ||
| + | echo " ----- endtest" | ||
| + | sleep $TPAUSE | ||
| + | done | ||
| + | pkill nmon | ||
| + | # --------------------- | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | <code ini / | ||
| + | [writetest] | ||
| + | rw=write | ||
| + | direct=1 | ||
| + | buffered=0 | ||
| + | ioengine=libaio | ||
| + | </ | ||
| + | |||
| + | <code ini / | ||
| + | [readtest] | ||
| + | rw=read | ||
| + | direct=1 | ||
| + | buffered=0 | ||
| + | ioengine=libaio | ||
| + | </ | ||
| + | |||
| + | <code ini / | ||
| + | [writetest] | ||
| + | rw=rw | ||
| + | direct=1 | ||
| + | buffered=0 | ||
| + | ioengine=libaio | ||
| + | </ | ||
| + | |||
| + | <code ini / | ||
| + | [writetest] | ||
| + | rw=randwrite | ||
| + | direct=1 | ||
| + | buffered=0 | ||
| + | ioengine=libaio | ||
| + | </ | ||
| + | |||
| + | <code ini / | ||
| + | [readtest] | ||
| + | rw=randread | ||
| + | direct=1 | ||
| + | buffered=0 | ||
| + | ioengine=libaio | ||
| + | </ | ||
| + | |||
| + | <code ini / | ||
| + | [writetest] | ||
| + | rw=randrw | ||
| + | direct=1 | ||
| + | buffered=0 | ||
| + | ioengine=libaio | ||
| + | </ | ||
| + | |||
| + | == Мероприятия по проверке == | ||
| + | - Запустить тестирование коммандой '' | ||
| + | |||
| + | == Мероприятия после проверки == | ||
| + | - Скачать с сервера полученные результаты теста в файле вида " | ||
| + | - На ПК администратора установить [[http:// | ||
| + | - Открыть полученный результат с помощью nmon analyzer | ||
| + | - Перейти на вкладку DISK_SUMM | ||
| + | |||
| + | <WRAP center round tip 60%> | ||
| + | |||
| + | Сводные результаты тестов представлены на данной странице: | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Синтетическое тестирование (v.1.1) ===== | ||
| + | |||
| + | == Начальные условия == | ||
| + | == Мероприятия по подготовке == | ||
| + | - Создать виртуальную машину следующей конфигурации: | ||
| + | - 8 vCPU | ||
| + | - 2 GB mem | ||
| + | - Linux Debian | ||
| + | - 256 GB Disk | ||
| + | - Установить '' | ||
| + | - Установить '' | ||
| + | - Создать файлы файлы по шаблону ниже. Или скопировать из предоставленного {{ : | ||
| + | - Командой '' | ||
| + | - Указать в файле bench.ini тестируемое устройство, | ||
| + | |||
| + | <code bash bench.sh> | ||
| + | #!/bin/sh | ||
| + | BASEDIR=/ | ||
| + | INIDIR=$BASEDIR/ | ||
| + | LOGDIR=$BASEDIR/ | ||
| + | DEV=/ | ||
| + | IODEPTH=16 | ||
| + | RUNTIME=300 | ||
| + | TPAUSE=30 | ||
| + | STOR=" | ||
| + | echo "stor $STOR" > $INIDIR/ | ||
| + | |||
| + | # --------------------- | ||
| + | / | ||
| + | fiocfg=" | ||
| + | for fiorun in \ | ||
| + | " --blocksize=4k --output=$LOGDIR/ | ||
| + | " --blocksize=8k --output=$LOGDIR/ | ||
| + | " --blocksize=16k --output=$LOGDIR/ | ||
| + | " --blocksize=256k --output=$LOGDIR/ | ||
| + | " --blocksize=4k --output=$LOGDIR/ | ||
| + | " --blocksize=8k --output=$LOGDIR/ | ||
| + | " --blocksize=16k --output=$LOGDIR/ | ||
| + | " --blocksize=256k --output=$LOGDIR/ | ||
| + | " --blocksize=4k --output=$LOGDIR/ | ||
| + | " --blocksize=8k --output=$LOGDIR/ | ||
| + | " --blocksize=16k --output=$LOGDIR/ | ||
| + | " --blocksize=256k --output=$LOGDIR/ | ||
| + | " --blocksize=4k --output=$LOGDIR/ | ||
| + | " --blocksize=8k --output=$LOGDIR/ | ||
| + | " --blocksize=16k --output=$LOGDIR/ | ||
| + | " --blocksize=256k --output=$LOGDIR/ | ||
| + | " --blocksize=4k --output=$LOGDIR/ | ||
| + | " --blocksize=8k --output=$LOGDIR/ | ||
| + | " --blocksize=16k --output=$LOGDIR/ | ||
| + | " --blocksize=256k --output=$LOGDIR/ | ||
| + | " --blocksize=4k --output=$LOGDIR/ | ||
| + | " --blocksize=8k --output=$LOGDIR/ | ||
| + | " --blocksize=16k --output=$LOGDIR/ | ||
| + | " --blocksize=256k --output=$LOGDIR/ | ||
| + | do | ||
| + | echo " ----- $fiocfg $fiorun" | ||
| + | fio $fiocfg $fiorun >> $LOGDIR/ | ||
| + | echo " ----- endtest" | ||
| + | sleep $TPAUSE | ||
| + | done | ||
| + | pkill nmon | ||
| + | # --------------------- | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | <code ini / | ||
| + | [writetest] | ||
| + | rw=write | ||
| + | direct=1 | ||
| + | buffered=0 | ||
| + | ioengine=libaio | ||
| + | </ | ||
| + | |||
| + | <code ini / | ||
| + | [readtest] | ||
| + | rw=read | ||
| + | direct=1 | ||
| + | buffered=0 | ||
| + | ioengine=libaio | ||
| + | </ | ||
| + | |||
| + | <code ini / | ||
| + | [writetest] | ||
| + | rw=rw | ||
| + | direct=1 | ||
| + | buffered=0 | ||
| + | ioengine=libaio | ||
| + | </ | ||
| + | |||
| + | <code ini / | ||
| + | [writetest] | ||
| + | rw=randwrite | ||
| + | direct=1 | ||
| + | buffered=0 | ||
| + | ioengine=libaio | ||
| + | </ | ||
| + | |||
| + | <code ini / | ||
| + | [readtest] | ||
| + | rw=randread | ||
| + | direct=1 | ||
| + | buffered=0 | ||
| + | ioengine=libaio | ||
| + | </ | ||
| + | |||
| + | <code ini / | ||
| + | [writetest] | ||
| + | rw=randrw | ||
| + | direct=1 | ||
| + | buffered=0 | ||
| + | ioengine=libaio | ||
| + | </ | ||
| + | |||
| + | == Мероприятия по проверке == | ||
| + | - Запустить тестирование командой '' | ||
| + | |||
| + | == Мероприятия после проверки == | ||
| + | - Скачать с сервера полученные результаты теста в файле вида " | ||
| + | - На ПК администратора установить [[http:// | ||
| + | - Открыть полученный результат с помощью nmon analyzer | ||
| + | - Перейти на вкладку DISK_SUMM | ||
| + | |||
| + | ==== Нагрузочное тестирование СХД ==== | ||
| + | == Начальные условия == | ||
| + | == Мероприятия по подготовке == | ||
| + | - Создать каталог куда будут записываться результаты теста. В примере указан каталог / | ||
| + | - Создать конфигурационный файл теста | ||
| + | - Указать примонтированые блочные устройства (vdb, vdc,…) | ||
| + | - Указать время замера в переменной **runtime=** | ||
| + | |||
| + | <file inf / | ||
| + | [global] | ||
| + | ioengine=libaio | ||
| + | direct=1 | ||
| + | group_reporting | ||
| + | time_based | ||
| + | runtime=1h | ||
| + | buffered=0 | ||
| + | random_generator=tausworthe64 | ||
| + | norandommap | ||
| + | disable_clat=1 | ||
| + | disable_slat=1 | ||
| + | log_avg_msec=5000 | ||
| + | |||
| + | [ NVMe_1 ] | ||
| + | description=Random read/write 80/20 | ||
| + | rw=randrw | ||
| + | rwmixread=80 | ||
| + | bs=8k | ||
| + | filename=/ | ||
| + | iodepth=16 | ||
| + | numjobs=8 | ||
| + | |||
| + | [ NVMe_2 ] | ||
| + | description=Random read/write 80/20 | ||
| + | rw=randrw | ||
| + | rwmixread=80 | ||
| + | bs=8k | ||
| + | filename=/ | ||
| + | iodepth=16 | ||
| + | numjobs=8 | ||
| + | |||
| + | [ HDD_1 ] | ||
| + | description=Read/ | ||
| + | rw=rw | ||
| + | rwmixread=80 | ||
| + | bs=256k | ||
| + | filename=/ | ||
| + | iodepth=1 | ||
| + | numjobs=1 | ||
| + | |||
| + | [ HDD_2 ] | ||
| + | description=Read/ | ||
| + | rw=rw | ||
| + | rwmixread=80 | ||
| + | bs=256k | ||
| + | filename=/ | ||
| + | iodepth=1 | ||
| + | numjobs=1 | ||
| + | |||
| + | [ HDD_3 ] | ||
| + | description=Read/ | ||
| + | rw=rw | ||
| + | rwmixread=80 | ||
| + | bs=256k | ||
| + | filename=/ | ||
| + | iodepth=1 | ||
| + | numjobs=1 | ||
| + | </ | ||
| + | |||
| + | == Мероприятия по проверке == | ||
| + | - Запустить тестирование коммандой <code bash> fio / | ||
| + | |||
| + | == Мероприятия после проверки == | ||
| + | |||
| + | ===== Смотри также ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | |||