См. эффект «усиление записи», связанный с очисткой при TRIM.
никак не могу логически понять каким образом trim увеличивает wa, наоборот trim снижает wa т.к. говорит какие блоки ненужны и ssd не будет пытаться их использовать при сборке мусора
кого ты слушаешь!? это же представитель «Некрофилы и Ко» - он об ssd только мечтает. точнее поставить может, но только с целью угробить, т.к. его недоось ни на что кроме роутера не годится
При удалении данных с SSD средствами файловой системы команда TRIM помечает группу блоков SSD (1 блок SSD = 4k), принадлежащих блоку ФС (1 блок ФС = 4...128k = 1...34 блоков SSD) как «готовые к очистке». Сборщик мусора в фоне очищает их, делая возможным дальнейшие операции записи в блоки SSD без предварительной очистки со стороны драйвера ФС. Из-за отсутствия предварительной очистки на этапе записи данных запись на SSD происходит гораздо быстрее, чем если бы TRIM не было.
С другой стороны, операция предварительной очистки - это та же запись информации, когда вместо данных в ячейки записываются нули. Разница лишь в том, какая программа это делает: фирмварь SSD или операционная система через операции с драйвером ФС.
как работает trim понятно, но где рост wa изза неё ? ведь если trim не выдавать, то очистка нулями всё равно будет, но уже при записи новой порции данных
и какой же дебилобабской логикой ты отсюда вывел, что trim сильнее изнашивает ssd? trim износ выравнивает, что в конечном счёте продлевает срок жизни ssd
В своих SSD-контроллерах производители используют различные техники для оптимального распределения операций записи по всему флеш-накопителю.[5][11] Это делается не только для того, чтобы оптимизировать скорость путем минимизации усиления записи, но также для увеличения продолжительности жизни флеш-ячеек (выравнивание износа (англ.)), так как обычные MLC-флеш-ячейки выдерживают 3000-5000 циклов записи.[11] Другой подход заключается в том, чтобы использовать лишнюю память, не задекларированную операционной системе, для предоставления чистых страниц для операций записи как можно дольше перед тем, как начать перезаписывать другие страницы.[3]
Эффективность этих методов по большей части зависит от обмена информацией между ОС и контроллером SSD о том, какие страницы могут считаться занятыми, а какие — свободными. Традиционно большинство ОС не информируют накопители об удаленных секторах/страницах, что не позволяет контроллерам SSD оптимально распределять свободное пространство. Команда TRIM была введена чтобы исправить это, очищая неиспользуемые ячейки до того, как в них будет произведена запись, таким образом уменьшая время доступа.[3]
этот бсд-клоун годами копошится в своей бсде и остаётся ламер-ламером, он тут недавно гонял glxgears с включенным vsync и вопил «пачиму у миня всиво 60 фпс??!!!!1111», лол
При использовании TRIM файловая система (классическая, которая создавалась для HDD и, соответственно, которая борется с фрагментацией, оптимизируя запись новых данных) переиспользует очищенные блоки с большей вероятностью, чем без использования TRIM. Новые данные будут записываться вместо ранее удалённых, а не в следующие свободные области диска.
На SSD с TRIM есть большая вероятность того, что классическая файловая система «протрёт дыру» в какой-то области SSD только лишь из-за интенсивной перезаписи одних и тех же блоков, любезно очищенных сборщиком мусора с помощью «подсказки» TRIM.
сам ты 4.2. Выбрать есть из чего. Рабочие есть. А то, что ТС тупая барышня, не смогшая определиться сам, то ССЗБ. А в макос и виндовс вообще по определению сейчас нельзя ССД использовать.
При использовании TRIM файловая система (классическая, которая создавалась для HDD и, соответственно, которая борется с фрагментацией, оптимизируя запись новых данных) переиспользует очищенные блоки с большей вероятностью, чем без использования TRIM. Новые данные будут записываться вместо ранее удалённых, а не в следующие свободные области диска.
Это всё хоть сколько-то справедливо только для HDD. На SSD вопрос куда будут записаны новые данные решает микроконтролёр диска, и при этом он следит, чтобы все ячейки памяти изнашивались примерно одинаково. Поэтому вывод
На SSD с TRIM есть большая вероятность того, что классическая файловая система «протрёт дыру» в какой-то области SSD
Ты сильно слажал. TRIM нужен для того, чтобы пометить блоки как пригодные к дальнейшему используованию и поместить их в аналог LRU list. Грубо говоря, повторная запись в эти блоки произойдет когда все остальные блоки с меньшим количеством перезаписей будут изношены до примерно того же или худшего состояния.
Без trim после удаления файла SSD будет считать блоки удаленного файла «использованными» и будет с целью «оптимизировать износ» постоянно «тасовать» данные.
То есть ты записал 100500 данных на SSD до состояния «забил до предела» киношками и образами, потом большие файлы удалил, но SSD об этом без trim не узнал. И когда ты записываешь новые данные, SSD, считая что блок занят но давно не использовался, вместо записи туда будет сначала читать данные, потом записывать их в другое место (наиболее изношенный блок), и только потом вписывать реальные данные. То есть без trim скорость записи упадёт в два с лишним раза, чем если бы ты использовал trim, как только суммарный объем записи превысит объем SSD.
На SSD вопрос куда будут записаны новые данные решает микроконтролёр диска, и при этом он следит, чтобы все ячейки памяти изнашивались примерно одинаково.
Что, есть счётчик числа перезаписей у каждого 4k-блока SSD? (просто для битовой карты памяти состояний страниц потребуется огромный объём дополнительной памяти, отдельно от основного объёма - легче реализовать ECC, чем делать подсчёт числа перезаписи каждого блока). Я думаю, контроллер SSD не столь интеллектуален, чтобы учитывать каждый 4k-блок и вести его индивидуальную статистику использования для равномерного износа. Просто для такого потребуется очень много служебной памяти и вычислительных тактов микроконтроллера.
Это всё хоть сколько-то справедливо только для HDD. На SSD вопрос куда будут записаны новые данные решает микроконтролёр диска, и при этом он следит, чтобы все ячейки памяти изнашивались примерно одинаково. Поэтому вывод
ни хрена он не следит. Самый обычный безумный рандом. Бессмысленный и беспощадный.
На SSD с TRIM есть большая вероятность того, что классическая файловая система «протрёт дыру» в какой-то области SSD
это полная чушь.
полностью согласен — никаких дыр не получится. Ну точнее — маловероятно. Как монетка, которая выпала 1024 раза подряд орлом.
Грубо говоря, повторная запись в эти блоки произойдет когда все остальные блоки с меньшим количеством перезаписей будут изношены до примерно того же или худшего состояния.
да хрен там. Нету там никакой поблочной статистики. Тупо пул свободных ячеек, и всё.
И когда ты записываешь новые данные, SSD, считая что блок занят но давно не использовался, вместо записи туда будет сначала читать данные, потом записывать их в другое место (наиболее изношенный блок), и только потом вписывать реальные данные.
да нифига. Просто SSD не умеет стирать страницы, а умеет только острова(в которых много страниц). Потому, если SSD ничего не стирает, то получается так, что на островах есть и нужные и не нужные страницы, потому остров и писать нельзя, и стирать нельзя. Надо нужные страницы сначала эвакуировать, потом стереть, а потом уже и писать. Ну а с TRIM оно это в фоне может сделать, пока ты спишь/дрочишь (:
ZFS может хранить данные в нескольких копиях (можно установить число в соответсвующем свойстве ФС). - этим обеспечивается защита от частичной потери/разрушения данных на одном носителе. В аналогичном случае классические ФС в случае сбоя какого-либо блока SSD обнаружат либо невозможность чтения (с последующими попытками перечитать сбойный кластер-блок ФС), либо при чтении сбойного блока отдадут приложению мусор при несовершенной аппаратной коррекции ошибок (битый файл).
УМВР, уже год. Как сказал мегабакс — для SSD лучше подходит f2fs, я согласен, хотя она пока сыровата. Но пойдёт, если ты бекапы делаешь, и у тебя больше 1 компа.
Для рандомной перезаписи нужна карта отображения lba-адресов на свободные/занятые ячейки (4k-блоки) во внутренней адресации. У микроконтроллера SSD есть такая карта? Сомневаюсь. Я думаю, в SSD всё линейно + резервный объём памяти, недоступный для прямой адресации, но необходимый для подмены отживших 4k-блоков SSD.
Сейчас применяются коды Рида-Соломона, которые замешивают скажем 1000 бит в скажем 1500. Что-бы прочитать 1000 бит нужно прочитать 1000 бит. Но _любых_ из 1500. Т.е. 500 бит(из 1500) могут быть уничтожены, и данные всё равно прочитаются. Так делается в любых HDD, в CDROM, во флешках, и конечно в SSD. Надо сказать, что эти коды не только исправляют ошибки, но и проверяют целостность данных. Т.ч. какие-то дополнительные средства не требуются. Единственная причина — защита от подделки(ЭЦП), но это уже другое.
Для рандомной перезаписи нужна карта отображения lba-адресов на свободные/занятые ячейки (4k-блоки) во внутренней адресации. У микроконтроллера SSD есть такая карта?
есть начиная с флешек. Не сомневайся, я это экспериментально доказал. Вангую, что она лежит в разнице между честными и нечестными гигабайтами. Вот к примеру у меня флешка в 7`816`085`504 байт (по данным fdisk), хотя на ценнике обещали 8`589`934`592 байт (8 честных гигабайт). «Лишняя» память видимо используется для карты LBA адресов а также для резерва(даже на полностью забитую флешку можно быстро записать маленький файл. Что доказывает, что грязные блоки флешка немного чистит, когда они выходят из пула).
На флешках оно не подменяет ничего, а просто так и оставляет битые(исправляя RS-кодом). А на SSD — не знаю. Скорее всего там коды длиннее, и резерв больше...