Сергей
во время теста система совершенно была не загружена. Возможно под данный кейс нужно было тюнить
а вот с 16 заданиями и IOD=32 загрузка уже лучше. Сделал размер файла в 16G, это в сумме в любом случае в память не влазит.
Сергей
по окончанию теста: root@hz:~/fio# arcstat time read miss miss% dmis dm% pmis pm% mmis mm% arcsz c 12:35:23 0 0 0 0 0 0 0 0 0 60G 62G результаты во вложении. Добавил ещё randread (первым тестом).
Сергей
установите glances, там видо параметр iowait
спасибо, классная штука. Как-то я раньше её не замечал
Ivan
вот на всякий случай тесты на заполненном пуле.
Ivan
интересный результат получился после отключения гипертрейдинга. на небольшой нагрузке производительность ухудшилась, а на тяжелой нагрузке улучшилась.
Ivan
похоже помогает общий ядерный кэш при включенном ht, когда не нужен fsync.
Ivan
наверно с включенными опциями безопасности ht покажет намного более слабые результаты, нежели без ht.
Alexandr
@neurox
Fedor
Очень интересный вопрос, наверное, к @gmelikov Возможно ли как-нибудь преобразовать звол в файл? :D
Fedor
В файл в датасете? Dd в помощь и всё:)
это да. но вдруг что-то есть помимо этого :)
Dmitry
Его можно даже на веб сервер выложить и курлом лить прямо в приемник через recv
George
Fedor
наподобие, да.
Fedor
Но чтоб все данные не перекачивать :)
George
Или сразу в файликах храни
George
По перфомансу примерно пофиг
Ivan
можно покрутить write throttling ещё, если сильно хочется, это в общем то он срабатывает https://openzfs.github.io/openzfs-docs/Performance%20and%20Tuning/Async%20Write.html
Сделал так, но поведение однопотока не изменилось. Какие параметры еще можно покрутить ? options zfs zfs_vdev_async_read_max_active=36 options zfs zfs_vdev_async_read_min_active=12 options zfs zfs_vdev_async_write_max_active=36 options zfs zfs_vdev_async_write_min_active=12 options zfs zfs_vdev_sync_read_max_active=36 options zfs zfs_vdev_sync_read_min_active=12 options zfs zfs_vdev_sync_write_max_active=36 options zfs zfs_vdev_sync_write_min_active=12
Ivan
а что для улучшения однопотока покрутить можно ? вот всё хорошо с многопотоком, а бывают в бд однопоточные операции, хотелось бы их ускорить.
George
а что для улучшения однопотока покрутить можно ? вот всё хорошо с многопотоком, а бывают в бд однопоточные операции, хотелось бы их ускорить.
однопоточная синхронная запись - slog только в общем то ставить, плюс по мелочи на мете поэкономить можно. Видел занимаются ребята оптимизацией zil кстати
George
есть слог. а однопоток около 100мб/с
ну так какой однопоток, какие диски под slog. Ну и сейчас 100% от raw скорости ждать не стоит, если хороший nvme, там есть что ускорять в коде
Ivan
через zpool iostat на slog иногда видно запись до 400МБ/с, но это исключительно на большом количестве потоков.
George
диски 500-550МБ/с в однопоток выдают
Той же нагрузкой тестили? Хотя бы 30% от диска было записано при этом? Увы много переменных влияет.
Ivan
там уже много было всего позаписано
George
ну просто dd на zvol натравил
эээ, кажется методика тестирования сильно разнится)))
Ivan
так в тестах от Сергея rw
Ivan
а мне хотяб что-то одно
George
Чтобы понимать накладные расходы фс, надо тем же профилем сам диск погонять, я про это
Ivan
Ivan
если про тот же тест говорить, то совсем печалька
Ivan
Чтобы понимать накладные расходы фс, надо тем же профилем сам диск погонять, я про это
сата ссд могёт явно больше. т.е. предлагаете датасет создать на одном из ссд и погонять тесты ?
George
Берёте fio, нужный вам конфиг и сам диск тестите (затрёт данные на нём, конечно же)
George
Получаете сырые цифры а сколько же железо даёт
George
И только с этими данными можно увидеть, сколько съедает zfs, и есть ли вообще место его тюнингу
George
А то ссд и нвме имеют свойство после например 100гб нагрузки резко становиться хуже
George
щупал я нвме, 3гбайт/сек пока он вообще пустой, записал хотябы 100гб - привет x4 просадка, кеши кончились/etc
Ivan
А то ссд и нвме имеют свойство после например 100гб нагрузки резко становиться хуже
да элементарно разница во много раз между тестом на разделе ссд и пулом с slog и special на нём же.
Ivan
например тестирую после ребута сначала zvol, потом раздел на ссд
Ivan
Ivan
это результат с полностью дефолтными настройками
George
например тестирую после ребута сначала zvol, потом раздел на ссд
Раздел на ссд это пул с вдевом только на ссд?
Ivan
на ссд лежит special,slog,swap и еще вот раздел для тестирования fio создал
Ivan
пул - raid10 на 36 hdd (+ special + slog на этом ssd)
George
Судя по выводу, тут параллельно идёт синхронное чтение, на пулах с hdd оно съест сильно иопсы. Randrw ждёт чтение, slog не прогрузится
George
на ссд лежит special,slog,swap и еще вот раздел для тестирования fio создал
Если вы хотите всё же синхронную запись тестить, то сделайте просто конкретный тест fio на это. Или я его пропустил выше где-то?
Ivan
так мне поменять методу тестирования ? в любом разе и чтение и rw и рандом и полследовательное оочень плохо себя показывают на zvol в однопотоке
George
так мне поменять методу тестирования ? в любом разе и чтение и rw и рандом и полследовательное оочень плохо себя показывают на zvol в однопотоке
Fio что скажешь то он и будет мерять в рамках одного потока. Начните с вопроса а какую нагрузку хочется потестить
George
так мне поменять методу тестирования ? в любом разе и чтение и rw и рандом и полследовательное оочень плохо себя показывают на zvol в однопотоке
Если в рамках одного потока тестить как выше, то чтение тупо на ожидании hdd будет висеть между каждой записью на slog, имхо так ничего не измеришь. Т.к. Пул состоит из многих частей с разной производительностью, я бы начал с полностью раздельных тестов
George
А так да, кейс "прочитать блок (синхронно) и записать блок (синхронно)" на вашем пуле из hdd и слога на ссд будет упираться в хдд при пустом arc
George
Что логично
George
Бд по факту сильно параллелятся внутри, плюс обычно есть wal
Ivan
Ivan
fio -ioengine=libaio -sync=1 -direct=1 -invalidate=1 -name=test -bs=4k -iodepth=1 -rw=read -runtime=60 -filename=/dev/zvol/Storage/fio --output=seqreadzvol.txt fio -ioengine=libaio -sync=1 -direct=1 -invalidate=1 -name=test -bs=4k -iodepth=1 -rw=randread -runtime=60 -filename=/dev/zvol/Storage/fio --output=randreadzvol.txt fio -ioengine=libaio -sync=1 -direct=1 -invalidate=1 -name=test -bs=4k -iodepth=1 -rw=write -runtime=60 -filename=/dev/zvol/Storage/fio --output=seqwritezvol.txt fio -ioengine=libaio -sync=1 -direct=1 -invalidate=1 -name=test -bs=4k -iodepth=1 -rw=randwrite -runtime=60 -filename=/dev/zvol/Storage/fio --output=randwritezvol.txt fio -ioengine=libaio -sync=1 -direct=1 -invalidate=1 -name=test -bs=4k -iodepth=1 -rw=read -runtime=60 -filename=/dev/sdak6 --output=seqreadssd.txt fio -ioengine=libaio -sync=1 -direct=1 -invalidate=1 -name=test -bs=4k -iodepth=1 -rw=randread -runtime=60 -filename=/dev/sdak6 --output=randreadssd.txt fio -ioengine=libaio -sync=1 -direct=1 -invalidate=1 -name=test -bs=4k -iodepth=1 -rw=write -runtime=60 -filename=/dev/sdak6 --output=seqwritessd.txt fio -ioengine=libaio -sync=1 -direct=1 -invalidate=1 -name=test -bs=4k -iodepth=1 -rw=randwrite -runtime=60 -filename=/dev/sdak6 --output=randwritessd.txt
Ivan
вот таким скриптиком затетсировал
Ivan
увы, на zvol в однопотоке производительность печальная по всем фронтам
Nikolay
это без slog ?
Nikolay
откуда они лезут
Fedor
Это ещё в листинг каналов чат не был добавлен :)
Nikolay
в дискорде недавно в канале по js набежала толпа ботов и давай вличку спамить подобной хренью )
Fedor
дискорд это же чатик для геймеров, не? :)
Nikolay
И для этого тоже ) на самом деле очень удобная вещь
Ivan
дискорд это же чатик для геймеров, не? :)
там теперь учителя лекции для школьников ведут)
Владимир
Всем привет. В вмваре было вставлено 4 диска, на каждом из них по файлу образа которые прокинуты в виртуалку на вмваре из них был сборан RAIDZ1 и один диск начал поминрать. Вот такая у меня стартовая инфа, мне предоставлили эти диски по одному я снял с каждого дамб, превратил в блочное устройство, а раздел блочного утсройства примонтировал. Теперь у меян есть доступ к образам. Подскажите как мне теперь собрать обратно RAIDZ1?
Владимир
ну расширение у них vmdk
George
по идее просто zpool import сделать, указав через -d на файлы с сырой инфой из этих образов