LINUX.ORG.RU

Падение скорости чтения с ssd для файлов, записанных N месяцев назад

 , , , ,


1

4

Есть у меня ssd (WD blue 250GB), использовал примерно три года как переносной. Решил на днях переписать с него пару больших архивных файлов, записанных пару лет назад. Скорость чтения по ходу процесса менялась в диапазоне от 8 до 15 МБ/с, не выше. Думал, у меня проблема с USB адаптером. Специально записал на этот ssd ещё один файл, отсоединил-присоединил (для сброса кеша), скорость чтения примерно как и должна быть, ~350 МБ/с. Прочитанные с низкой скоростью файлы не битые, рядом с ними есть файлы с контрольными суммами sha256, всё совпало.

SMART: https://bpa.st/DTDQ

(SMART снят напрямую через SATA, установил этот ssd в старый ноутбук)

Про проблему (которой лет 10) с Samsung 840 EVO читал. Но ту проблему вроде разрешили прошивкой. И там был счёт на месяцы, у меня пара лет прошла.

Дальше преимущественно результаты гугленья

Есть довольно старая тема (цитировалась на ЛОР-е; 2014 года; свежие коменты от 2023)

Read speeds dropping dramatically on older files; benchmarks needed to confirm affected SSDs

https://www.overclock.net/threads/read-speeds-dropping-dramatically-on-older-files-benchmarks-needed-to-confirm-affected-ssds.1512915/?sortby=newest#replies

WD Blue 3D NAND: Loss of performance reported when reading old files
Jun 11, 2022

https://allinfo.space/2022/06/11/wd-blue-3d-nand-loss-of-performance-reported-when-reading-old-files/

Western Digital SSDs experiencing read performance degradation

https://linustechtips.com/topic/1275489-western-digital-ssds-experiencing-read-performance-degradation/

В этих темах используют SSDReadSpeedTester (под оффтопик)

Инструмент для чтения файлов с диска с определением скорости чтения.

И ещё:

SSDs that don’t slow down reading old files?
While the 840’s and the Corsair model dropped like a rock after ~3 months, WD model looks to appear to slow down gradually from 4 months to a year and maintain decent speeds.

https://www.reddit.com/r/unRAID/comments/10bi4sc/ssds_that_dont_slow_down_reading_old_files/?rdt=40849

I had what I believe to be the same issue with my 2 year old «Kingston KC3000 M.2 2280 4096GB PCIe 4.0 x4 NVMe 3D TLC Internal Solid State Drive (SSD) SKC3000D/4096G» I had some old VM images on the drive and attempting to read them would always result in the files reading extremely slowly (around 10 MB/s) but if i copied a new file to the drive and then read it back it would read at the expected fast speed of about 2.5 GB/s.

Тема, где аналогичные жалобы на WD Blue, Kingston A400:

https://forum.ixbt.com/topic.cgi?id=4:142795

Вопрос (если кто-то дочитал до конца):

Не знает ли кто инструмент аналогичный упомянутому выше SSDReadSpeedTester (он под оффтопик)? Данное приложение читает файлы (чтение просто поверхности менее разумно; хочется сопоставить момент времени, в который был записан файл и скорость его чтения) с определением скорости чтения для данного файла. Вид приложения есть по первым трём ссылкам. Если бы приложение автоматом проверяло бы контрольные суммы (если они есть рядом), было бы ещё лучше.

★★★★★

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

Ответ на: комментарий от NiTr0

баг конкретной фирмвари конкретного накопителя.

В моём случае были две модели, правда одного производителя, Samsung. Если погуглить ««media errors» ssd», можно найти репорты об аналогичных проблемах на накопителях других производителей.

расскажите же, как такая магия могла случиться если нет фоновой перезаписи…

Контроллер откалибровал опорные напряжения, например.

Кстати, на этом SSD за эти несколько часов увеличилось значение счётчика записанных данных в отчёте SMART?

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

возьмите обычные microsd карты, где никакого bgms нет

Какой в этом смысл? Допустим, будет потеря данных. Как это отнести к SSD? Возможно, дело будет просто в разном качестве флеша.

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

что её мешает уводить накопитель в сон сразу после чтения

В принципе, да. Но ведь чипы флеш-памяти всё равно греются.

А почему у того или иного накопителя не работает фоновое сканирование и перезапись блоков никто никогда не узнает.

Вот именно. Мы даже не узнаем, работает ли оно вообще. Об этом я и говорю. Максимум, что у нас есть, это маркетинговые материалы. Исходников прошивок нет, каких-то известных примеров обратного инжиниринга тоже нет. Ничего нет. Только вера.

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

Кстати, на этом SSD за эти несколько часов увеличилось значение счётчика записанных данных в отчёте SMART?

не смотрел, да и смысла не было - оффтопик сразу начинает качать 100500 обновлений…

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

Толерантность к числу ошибок может быть разная. В 32G флешку вполне можно вставить 64G чип, у которого 10% ячеек изначально мёртвые. Встроенный в чип контроллер на ходу разберётся, что к чему. В среднего размера microsd картах и USB-флешках наверняка даже один раз флеш не прочитывается на заводе. На это же время уходит.

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

накопители делают

Ну это очень обобщённая формулировка. Там не хватает «все накопители» или «некоторые накопители», «делают всё время» или «в определённых обстоятельствах».

Вобщем, будем ждать реверса прошивок :)

Много чего не понятно, с одной стороны, вроде как, накопитель старается выровнять износ ячеек, то есть, при интенсивной записи, ячейки, в которые давно не было записи, будут задействованы, перезаписаны. С другой стороны, самые давно не изменяемые данные на накопителе, ИМХО, обычно не файлы, а таблица разделов, загрузчик, может какой суперблок ФС. И для обычного пользователя повреждение этих данных равносильно «всё пропало». То есть должна быть куча сообщений, что тот или иной накопитель лютое Г, типа выключил комп на пару месяцев и все фоточки пропали.

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

С другой стороны, самые давно не изменяемые данные на накопителе, ИМХО, обычно не файлы, а таблица разделов, загрузчик, может какой суперблок ФС. И для обычного пользователя повреждение этих данных равносильно «всё пропало». То есть должна быть куча сообщений, что тот или иной накопитель лютое Г, типа выключил комп на пару месяцев и все фоточки пропали.

В общем-то есть аппноты от брэндовых производителей с разбором параметров, влияющих на время хранения (вот прямо чтоб конкретной информации они само собой не дают, но ориентировочные псевдостатистические графики рисуют). И получается такая картина, что сильнее всего на деградацию врмени хранения влияет интенсивность использования диска/чипа, а точнее - таки записи. Условно говоря, если от сильно насилуемого диска по стандартам JEDEC требуется обеспечить 3 месяца или год (в зависимости от условий эксплуатации) хранения данных, то согласно этим аппнотовским графикам при околонулевой интенсивности использования (соотвественно речь больше о количестве перезаписей), то время хранения достигает многих лет, а то и переваливает за десяток (это данные слегка устаревшие, по qlc пока мало информации)

Как вполне логичный вывод из аппнотов - отптимально записал инфу в блок - не трожь. Каждое ее лишнее переписывание (средствами контроллера или ОС - неважно) только приблизит кончину диска. Поэтому скорее всего если это и заложено где-то в прошивке, то вряд ли намного чаще вот этого требуемого по JEDEC времени хранения

vaddd ★☆
()

записанных пару лет назад. Скорость чтения по ходу процесса менялась в диапазоне от 8 до 15 МБ/с, не выше.

Интересно, будут ли жалобы на жёсткие диски, где при производстве записываются параметры треков для блинов (RRO) в NAND (вроде, 64 GB, но ещё и для других целей). WD рекламирует OptiNAND для 20+ TB. От тошибы и сигейта на этот счёт ничего не слышал.

Если флеш-чипы, может, можно было бы отпаять и посадить назад через крохотный адаптер для осциллографа, и послушать, есть ли какая-то систематическая активность при бездействии, то с жёсткими дисками, которые, сами по себе обновляют соседские треки после определённого кол-ва записи, так «просто» не выйдет.

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

записал инфу в блок - не трожь.

Да, но тогда при интенсивной перезаписи части объёма накопителя будет неравномерное количество циклов у разных блоков. Это опять приблизит кончину накопителя. ИМХО, по логике, если контроллер видит, что у какого-то блока 20 циклов стирания, а у другого 2, он должен решить, что там где 2 цикла, там редко изменяемые блоки и переместить их в блок, где 20 циклов. Ну, то есть в какой-то момент самые редко изменяемые данные оказываются в самой изношенной ячейке, иначе как износ выровнять.

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

ИМХО, по логике, если контроллер видит, что у какого-то блока 20 циклов стирания, а у другого 2, он должен решить, что там где 2 цикла, там редко изменяемые блоки и переместить их в блок, где 20 циклов.

Это не так просто. При следующем включении контроллер увидит, что у одного блока 21 цикл, а у другого 3 и переместит данные обратно)

Aster
()
Ответ на: комментарий от i-rinat

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

Допустим, по спецификации флешка должна держать данные 5 лет. Фоновое сканирование проходит весь диск за месяц. А какая то ячейка теряет данные за пару дней… Вывод: просто битая ячейка, не повезло.

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

ИМХО, по логике, если контроллер видит, что у какого-то блока 20 циклов стирания, а у другого 2, он должен решить, что там где 2 цикла, там редко изменяемые блоки и переместить их в блок, где 20 циклов. Ну, то есть в какой-то момент самые редко изменяемые данные оказываются в самой изношенной ячейке, иначе как износ выровнять.

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

Это решает в том числе проблему, упомянутую вашим собеседником:

Это не так просто. При следующем включении контроллер увидит, что у одного блока 21 цикл, а у другого 3 и переместит данные обратно)

Как говорится - «лучшее враг хорошего». В общем-то единственный важный параметр, напрямую влияющий на повышенную опасность износа отдельных блоков, и который должен определять частоту перемешивания - это заполненность диска.

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

Допустим, по спецификации флешка должна держать данные 5 лет. Фоновое сканирование проходит весь диск за месяц. А какая то ячейка теряет данные за пару дней… Вывод: просто битая ячейка, не повезло.

Производители дружно забили на этот параметр. Если раньше сплошь и рядом в даташитах было что-то типа «Uncycled data retention: 10 years 24/7 @ 70°C», то сейчас пишут «Data retention: JESD47G-compliant; see qualification report», то есть вместо более менее-строгого указания минимального срока службы отделываются неким среднестатическим параметром (и то не слишком жирным)

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

vaddd ★☆
()

В принципе, есть новая прошивка, возможно в ней есть фоновое сканирование

https://smarthdd.com/rus/database/WDC-WDS250G2B0A-00SM50/

X61190WD

Update. Это прошивка от производителя контроллера…

https://community.wd.com/t/2-wd-blue/253255/2

https://forum.ixbt.com/topic.cgi?id=11:49444:0

Случайно наткнулся на этот пост. Есть диск, деградирует скорость.

WDC WDS500G2B0A-00SM50 500,1 GB 401000WD
Давно записанная (год и более) информация читается со скоростью 5-10Мб\с, если удалить и перезаписать информацию, то скорость восстанавливается. Подскажите, эту проблему можно решить программным методом?

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

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

флэш читается. вернее верифицируется контроллером. блоки, у которых BER выше нормы, отмечаются как плохие. и пофиг сколько это времени займет.

вон у жестких дисков большого обьема заводской формат может занимать более недели например - и ничего, никто не упрощает алгоритмы в ущерб максимально достижимой плотности…

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

Дело не в том, что наличие команд на запись с хоста не объясняет всё. Дело в том, что их наличие размывает роль фоновой перезаписи, даже если она есть. К тому же у тебя показания гуляют:

пускай и не так чтобы прям много (на порядки меньше чем SLC кеш).

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

почему случилась просадка до 800 кб/сек?

У меня был опыт только с одним экземпляром Kingspec. Он от случайных записей мог зарезать чтение до двух мегабайт в секунду. То есть если большие файлы пишешь, то всё нормально. Пишешь много мелких — и даже чтение затыкается. В особо запущенных случаях может вообще в себя так надолго уйти, что хост считает, что накопитель умер. И для этого ему даже на полке лежать не потребовалось.

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

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

На данном WD Blue ssd скрипт показал скорость чтения файлов от 3.9 до 7.5 МБ/с.

Запустил badblocks -b 4096 -svn /dev/sda5. К сожалению, без time. За ночь отработал на разделе ~200ГБ (заполнен на ~70%). Ошибок не нашёл. Теперь скрипт чтения показывает скорость чтения 400-500 МБ/с для тех же файлов.

В SMART-е, кроме увеличения объема записи-чтения, ничего принципиально нового.

greenman ★★★★★
() автор топика
Последнее исправление: greenman (всего исправлений: 4)
Ответ на: комментарий от i-rinat

То есть записей было так много, что на этом фоне не заметить, как прибавился целый объём накопителя.

а откуда такие выводы, что прибавился целый обьем?… какбы ссд и так на 3/4 пустая была, гигов 60 или сколько там под оффтопик + кой-какой софт. и далеко не все блоки читались медленно. оценить сколько прилетело апдейтов за полгода (2 гига, или 5), какой был write amplification (пушо апдейт - это не только скачать, это еще извлечь файлы и записать их, или не извлечь а пропатчить имеющиеся, а еще может что-то поправить в реестре) и сколько в итоге дописало в фоне - навряд удастся оценить. не говоря уже о том, что в смарте фигурирует Host LBA writes (который по определению не будет расти от фоновых операций), ну и wear leveling ячеек…

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

он у меня на руках. установка оффтопика происходила гладко и шелковисто, никаких тормозов-отвалов не было. кингсшлак конечно кака, но не настолько как всякие подделки под кингсшлак типа кингспека/кингдиана…

NiTr0 ★★★★★
()