Я проводил много тестов ввода-вывода в системе ZFS, которую в конечном итоге буду использовать для обслуживания виртуальных машин. Я подумал, что попробую добавить SSD для использования в качестве кеша, чтобы посмотреть, насколько быстрее я могу получить скорость чтения. У меня также есть 24 ГБ оперативной памяти в машине, которая действует как ARC. vol0 составляет 6,4 ТБ, а кэш-диски - SSD на 60 ГБ. Звол выглядит следующим образом:
pool: vol0
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
vol0 ONLINE 0 0 0
c1t8d0 ONLINE 0 0 0
cache
c3t5001517958D80533d0 ONLINE 0 0 0
c3t5001517959092566d0 ONLINE 0 0 0
Проблема в том, что я не вижу разницы с установленным SSD. Я пробовал тесты bonnie ++ и несколько простых команд dd, чтобы записать файл, а затем прочитать файл. Я проводил тесты до и после добавления SSD.
Я позаботился о том, чтобы размеры файлов были как минимум вдвое больше моей оперативной памяти, поэтому невозможно все кэшировать локально.
Я что-то упустил? Когда я увижу преимущества всего этого кеша? Я просто не в этих обстоятельствах? Неужели программы тестирования не подходят для тестирования эффекта кеширования из-за способа (и того, что) он пишет и читает?
Любой, кто пытается протестировать L2ARC, захочет увидеть, насколько «теплый» L2ARC, а также оценить, что их запросы попадают в L2ARC. Для этого есть хороший инструмент и статья: arcstat.pl обновлен для статистики L2ARC
Вы рассматривали пространство ARC по сравнению с вашим тестом? При тестировании преимуществ ввода-вывода SSD, используемых в качестве L2ARC (кэш чтения пула) и / или ZIL (кеш синхронной записи пула), вам необходимо учитывать размер вашего ARC в отличие от рабочего набора вашего теста. Если ARC можно использовать, это будет без извлечения из L2ARC. Аналогичным образом, если включено кэширование записи, записи будут объединяться независимо от ZIL, если не включены очистка и явное синхронное поведение (т. Е. Кэш записи инициатора также отключен и т. Д.)
Если вы хотите увидеть ценность SSD для меньших рабочих наборов, учтите, что 16-дисковый RAID10 обеспечит около 1200+ IOPS (SAS / SATA?) Для записи и примерно вдвое больше для чтения. Уменьшение набора дисков до двух (для тестирования) и уменьшение ARC до минимума (около 1/8 основной памяти) позволит вам сравнить шпиндель и SSD. В противном случае вам нужно было бы получить больше потоков, работающих с вашим пулом (несколько LUN), чтобы увидеть преимущества. Ах да, и пусть больше интерфейсов работают, так что BW не будет привязана к одному интерфейсу 1 Гбит / с ...
Кажется, ваши тесты очень последовательны, как если бы вы записали большой файл с помощью dd, а затем прочитали его. Кэш ZFS L2ARC предназначен для повышения производительности при рабочих нагрузках произвольного чтения, а не для потоковой передачи, как в случае шаблонов. Кроме того, для достижения оптимальной производительности вы можете подождать более длительное время, пока кэш не нагреется. Другой момент - убедиться, что ваш рабочий набор подходит для SSD. Наблюдение за статистикой io во время тестов поможет выяснить, какие устройства используются и как они работают.
Я немного запутался, почему вы использовали массив рейдов в качестве резервного хранилища для zvol.
Затем вы ограничиваете способ управления дисками / io в ZFS слоем, который, вероятно, не так надежен, как ZFS. (как упоминает 3dinfluence) Можно ли настроить RAID напрямую с помощью ZFS?
Возможно ли, что у вас достаточно шпинделей, чтобы соответствовать IO / s SSD? (SSD должны увеличивать количество операций ввода-вывода в секунду, не обязательно последовательную полосу пропускания)
Еще в те дни, когда я использовал iozone
провести сравнительный анализ. Я не гуру тестирования, но моя команда для локального тестирования была такой:
iozone -a -o -r 128K -n 128K -g 48G
Вот описание команды:
-a: Auto-Mode
-o: This forces all writes to the file to go completely to disk before returning to the benchmark
-r: Set Record Size. Default 128K on ZFS filesystem
-n: Minimum filesize = Record Size
-g: Maximum filesize = 2 * RAM
Может быть, вы попробуете и опубликуете свой опыт работы с этим инструментом. У меня были хорошие результаты, но бенчмаркинг похож на статистику. Не доверяйте тесту, который вы сами не подделали. ;-)
РЕДАКТИРОВАТЬ
Осталось одно: я бы сделал тест с кэширующими устройствами и без них. Думаю, здесь вы можете увидеть влияние на результаты. Было бы неплохо увидеть некоторые результаты. Просто любопытно.
Вы запускаете свои тесты с включенным сжатием? ZFS очень эффективна при работе со сжатием, и многие инструменты для тестирования тестируют производительность, записывая множество нулей.
Обязательно отключите сжатие во время тестирования или используйте случайные данные * во время тестирования.
* напишите 1 ГБ случайных данных: openssl rand -out myfile $ ((1024 * 1024 * 1000))