Pull to refresh
31
0
Михаил Григорьев @Sleuthhound

Системное администрирование, программирование, IoT

Send message

Ну там вскользь сказали и в коментах коннечно шутейки про товарищей. Cейчас это специальная статья на эту тему

При чтении/записи SSD оперируют страницами, а не секторами, размер страницы может быть от 2 до 16 кб (зависит от конкретной модели), соответственно запись 1 байта никак не может занять меньше 2K в лучшем случае.

Ситуация ухудшается если вам нужно не записать а изменить 1 байт — сначала он прочитает страницу с этим байтом, поменяет в прочитанном блоке этот самый байт, а потом пойдёт искать пустую страницу в которую его можно записать, отметив старую как «грязную» (т.е. использованную но не доступную для записи).

Всё усложняется тем что хоть писать и можно на уровне страницы, запись не может быть сделана «поверх» — сначала нужно стереть аж целый блок (состоящий из многих страниц, от 256K до 4M), и только потом писать.

Если пустых страниц нет (диск был записан полностью как минимум один раз, при этом TRIM не использовался — частый случай когда SSD используются в RAID), то всё просто кошмарно — контроллер сначала читает весь блок, где находится тот злосчастный байт, читает его весь (да, до 4M), стирает его и перезаписывает полностью. На самом деле чуть сложнее — он может попытаться начать джонглировать блоками в рамках оптимизации износа и сборки мусора, ища то что реже всего стиралось и перетасовывая найденное в процессе, вовлекая в процесс резервную зону (недоступную для обычного использования).

Разумеется, всё это дорого обходится — производительность падает, и чем дальше тем больше. TRIM помогает сильно улучшить ситуацию, но, как я уже сказал раньше, не все RAID контроллеры его поддерживают (увы), хотя для «домашних» применений (нет RAID и система поддерживает TRIM) всё достаточно неплохо (если диск под завязку не забит).
В качестве небольшого бонуса, фича недоступная из меню:

Если вы запланировали несколько операций но не хотите их выполнять прямо сейчас, всегда можно сохранить список операции в виде текстового скрипта. Для этого запустите ADD и нажмите Shift+Ctrl+Alt+S. Скрипт будет помещён в буфер обмена. После этого его можно сохранить в файл в любом текстовом редакторе.
Для загрузки скрипта скопируйте его в буфер обмена, запустите ADD и нажмите Shift+Ctrl+Alt+L.
Самая мякота была, что на судебном процессе были внутренние самсунговские документы, где была фотка их телефона и фотка айфона и комментарий в стиле «надо сделать как у айфона» там встречался очень и очень часто.

Information

Rating
5,068-th
Location
Челябинск, Челябинская обл., Россия
Date of birth
Registered
Activity

Specialization

System Administration, Database Administrator
Lead
From 280,000 ₽
PostgreSQL
Linux
MySQL
Database
Zabbix