Настройка RAID0 на SSD

durka82

Поставил 2 SSD в RAID0 - по CrustalDiskMark всё выросло, кроме 4k read.
Имеет смысл играться с размером кластера (нтфс) и stripe size? Или толку не будет/будет только в синтетике?
Контроллер Marvell 88se9172 (с материнки ga-z77x-ud5h).
SSD ADATA SX900 (на 2-м сандфорсе).
Сравнение скорости:
один SSD, Intel:
Sequential Read : 518.926 MB/s
Sequential Write : 331.880 MB/s
Random Read 512KB : 459.014 MB/s
Random Write 512KB : 315.952 MB/s
Random Read 4KB (QD=1) : 29.546 MB/s [ 7213.4 IOPS]
Random Write 4KB (QD=1) : 17.556 MB/s [ 4286.2 IOPS]
Random Read 4KB (QD=32) : 224.075 MB/s [ 54705.7 IOPS]
Random Write 4KB (QD=32) : 101.154 MB/s [ 24695.9 IOPS]

один SSD (кластер 2к), Intel:
Sequential Read : 484.256 MB/s
Sequential Write : 186.862 MB/s
Random Read 512KB : 428.311 MB/s
Random Write 512KB : 172.154 MB/s
Random Read 4KB (QD=1) : 27.647 MB/s [ 6749.7 IOPS]
Random Write 4KB (QD=1) : 14.450 MB/s [ 3527.9 IOPS]
Random Read 4KB (QD=32) : 165.431 MB/s [ 40388.4 IOPS]
Random Write 4KB (QD=32) : 65.794 MB/s [ 16062.9 IOPS]

один SSD, Marvell:
Sequential Read : 352.029 MB/s
Sequential Write : 151.990 MB/s
Random Read 512KB : 324.680 MB/s
Random Write 512KB : 142.239 MB/s
Random Read 4KB (QD=1) : 26.057 MB/s [ 6361.7 IOPS]
Random Write 4KB (QD=1) : 15.104 MB/s [ 3687.6 IOPS]
Random Read 4KB (QD=32) : 194.749 MB/s [ 47546.2 IOPS]
Random Write 4KB (QD=32) : 101.541 MB/s [ 24790.4 IOPS]

RAID0 Marvell:
Sequential Read : 372.628 MB/s
Sequential Write : 259.935 MB/s
Random Read 512KB : 348.075 MB/s
Random Write 512KB : 248.039 MB/s
Random Read 4KB (QD=1) : 26.070 MB/s [ 6364.8 IOPS]
Random Write 4KB (QD=1) : 170.679 MB/s [ 41669.7 IOPS]
Random Read 4KB (QD=32) : 282.561 MB/s [ 68984.5 IOPS]
Random Write 4KB (QD=32) : 185.761 MB/s [ 45351.9 IOPS]

BatoSan

Мне кажется, если ты подключишь их к встроенному интеловскому сата контроллеру даже не в рейд режиме (судя по предыдущей теме, у тебя встроенный RAID почему-то так и не заработал), скорость будет выше. Пруфпик

agaaaa

Или толку не будет/будет только в синтетике?
Побуду кэпом: если в SSD размер сектора >=4k, то толку точно не будет. Иначе должен быть.

durka82

Поменял первый пост (добавил тесты ни интеловском контроллере и при секторе 2к).

durka82

Реально быстрее (ну кроме записи мелких, но это за счёт кэша), спасибо :)
Реально надо разбираться, почему не выходит на настройку интеловский рэйд - там ещё круче должно быть + можно будет несколько разделов сделать.

durka82

Да как-то ни одной выигрышной характеристики (если вместо дефолтных 4к взять 2к например) - при секторе 2к всё медленнее.

svetaslav212

Так интеловский рейд же софтовый. Как ты его настраивать пытаешься?

otvertka07

у тебя что-то херовый рейд0
мой примерно в 2 раза последовательную запись и чтение увеличивает
с 500 до 1000 грубо
все настройки по умолчанию

otvertka07

вот как примерно должно быть

ну и кстати если твой райд-контроллер не поддерживает трим в райд0 то ссд будет херово работать на нем
попробуй на интеловском встроенном - он это поддерживает

durka82

Так интеловский рейд же софтовый.

Ну да, софтовый, в том смысле, что проц участвует в его работе.
Но всё же аппаратный (точнее программно-аппаратный, но они наверное сейчас все такие), так как бываю полностью софтовые (=программные).
ак ты его настраивать пытаешься?

Я хочу на него систему поставить.
А не получается даже в его биос зайти (не появляется этот экран при буте.
В принципе можно попробовать ещё одну такую мамку поковырять - вдруг там работает - тогда эта точно бракованная - только брак какой-то странный.

svetaslav212

Я хочу на него систему поставить.
На полностью софтовый вроде бы нельзя поставить.
А не получается даже в его биос зайти (не появляется этот экран при буте.
А ты в биосе режим работы SATA контроллера сменил на RAID?

durka82

вот как примерно должно быть
ну и кстати если твой райд-контроллер не поддерживает трим в райд0 то ссд будет херово работать на нем
попробуй на интеловском встроенном - он это поддерживает

Да я за интеловский :)
Тем более, что он трим поддерживает (про это я, если честно, забыл).
В общем осталось расковырять доступ к биосу интеловского рэйда.
п.с.: кстати чтение 4к получается вообще мало от чего зависит, или это нужно страйп уменьшать хотя бы до 4к?

CapitanJack

а какой шас страйп?

durka82

На полностью софтовый вроде бы нельзя поставить.

На полностью софтовый нельзя.
Но это не тот вариант, который я рассматриваю.
А ты в биосе режим работы SATA контроллера сменил на RAID?

Каждый раз кто-нибудь спрашивает про это: ну раз уже скриншоты теста на другом программно-аппаратном рэйде даны, значит уже есть понимание, что это надо включать (марвеловский настраивается тоже через биос).
Хотя вот не уверен, что это понимание есть у самог8о биоса...

durka82

Дефолтный, 64к.

svetaslav212

Каждый раз кто-нибудь спрашивает про это: ну раз уже скриншоты теста на другом программно-аппаратном рэйде даны, значит уже есть понимание, что это надо включать (марвеловский настраивается тоже через биос).
Никогда не интересовался интеловским рейдом. Может он совсем-совсем софтовый? И все работает исключительно через Intel RST?

CapitanJack

то есть когда ты меряешь блоком по 4к контроллер то пишет эти вот 64к (ну или 2х32к в зависимости от того что понимается под страйпом) на диски. Что ты при этом хочешь увидеть не понятно, да и я смотрю вы все меряете на 1ГБ тест файле что в общем тоже ниче близкого к перформансу дисков не показывает :)

durka82

Обычный чипсетный рэйд.
В некоторых моментах даже получше аппаратного (например мне на аппаратном после интеловского не понравилось отсутствие матриксрэйда - по мне так удобная штука).

svetaslav212

Я завязал с чипсетным рейдом после того, как однажды пытался настроить работу NVIDIA RAID. Теперь только аппаратный, только хардкор! :D

durka82

А как лучше мерить?
Я просто на дефолтных.
Но мб 100МБ за глаза хватит.

CapitanJack

лучше иометром и на весь объем диска а не первый гигабайт. у вас один только кеш файловой системы больше гига наверняка да и на рейд контроллере наверно какой то кеш тоже есть даже если рейд софтовый.

durka82

NVIDIA вроде прошёл мимо меня (тогда как-то столько дисков за раз и не бывало, максимум на 0/1).
А интеловский для 0/1 нормально. Вот 10 он уже с трудом тянет и только на 4 диска.

hoha32

На полностью софтовый вроде бы нельзя поставить.
линух можно

durka82

Я правильно понимаю, что все SSD читают/пишут инфу блоками по 4КБ?
Тогда получается, что для raid0 разумно ставить страйп в 8КБ (ведь если ставить 4 - всё равно будет писаться по 8 из-за особенности работы ssd?)?

durka82

И имеет смысл размер кластера делать кратным размеру страйпа?
Ведь если они равны, тогда получается запись/чтение кластера = запись/чтение страйпа. Или на скорость это не влияет?

procenkotanya

нет, запись происходит кусками по erase block size, который существенно больше, может быть 2МБ, например (зависит от модели, очевидно)
соответственно, и размер страйпа имеет смысл ставить пропорционально erase block size
размер кластера ставить пропорционально размеру страйпа при таком подходе я бы, конечно, не советовал

durka82

Именно erase block size? Или block size?
И как реально их можно определить?
Размер страйпа предлагается от 4 до 128КБ.
А чему лучше делать пропорциональным размер кластера? Или ставить дефолтный и не париться?

procenkotanya

я не знаю какой "block size" ты имеешь в виду
для некоторых моделей можно "определить", загуглив "<модель ssd> erase block size"
если размер страйпа так ограничен, то видимо надо ставить максимальный (128К)
про размер кластера, я думаю да, проще не париться и оставить дефолтный

durka82

я не знаю какой "block size" ты имеешь в виду

Так кроме минимального объема, который стирается за 1 раз (erase block size), есть ещё минимальный объём, который считывается/записывается за 1 раз. Я его и имею в виду.
для некоторых моделей можно "определить", загуглив "<модель ssd> erase block size"

Не гуглится к сожалению :(

procenkotanya

так перед тем как что-то записать, надо сбросить весь erase block в исходное состояние*
если не гуглится, не суть — меньше 128K на SSD я не видел в любом случае
* тут возможно стоило добавить "в худшем случае", т.к. можно представить себе ситуации, когда можно дозаписать erase block без сброса; хз, делается ли это на практике

durka82

если размер страйпа так ограничен, то видимо надо ставить максимальный (128К)

Я тут немного потестил, так 32 и 8 КБ по версии CrystalDiskMark практически всегда лучше, чем 128КБ (линейное чтение хуже, но оно и так везде большое).

agaaaa

Я тут немного потестил, так 32 и 8 КБ по версии CrystalDiskMark практически всегда лучше, чем 128КБ (линейное чтение хуже, но оно и так везде большое).
Так это не удивительно. Если я правильно понимаю, то диск работает так:
Есть множество уже очищенных секторов и множество ещё не очищенных.
Пока первое не пусто, можно взять из него 128К блок и записать в него 8К. После этого в тот же блок можно будет дозаписать 120К, т.к. эти 120К уже очищены.
Но когда пустые секторы подходят к концу, т.е. когда место заканчивается или место ещё есть, но система не сообщила диску, что его можно очистить, т.к. не поддерживает TRIM, то чтобы записать 8К, надо прочитать 128К блок, стереть его, затем записать 128К данных обратно, обновив эти 8К.
Поправьте, если не так.

otvertka07

у меня страйп сайз 16кб - это интел по умолчанию такой ставит
в хелпе прочел, пишет, что не рекомендуется изменять, если ты точно не знаешь, зачем :grin:
ну я и не изменял
тесты не делал

durka82

Я правильно понимаю, что размеры разделов лучше делать кратными страйпу?
А стоит применять сжатие для файлов файлов? На винтах экономило место и повышало скорость (за счёт того, что меньше данных с винта читать), а проца жрало достаточно мизерно. А на ссд с этим как? Побочных эффектов не будет (ссд же вродесами тоже сжимают данные)?

svetaslav212

А стоит применять сжатие для файлов файлов? На винтах экономило место и повышало скорость (за счёт того, что меньше данных с винта читать), а проца жрало достаточно мизерно. А на ссд с этим как? Побочных эффектов не будет (ссд же вродесами тоже сжимают данные)?
Где-то на THG было исследование на эту тему. Вроде особого смысла не было сжатие включать.

carusya

Вроде особого смысла не было сжатие включать.
Что значит не было смысла? Место то экономится очевидно.

svetaslav212

Что значит не было смысла? Место то экономится очевидно.
Место-то экономится, а циклов записи становится больше.
http://www.thg.ru/storage/ntfs_osvobozhdaem_mesto_na_ssd/one...
Оставить комментарий
Имя или ник:
Комментарий: