LINUX.ORG.RU
ФорумAdmin

ZFS крайне медленная скорость чтения

 


0

1

Всем привет,

В общем закинул я в свой массив ZFS образы вирт. машин и торренты. Если торренты включить, то время загрузки вирт. машины увеличивается раз в 20. При этом в самой вирт машине (Win10) показывает 100% загруженность HDD. Если выключить – все ок.

Оперативки 64 Гб, больше половины используется под ARC. Образы дисков – обычный raw img. Сжатие lz4 включено.

Это надо L2Arc ставить или как настроить?

Перемещено hobbit из general


Телепатов съели. Что торренты-то делают в это время? Возьми какой-нибудь iotop и посмотри кто у тебя диск долбит.

Оперативки 64 Гб, больше половины используется под ARC.

Сделай его меньше. 8 гигов вполне хватает.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Что торренты-то делают в это время?

Торренты раздаются.

Возьми какой-нибудь iotop и посмотри кто у тебя диск долбит.

Дело в том что на этом массиве только торренты и виртуалка.

8 гигов вполне хватает.

Так у меня оперативки избыток, зачем простаивать?

alex07
() автор топика
Последнее исправление: alex07 (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Возьми какой-нибудь iotop

Вот так, плюс-минус.

pool                                           alloc   free   read  write   read  write
---------------------------------------------  -----  -----  -----  -----  -----  -----
data                                           4.85T  7.88T  1.09K      0  27.4M      0
  raidz1-0                                     4.85T  7.88T  1.09K      0  27.4M      0
    ata-HGST_HUS724020ALA640_PN1161P6KU7AYW        -      -    171      0  3.77M      0
    ata-HGST_HUS724020ALA640_PN2166P2H7RG8J        -      -    179      0  3.93M      0
    ata-WDC_WD2003FYYS-18W0B0_WD-WMAY02509617      -      -    135      0  3.74M      0
    ata-WDC_WD2003FYYS-18W0B0_WD-WMAY02508867      -      -    158      0  4.23M      0
    ata-HGST_HUS724020ALA640_PN1161P6KD2W8W        -      -    173      0  3.85M      0
    ata-WDC_WD2003FYYS-18W0B0_WD-WMAY02510083      -      -    145      0  4.00M      0
    ata-WDC_WD2003FYYS-18W0B0_WD-WMAY02509937      -      -    154      0  3.91M      0
---------------------------------------------  -----  -----  -----  -----  -----  -----
alex07
() автор топика
Ответ на: комментарий от alex07

Дай угадаю. У тебя торренты долбят диски рандомными запросами, в результате чего диски большую часть времени проводят мотая головками в поиске данных.

Можешь попробовать через ionice порезать торрентам приоритет при доступе к диску, либо вынести из в отдельную cgroup и зарезать ей доступ через blkio.

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

У тебя торренты долбят диски рандомными запросами

Я все-таки надеюсь что качают у меня не все торренты рандомно, а какие-то конкретные куски, которые уже прогретые лежат в Arc.

Я собственно поэтому про L2Arc и спросил. Тем более есть один свободный SSD на 512Гб.

через ionice порезать торрентам приоритет при доступе к диску

Не, я хочу что всё шустро работало, и торренты и виртуалки.

alex07
() автор топика
Последнее исправление: alex07 (всего исправлений: 1)
Ответ на: комментарий от alex07

Я собственно поэтому про L2Arc и спросил. Тем более есть один свободный SSD на 512Гб.

Ну, попробуй. Благо, добавить и удалить его из пула можно довольно безболезненно. Можешь часть выделить под ZIL, чтобы запись тоже ускорилась.

Но вообще, глянь arc_summary, он покажет тебе количество промахов в кэше.

Ищи что-то типа этого, для начала:

ARC total accesses:                                               227.7M
        Total hits:                                    99.5 %     226.6M
        Total I/O hits:                               < 0.1 %      77.1k
        Total misses:                                   0.5 %       1.0M

Не, я хочу что всё шустро работало, и торренты и виртуалки.

Тогда вертушки – это явно не то, чего ты хочешь.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 3)
Ответ на: комментарий от hateyoufeel

глянь arc_summary

Вот:

ARC total accesses:                                               376.7M
        Total hits:                                    97.4 %     366.9M
        Total I/O hits:                                 0.1 %     378.9k
        Total misses:                                   2.5 %       9.4M

Но это с выключенной виртуалкой. И значения в мегабайтах какие-то слишком низкие.

alex07
() автор топика
Ответ на: комментарий от alex07

64 интерпрайзных диска на 7200rpm.

Нормальный энтерпрайз - это 10krpm или лучше 15krpm (хотя по сравнению с ssd всё равно сильно проигрывают).

7200 - это не про скорость, это про холодное хранение.

P.S. WD2003FYYS - старенькие SATAII диски, им лет 15 уже.

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 1)
Ответ на: удаленный комментарий

Я читал твою тему с тестами, но уже забыл всë. Напомни, сколько iops у тебя в тестах было.

imul ★★★★★
()
Ответ на: комментарий от alex07

Я собственно поэтому про L2Arc и спросил. Тем более есть один свободный SSD на 512Гб.

Найди второй SSD, сделай зеркало и успокойся.

А raidz1 из кучи полумертвых дисков не даст нормальной скорости, что с ним не сделай.

melkor217 ★★★★★
()
Ответ на: комментарий от alex07

запусти

arcstat 1

колонка read - чтение из ARC кэша, miss - нет требуемых данных в кэше, т е читаем их с диска.
М б у тебя вообще смысла в кэше нет никакого для твоего профиля нагрузки.
А L2ARC имеет смысл, если ARC не хватает, если же у тебя ARC не используется, то и L2ARC не нужен

andyl
()
Ответ на: комментарий от andyl

arcstat 1

    time  read  ddread  ddh%  dmread  dmh%  pread  ph%   size      c  avail
08:06:09    57      25    96      30   100      2    0    31G    31G   6.4G
08:06:10  4.5K    2.0K    93    2.3K   100     89    3    31G    31G   6.3G
08:06:11  4.7K    2.2K    93    2.4K   100     57    0    31G    31G   6.3G
08:06:12  4.5K    2.0K    93    2.3K   100     90   11    31G    31G   6.3G
08:06:13  4.2K    1.8K    92    2.3K   100    147   14    31G    31G   6.3G
08:06:14  4.1K    1.8K    94    2.1K   100    140    8    31G    31G   6.3G
08:06:15  5.5K    2.5K    94    2.8K   100    118   22    31G    31G   6.3G

Колонки miss не наблюдаю.

alex07
() автор топика
Ответ на: комментарий от GAMer

Так у него про иопсы и речь. Если у тебя сотни торрентов, то сотни последовательных чтений превращаются в лютейший рандом. Не знаю, делает ли zfs prefetch.

cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 1)
Ответ на: комментарий от alex07

dmh% везде 100%, хиты во все поля.

Посмотри в iostat -mx 1, он покажет насколько загружены диски и какими именно запросами.

cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 1)

Если не установлено то установи sysstat там бай дефолт или джоба или таймер каждые 10 мин сбора статистики. Потом тупо посмотри в выхлопе sar -d -p по колонке await лэйтенси дисков. Для начала.

VKraft ★★
()
Ответ на: комментарий от alex07

Прямо сейчас на всех дисках массива какие-то лютые значения (ок. 100) в колонке wMB/s. Я правильно понимаю что это запись?

Да. По 100 MB/s на старых дисках 15летней давности это 80% от возможности этого диска :)))

Я хз, ребилд?

cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

через ionice порезать торрентам приоритет при доступе к диску

Сделал sudo ionice -c 3 -p <pid> торрентокачалке, помогло крайне слабо, точнее вообще не помогло.

alex07
() автор топика
Ответ на: комментарий от andyl

включен ли префетч.

Быстрый поиск в интернете не дал понимания как его проверить и тем более включить/выключить. Не подскажете?

Увеличь для начала верхнюю границу arc

А разве ZFS не будет сам по себе пытаться заюзать макс. кол-во оперативки для кэша?

alex07
() автор топика
Ответ на: комментарий от alex07

Это вот этот параметр

zfs_prefetch_disable

По умолчанию он включен, в linux можно задать в /etc/modprobe/zfs.conf

options zfs zfs_prefetch_disable=1

и перезагрузиться или динамически изменить так

echo 1 > /sys/module/zfs/parameters/zfs_prefetch_disable

https://openzfs.github.io/openzfs-docs/Performance and Tuning/Module Paramete...

andyl
()
Последнее исправление: andyl (всего исправлений: 2)
Ответ на: комментарий от alex07

А разве ZFS не будет сам по себе пытаться заюзать макс. кол-во оперативки для кэша?

Без явного указания zfs_arc_max - половина RAM, появилось AFAIK в 2.0.

https://openzfs.github.io/openzfs-docs/Performance%20and%20Tuning/Module%20Parameters.html#zfs-arc-max

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 1)
Ответ на: комментарий от Dimez

Без явного указания zfs_arc_max - половина RAM

Так и есть, по умолчанию в параметре прописан 0 т.е. используется половина доступного RAM.

Поставил значение 61847529062, ну т.е. 9/10.

echo 61847529062 > /sys/module/zfs/parameters/zfs_arc_max

Сейчас жду и смотрю как изменится.

alex07
() автор топика
Ответ на: комментарий от Dimez

Вангую OOM на виртуалку :)

Почему? Насколько я понимаю при первой нехватке памяти под нее сразу же отдается весь этот кэш.

С другой стороны, че толку тогда? гг

В данный момент на одних только торрентах у меня значение wa 40%, я вот пока без виртуалки пытаюсь его сбить.

alex07
() автор топика
Последнее исправление: alex07 (всего исправлений: 1)
Ответ на: комментарий от alex07

Почему?

Потому что до введения этого дефолта вой в интернете стоял об отстреливаемых виртуалках :) Да и у меня разок отстрелило на свежем (тогда) сервере, где я забыл ограничить.

Dimez ★★★★★
()
Ответ на: комментарий от alex07

Проблема кроется где-то здесь.

А какая там может быть проблема при переизбытке CPU и mem?

RAIDZ сам по себе довольно медленный. Он ощутимо медленнее других софтварных RAID-5/6 (хоть и не совсем корректно их сравнивать). Собственно, потому он немного надёжнее их.

mord0d ★★★★★
()
Ответ на: комментарий от alex07

Общепринятая данность что RAID5/6 нельзя использовать.

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

RAIDZ в этом плане надёжнее… но медленнее.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Потому что оно имеет свойство разваливаться

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

RAID6 решает проблему выпадения одного диска, но никак не двух.

RAIDZ, опять же, насколько я понимаю, немного надежнее за счет хэшей.

alex07
() автор топика