LINUX.ORG.RU

Как происходит запись на ssd?

 


0

4

Мы создали раздел, выделили под него ячейки. И вот записываем в него данные, контроллер выбирает свободные ячейки, делает trim по необходимости и записываем байтики.Сам вопрос: ячейки перезаписываются в рамках раздела или есть какая-то оптимизация, которая позволяет использовать свободные ячейки всего девайса (я думаю нет).

★★

Как и с Nand FLASH. всё одинаково. Можешь удалить журнал у файловой системы и дополнить параметр монтирования noatime,nodiratime. Ещё elevator noop можно поставить. trim это лишняя шляпа. Потому что один фиг идёт генерация частот и она проходит через всю микросхему. Если RAM диск SO-DIMM. То Trim там реально поможет.

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

trim это лишняя шляпа.

Я правильно понимаю, что если не делать trim программно, то SSD будет его делать внутри себя по мере необходимости, т.е. будет тупо замедление скорости записи и больше никаких побочек?

dimgel ★★★★★
()

Flash translation layer. Это такая штука, которая устанавливает соответствие между номером сектора (LBA) и конкретными адресами во флеш-чипах. Если ты раз за разом перезаписываешь один и тот же 4 КБ блок, контроллер SSD записывает их в новые страницы и обновляет таблицу соответствий, чтобы при попытке чтения вернуть нужные данные. И где-то там на фоне контроллер собирает старые страницы, чтобы их стереть и вернуть в пул новых. TRIM помогает контроллеру узнать, что данные в страницах больше не нужны, и их можно поставить в очередь стирания, чтобы потом снова вернуть в пул.

i-rinat ★★★★★
()

ячейки перезаписываются в рамках раздела

Нет. Контроллеру пофиг на разделы.

Часто советуют оставить на ssd неразмеченную область — контроллер будет её использовать.

https://habr.com/ru/company/ocz/blog/393131/

Если же вы хотите сделать это самостоятельно, просто скройте от операционной системы часть накопителя — оставьте на нем неразмеченное пространство.

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

Часто советуют оставить на ssd неразмеченную область — контроллер будет её использовать.

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

Триминг тоже уже́. Контролер сам, во время простоев.

Диск A400 SATA, многими тут авторитетно называемый нищебродским дерьмом. Значит, можно предположить, что нормальные диски еще поумнее.

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

Ещё elevator noop можно поставить.

Читал, много думал, пробовал. none тоже пробовал. Удивлялся внезапным клинам. Понял, что да, что и как делать со своими ячейками, контролер знает лучше всех. Операционной системе нужно своё, хорошее для неё управление очередями и т.п.. С mq-deadline (других в Ubuntu сейчас нет) хорошо.

Dementy ★★★
()

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

А я думал, да. Но всё же сомневался. Ну, опасался, что swap моему диску дырку протрёт. Даже тут спрашивал. Тут успокоили и подтвердили: раздел не обязан и не будет физически существовать на одних и тех же ячейках.

Dementy ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.