Ivan
randReadWrite: (groupid=0, jobs=64): err= 0: pid=32531: Fri Oct 9 23:58:33 2020 read: IOPS=91.7k, BW=717MiB/s (752MB/s)(87.5GiB/125052msec) slat (usec): min=3, max=12624k, avg=659.17, stdev=47545.77 clat (usec): min=10, max=19224k, avg=123910.10, stdev=1006713.47 lat (msec): min=3, max=19223, avg=124.57, stdev=1009.62 clat percentiles (msec): | 1.00th=[ 8], 5.00th=[ 15], 10.00th=[ 20], 20.00th=[ 27], | 30.00th=[ 34], 40.00th=[ 41], 50.00th=[ 46], 60.00th=[ 53], | 70.00th=[ 59], 80.00th=[ 67], 90.00th=[ 81], 95.00th=[ 95], | 99.00th=[ 542], 99.50th=[ 4396], 99.90th=[16845], 99.95th=[17113], | 99.99th=[17113] bw ( KiB/s): min= 12, max=66524, per=2.21%, avg=16225.51, stdev=12227.22, samples=8631 iops : min= 1, max= 8315, avg=2027.77, stdev=1528.38, samples=8631 write: IOPS=39.3k, BW=307MiB/s (322MB/s)(37.5GiB/125052msec); 0 zone resets slat (usec): min=2, max=80621, avg=39.68, stdev=210.48 clat (msec): min=3, max=19225, avg=124.40, stdev=1010.79 lat (msec): min=3, max=19225, avg=124.44, stdev=1010.79 clat percentiles (msec): | 1.00th=[ 8], 5.00th=[ 15], 10.00th=[ 20], 20.00th=[ 28], | 30.00th=[ 34], 40.00th=[ 41], 50.00th=[ 47], 60.00th=[ 53], | 70.00th=[ 59], 80.00th=[ 67], 90.00th=[ 81], 95.00th=[ 96], | 99.00th=[ 542], 99.50th=[ 4463], 99.90th=[16845], 99.95th=[17113], | 99.99th=[17113] bw ( KiB/s): min= 11, max=28804, per=2.30%, avg=7238.65, stdev=5155.03, samples=8293 iops : min= 1, max= 3600, avg=904.41, stdev=644.36, samples=8293 lat (usec) : 20=0.01%, 50=0.01%, 100=0.01%, 250=0.01%, 500=0.01% lat (msec) : 4=0.01%, 10=2.28%, 20=8.71%, 50=45.44%, 100=39.10% lat (msec) : 250=2.39%, 500=0.70%, 750=0.62%, 1000=0.10% cpu : usr=1.15%, sys=4.26%, ctx=6860218, majf=0, minf=162075 IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1% issued rwts: total=11472459,4917855,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=256 randReadWrite/sync: (groupid=1, jobs=64): err= 0: pid=7592: Fri Oct 9 23:58:33 2020 read: IOPS=18.5k, BW=145MiB/s (152MB/s)(16.9GiB/120003msec) slat (usec): min=4, max=72929, avg=160.41, stdev=360.09 clat (usec): min=25, max=1014.5k, avg=593835.26, stdev=110132.13 lat (usec): min=104, max=1015.6k, avg=593996.67, stdev=110140.68 clat percentiles (msec): | 1.00th=[ 243], 5.00th=[ 384], 10.00th=[ 443], 20.00th=[ 523], | 30.00th=[ 558], 40.00th=[ 584], 50.00th=[ 609], 60.00th=[ 625], | 70.00th=[ 651], 80.00th=[ 684], 90.00th=[ 709], 95.00th=[ 751], | 99.00th=[ 818], 99.50th=[ 844], 99.90th=[ 885], 99.95th=[ 894], | 99.99th=[ 978] bw ( KiB/s): min= 16, max= 8176, per=1.61%, avg=2389.17, stdev=527.02, samples=14754 iops : min= 2, max= 1022, avg=298.62, stdev=65.88, samples=14754 write: IOPS=7930, BW=61.0MiB/s (64.0MB/s)(7435MiB/120003msec); 0 zone resets slat (usec): min=5, max=10700, avg=34.82, stdev=68.70 clat (usec): min=939, max=1015.0k, avg=594107.44, stdev=110218.26 lat (usec): min=953, max=1016.0k, avg=594142.97, stdev=110219.80 clat percentiles (msec): | 1.00th=[ 247], 5.00th=[ 384], 10.00th=[ 443], 20.00th=[ 523], | 30.00th=[ 558], 40.00th=[ 584], 50.00th=[ 609], 60.00th=[ 625], | 70.00th=[ 651], 80.00th=[ 684], 90.00th=[ 709], 95.00th=[ 751], | 99.00th=[ 818], 99.50th=[ 844], 99.90th=[ 885], 99.95th=[ 902], | 99.99th=[ 986] bw ( KiB/s): min= 64, max= 3696, per=1.61%, avg=1024.30, stdev=243.55, samples=14752 iops : min= 8, max= 462, avg=127.98, stdev=30.45, samples=14752 lat (usec) : 50=0.01%, 1000=0.01% lat (msec) : 2=0.01%, 4=0.01%, 10=0.01%, 20=0.01%, 50=0.03%
Ivan
lat (msec) : 100=0.05%, 250=0.93%, 500=15.21%, 750=79.03%, 1000=4.73% fsync/fdatasync/sync_file_range: sync (nsec): min=66, max=3809.0k, avg=684.62, stdev=7906.47 sync percentiles (nsec): | 1.00th=[ 219], 5.00th=[ 247], 10.00th=[ 266], 20.00th=[ 290], | 30.00th=[ 310], 40.00th=[ 330], 50.00th=[ 354], 60.00th=[ 390], | 70.00th=[ 442], 80.00th=[ 524], 90.00th=[ 636], 95.00th=[ 732], | 99.00th=[ 1032], 99.50th=[ 1528], 99.90th=[ 94720], 99.95th=[164864], | 99.99th=[342016] cpu : usr=0.51%, sys=4.74%, ctx=15200997, majf=0, minf=158035 IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=199.4% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1% issued rwts: total=2219953,951709,0,3155404 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=256 Run status group 0 (all jobs): READ: bw=717MiB/s (752MB/s), 717MiB/s-717MiB/s (752MB/s-752MB/s), io=87.5GiB (93.0GB), run=125052-125052msec WRITE: bw=307MiB/s (322MB/s), 307MiB/s-307MiB/s (322MB/s-322MB/s), io=37.5GiB (40.3GB), run=125052-125052msec Run status group 1 (all jobs): READ: bw=145MiB/s (152MB/s), 145MiB/s-145MiB/s (152MB/s-152MB/s), io=16.9GiB (18.2GB), run=120003-120003msec WRITE: bw=61.0MiB/s (64.0MB/s), 61.0MiB/s-61.0MiB/s (64.0MB/s-64.0MB/s), io=7435MiB (7796MB), run=120003-120003msec
Ivan
вот пока с включенными mitigations
Ivan
arcsize=78G
Сергей
256/64?
Ivan
https://pastebin.com/rYTK8eQ7
Ivan
Сергей
lat (msec) : 100=0.05%, 250=0.93%, 500=15.21%, 750=79.03%, 1000=4.73% fsync/fdatasync/sync_file_range: sync (nsec): min=66, max=3809.0k, avg=684.62, stdev=7906.47 sync percentiles (nsec): | 1.00th=[ 219], 5.00th=[ 247], 10.00th=[ 266], 20.00th=[ 290], | 30.00th=[ 310], 40.00th=[ 330], 50.00th=[ 354], 60.00th=[ 390], | 70.00th=[ 442], 80.00th=[ 524], 90.00th=[ 636], 95.00th=[ 732], | 99.00th=[ 1032], 99.50th=[ 1528], 99.90th=[ 94720], 99.95th=[164864], | 99.99th=[342016] cpu : usr=0.51%, sys=4.74%, ctx=15200997, majf=0, minf=158035 IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=199.4% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1% issued rwts: total=2219953,951709,0,3155404 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=256 Run status group 0 (all jobs): READ: bw=717MiB/s (752MB/s), 717MiB/s-717MiB/s (752MB/s-752MB/s), io=87.5GiB (93.0GB), run=125052-125052msec WRITE: bw=307MiB/s (322MB/s), 307MiB/s-307MiB/s (322MB/s-322MB/s), io=37.5GiB (40.3GB), run=125052-125052msec Run status group 1 (all jobs): READ: bw=145MiB/s (152MB/s), 145MiB/s-145MiB/s (152MB/s-152MB/s), io=16.9GiB (18.2GB), run=120003-120003msec WRITE: bw=61.0MiB/s (64.0MB/s), 61.0MiB/s-61.0MiB/s (64.0MB/s-64.0MB/s), io=7435MiB (7796MB), run=120003-120003msec
на обычном чтении/запись 36 дисков обгоняют 4 nvme диска)), а на fsync чуть поменьше. Интересно что было бы на массиве из 36 nvme??))
Ivan
Сколько там рандом иопс и что за диски?)
на отдельном диске рандом интересует ?
Fedor
Да, ради интереса
Ivan
TOSHIBA_MG04ACA400E диск
Ivan
это которые кэш схороняют на флешу, если питание пропадает
Ivan
весьма недорогие, кстати
Fedor
Там до 100-125 иопс рандом
Fedor
Судя по рпм и технологии
Сергей
да
а поменяй теперь в .fio размер файла с 64G на 4G. И в скрипте оставь IOD=32, а NJ=16
Ivan
отключил mitigations, ща ребутнется ..
Сергей
Размер файла 4G, IOD=32, NJ=16, compression=off Alexander , такой тест ближе к реальным нагрузкам? Типа 16 виртуалок, у каждой глубина очереди 32, читают/пишут 4Гб в течение 2х минут?
Ivan
https://yourcmc.ru/wiki/%D0%9F%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C_Ceph#.D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5 тут для увеличения иопсов предлагают отключить intel pstate, но чет вариантов его отключения прям дохрена. как правильно то ? )
Ivan
Да, ради интереса
ща тест доделается для zvol. а какой тест лучше запустить ?
Fedor
randrw
Ivan
в один джоб,один поток ?
Ivan
zfs не повлияет на статистику ребилдом, если я ему один диск потру бенчем ?
Сергей
вот есть побольше. 8G для 16 job больше чем моя RAM. Сейчас ещё на 16Гб сделаю
Сергей
Ну и файлик 100гб
100ГБ размер файла, сколько заданий? IOD? и длительность на 1 час?
Alexander
Ну или 2
Сергей
2x64x100Gbx3600sec?
Alexander
2x64x100Gbx3600sec?
Годится👍
Сергей
сжатие на zvol включено или выключено?
Ivan
randrw
fio -ioengine=libaio -direct=1 -sync=1 -name=test -bs=4k -iodepth=1 -rw=randwrite -runtime=60 -filename=/dev/sda
Ivan
fio -ioengine=libaio -name=test -bs=4k -iodepth=1 -rw=randwrite -runtime=60 -filename=/dev/sda
Ivan
на всякий случай 😃
Сергей
Годится👍
запустил, но возможно я усну раньше чем завершится тест. Утром сброшу
Ivan
Диск почти в простое
походу чистому тесту ресильвер помешал
Ivan
незадействованных дисков у меня нет
Ivan
HDD? 219k IOPS?
похоже это бэнч буфера в раме
Сергей
похоже это бэнч буфера в раме
там direct=1 не был в опциях вроде или был?
Ivan
по сата выдать 800+МБс нереально
Ivan
во втором тесте директ убрал
Ivan
не назначал
Ivan
просто 60 сек тест
Ivan
кстати запустил повторный бенч zvol и иопсов показывает поверх записанного куда меньше
Ivan
нужно в конфиг fio заложить создание файла для теста, размером эдак в 256г )
Ivan
да, просто указал, что сейчас тесты станут чеснее )
Ivan
вернее уже завтра вечером
riv
щас я вам тесты raid 10 из 4х nvme 960GB + slog на оптанах (900p) выложу. >2Gb/s на случайной записи.
При всей моей любви к zfs хочу заметить, что основная фишка optane - это не только и, наверное не столько производительность, сколько латентность в 10-100 раз ниже чем у промышленных SSD. Латентность Optane уже сопоставима с латентностью ОЗУ! И ZFS тут может все только испортить 😞 А ещё, например, я использую optane не в mirror, но в сочетании с бекапом разумеется. Благо, на optane zfs send можно делать хоть каждую минуту, производительность от этого не страдает. И вот я думаю, не тот ли это случай, когда нужно что-то другое? Что-то очень быстрое и простое. Подозреваю, что и lvm не потянет, хотя я не сравнивал. Вообще, делиться на отдельные дисковые устройства NVME может и само - в стандарт заложено. Было бы здорово, если бы внутри NVME было бы расширение стандарта, позволяющее делать что-то типа zfs send но средствами своего устройства. Там и так внутри всего понапихано столько, что сама firmware сложнее zfs-а. Кстати и mirror было бы здорово делать чем-то типа как интерфейс nv-link у nvidia.
Fedor
Абстракции всегда дают накладные расходы.
Fedor
Зфс хорош сервисами. Иногда ради них можно пожертвовать процентами производительности
Fedor
Главное, в модель вписать
riv
Зфс хорош сервисами. Иногда ради них можно пожертвовать процентами производительности
я так и делаю, но в случае с латентностью там будут точно не единицы и даже не десятки или сотни процентов, там, боюсь будут тысячи. А латентность очень важна для баз данных. Дело даже не в нагрузке. Представьте процесс, который выбрал данные данные, изменил, положил, дождался синка, взял другие данные, и нова повторил цикл. Если он не может пораллелится в силу логики своей работы, то на голых накопителях SATA intel s3700, имеющих задержки чтение 50 микросекунд, а запись 65, в сумме 110 микросекунд, те. не больше ~ 9 000 поерация в секунду, даже если сама база данных работает мнгновенно. Обновление журналов ФС, лога SQL и другие накладные расходы, могут понизить это значение раз в 10, и того получается уже 900, если взять NVME P4610, то получим цикл в 77+18=95 микросекунд или 10 500 операций что сопоставимо с SATA SSD, а у optane цикл займет 10+10=20 микросекунд, или 50 000 операций, т.е. в 5 раз больше! А ещё важна равномерность задержки. Например у NVME SSD средняя задержка путь в районе 100 микросекунд, а максимальная в 1 секунду! Это может понизить в сотни и тысячи раз количество циклов, у optane такого эффекта нет.
riv
Подведу итог, было бы очень интересно если бы кто-нибудь заморочился тюнингом zfs по латентности под работу на optane SSD
Alexandr
У меня тут интересный вопрос появился, если кто знает подскажите пожалуйста
Alexandr
Будет ли special работать для zvol?
riv
Будет ли special работать для zvol?
Да, будет, снимая нагрузку связанную с записью метаданных. Во всяком случае, у меня работает. Но у меня много снимкой (тысячи), а значит и метаданных много. Особенно special помогает на фрагментированных пулах. zfs не видит, что там внутри zvol. По этому ещё slog device и cache помогут.
Alexander
При всей моей любви к zfs хочу заметить, что основная фишка optane - это не только и, наверное не столько производительность, сколько латентность в 10-100 раз ниже чем у промышленных SSD. Латентность Optane уже сопоставима с латентностью ОЗУ! И ZFS тут может все только испортить 😞 А ещё, например, я использую optane не в mirror, но в сочетании с бекапом разумеется. Благо, на optane zfs send можно делать хоть каждую минуту, производительность от этого не страдает. И вот я думаю, не тот ли это случай, когда нужно что-то другое? Что-то очень быстрое и простое. Подозреваю, что и lvm не потянет, хотя я не сравнивал. Вообще, делиться на отдельные дисковые устройства NVME может и само - в стандарт заложено. Было бы здорово, если бы внутри NVME было бы расширение стандарта, позволяющее делать что-то типа zfs send но средствами своего устройства. Там и так внутри всего понапихано столько, что сама firmware сложнее zfs-а. Кстати и mirror было бы здорово делать чем-то типа как интерфейс nv-link у nvidia.
Ну не только латенси, производительность то их тоже на порядок выше ssd
Сергей
Alexander
в итоге
Ну как то совсем не очень(((
Сергей
во время теста система совершенно была не загружена. Возможно под данный кейс нужно было тюнить