LINUX.ORG.RU

Время перепаковки SLC-TLC

 


0

3

Есть SSD. Cкорость записи максимальна до примерно 1/3 его объёма. Далее скорость падает до 1/3 от максимальной. Типичное поведение для TLC-памяти.

Задача: Найти условия, при которых SSD обеспечивает максимальную или близкую к максимальной скорость записи за пределами SLC-объёма.

Гипотеза: Контроллер диска во время простоя перепаковывает SLC в TLC. Если дать контроллеру достаточно времени на перепаковку, он сможет записывать данные на максимальной скорости на большей части объёма SSD.

Проверка гипотезы: Буду записывать информацию на SSD кусками фиксированного размера (~1/20 объёма SLC), выдерживая паузу перед записью очередного куска. Длительность паузы должна быть не меньше разности наихудшего и наилучшего времени записи куска. Например, если в лучшем случае кусок был записан за 120 секунд, а худший за 600 секунд, то длительность паузы составит 480 секунд.

Результат проверки: При уменьшении средней скорости записи в 5 раз скорость записи куска данных увеличилась всего в 1.5 раза.

Вывод: Контроллер не спешит перепаковывать записанные данные. Вероятно, требуется увеличить длительность паузы.

Вопросы:

  • Что мешает контроллеру немедленно приступить к перепаковке SLC в TLC?
  • Как его к этому подтолкнуть?
  • Как найти условия, при которых контроллер гарантированно освободит в SLC кусок памяти нужного мне объёма?

Говорят, самсунги имеют умный контроллер, который умеет перепаковывать во время записи, то есть скорость записи вне slc-кеша выше скорости записи в tlc.

anonymous
()

Что мешает контроллеру немедленно приступить к перепаковке SLC в TLC?

Настройки прошивки

Как его к этому подтолкнуть?

Зависит от модели, например samsung 980pro может держать данные в slc форме часами, но после перезагрузки сразу начинает упаковывать в TLC.

Как найти условия, при которых контроллер гарантированно освободит в SLC кусок памяти нужного мне объёма?

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

Скорость записи максимальна до примерно 1/3 его объёма

на данной модели SSD, для увеличения скорости записи необходимо иметь свободный(с учетом trim) объем x3.

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

для увеличения скорости записи необходимо иметь свободный(с учетом trim) объем x3.

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

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

Незачем безусловно всё упаковывать, может ты не будешь записывать больше slc кэша. Момент упаковки определяется по всяким эвристикам, и явно эти эвристики не подходят для синтетических тестов (кроме рекламы в популярных бенчмаркам)

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

Незачем безусловно всё упаковывать, может ты не будешь записывать больше slc кэша.

Я надеялся на перепаковку объёма хотя бы 1/20 от максимального SLC. Возможно, даже это слишком много для прошивки моего контроллера.

На какой объём имеет смысл рассчитывать?

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

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

В энтерпрайз сегменте делают SSD без этих псевдо ускорений.

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

в потребительских SSD, чтобы продать тебе маркетинговые гигабайты в секунду записи

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

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

Ты не прав. Из-за этой фичи можно купить обычный SSD, настроить ОС чтобы она ни при каких обстоятельствах не трогала больше чем первую треть его объёма, и получить SLC диск (всегда быстрый и вроде как более надёжный), которых напрямую уже не найти в продаже.

Хотя конечно зависит от прошивки, вот у автора темы кажется удачно подходящая под этот сценарий - ничего в TLC не конвертирует пока место не кончится.

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

Флеш-память - устройство довольно медленное. За последние двадцать лет оно не стало заметно быстрее, но стало сильно менее долговечно.

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

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

вот у автора темы кажется удачно подходящая под этот сценарий - ничего в TLC не конвертирует пока место не кончится.

Эта гипотеза не подтвердилась. Полностью заполненный SSD после нескольких часов простоя смог записать кусок данных на полной скорости. Значит, имеющиеся данные он успел перепаковать и освободить достаточный объём для SLC-записи этого куска.

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

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

обычно если у SSD есть выделенный DRAM буфер, то контроллер будет записывать данные в TLC режиме пока этот буфер не начнет переполняться. на дешманских SSD без DRAM можно с помощью софта ограничить скорость записи и тогда данные будут записываться сразу в TLC режиме, но это только предположение.

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

контроллеру на плате использовать оперативную память

Аж целых 64 мегабайта, ага. Можно вообще ни в чем себе не отказывать.

И да, DRAM буфер (там где он настоящий, а не «host memory» для бедных) - это не кэш для записи данных. В нем хранят таблицу трансляций адресов. Поэтому и объемы у него небольшие, по гигабайту RAM на терабайт хранилища. этого достаточно.

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

У флеш памяти повышается и скорость и параллелизм. Например ADATA Legend 850: TLC Micron B47R FortisFlash, 2 chips, 8 dies per chip, 4 planes per die. Время записи одной 16 KB страницы (tPROG) 502 мкс, то есть скорость записи одного plane 16 KB/512 мкс = около 31 MB/s. Одного die (x4) около 127 MB/s. Одного чипа (x8) около 1019 MB/s. Всего накопителя (x2) около 2039 MB/s.

В характеристиках намеряли скорость записи при исчерпании SLC кэша около 1880 MB/s, а скорость фолдинга SLC кэша 880 MB/s (т.е. в два раза ниже, чем скорость записи в TLC).

Зачем в таких накопителях делают SLC кэш? И без него скорость записи почти 2 GB/s, но надо же на упаковке написать 4.5 GB/s, а то купят упаковку конкурента.

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

Она не упавшая, она честная и стабильная. Накопитель без SLC кэша может писать со стабильной скоростью, которая выше, чем скорость фолдинга SLC кэша. А накопитель с SLC кэшем будет изображать «пилу» на графике скорости записи от объёма записи.

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

Эта гипотеза не подтвердилась. Полностью заполненный SSD после нескольких часов простоя смог записать кусок данных на полной скорости. Значит, имеющиеся данные он успел перепаковать и освободить достаточный объём для SLC-записи этого куска.

Не могу отредактировать своё сообщение, а в нём есть ошибка. Сделанный мной логический переход требует проверки. То, что контролер SSD может освободить какой-то объём для SLC-записи, не значит, что он будет это делать. Проверка должна выглядеть иначе.

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

Если явно не указано что есть кэш, то это не кэш, а прошивка просто подготавливет место для быстрой записи, но не подготавливает весь объем, чтобы сохранить ресурсы, и потому что нужно записать об этих подготовленных блоках данные куда-то тоже.

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

Без исходников прошивки ничего гарантировать нельзя.

Общепризнаных подходов к SLC-кешу нет, у одних он на весь свободный объём, у других на несколько гигабайт (фиксированый объём). Один перепаковывают почти сразу, другие через несколько часов простоя, а третьи, вроде, могут вобще не перепаковывать, пока SLC-кеш процентов на 80 не будет занят.

Даже, если вы сегодня опытным путём найдёте алгоритм предсказания сколько у этого конкретного SSD свободного SLC-кеша, завтра может оказаться, что прошивка меняет своё поведения от фазы луны — допустим от процента износа флеша.

Если вам нужна быстрая запись, ищите именно такой SSD, который весь объём пишет на высокой скорости.

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

Даже, если вы сегодня опытным путём найдёте алгоритм предсказания сколько у этого конкретного SSD свободного SLC-кеша, завтра может оказаться, что прошивка меняет своё поведения от фазы луны — допустим от процента износа флеша.

Похоже на то. На моём экземпляре при ритмичной записи большими кусками наибольшая скорость достигается в начале диска, когда имеется достаточно большой объём для записи в SLC-режиме, и в конце, когда (предположительно) контроллер освобождает SLC более агрессивно.

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

Ты там серийного робота проектируешь, штоле?

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

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