Нет сил молчать, мы находимся у порога новых открытий, про нас будут слагать легенды, в храмах, возведённых в нашу честь, будут проводить сеансы восстановления накопителей, и жизнь станет лучше.
Когда-то на работе мы начали менять всем пользователям HDD на SSD. По два-три в месяц, но со временем все компьютеры от-ssd-шились: все стали жить хорошо, не нужно было начинать утро с коллективного чаепития в ожидании, пока компьютер загрузится. Но по прошествии нескольких лет тормоза вернулись, хотя по активности не было нагрузки ни на CPU, ни на диск. Замена комплектующих на более современные ситуацию не исправляла.
Однажды коллега запустил Викторию (hdd.by/victoria) и обнаружил, что на рандомном накопителе сильно упала производительность: график чтения диска был с большими падениями на одних и тех же местах. Следом была попытка сделать полный wipe посредством отправления команды TRIM на все сектора, после чего скорость вернулась к максимально возможной! И так повторилось несколько раз. Для себя мы объяснили этот феномен так: если верить википедии и общепризнанной информации, SSD после записи на ячейку хранит её заряд, и при считывании определяется логическое значение в зависимости от того, в какой диапазон попадает этот заряд. Но со временем заряд начинает "гулять", из-за чего требуется больше времени, чтобы однозначно считать данные. При удалении файла операционная система посылает TRIM на те сектора, которые были заняты информацией, и накопитель сбрасывает их на особое значение, которое не "0" и не "1", а условно "пустой сектор".
Но те сектора, которые были записаны много лет назад, скажем, при установке системы, не обнулялись с момента записи, и с каждым годом они становились всё более и более медленными. В качестве эксперимента мы на нескольких компьютерах замерили графики скорости до и после TRIM-а, и субъективно оценили отзывчивость системы. Пока что каждый раз, без исключения, наш метод помогал, а именно: снять образ диска, провести TRIM всего диска, залить образ обратно.
Я не был готов к написанию поста, поэтому не подготовил красивые скриншоты. Но есть фото.
Саташные SSD "тримаются" через Paragon. NVMe-шные же не имеют такой возможности (отсутствует пункт TRIM в методах wipe), поэтому для них используем secure erase из комплекта программ от производителя (к примеру, для Samsung это утилита Magician). CrystalDiskInfo не добавляет в счётчик износа операции TRIM-а.
Это всё лично меня продолжает удивлять: весь мир глобально перешёл на SSD, производители сменили множество контроллеров и (вероятно) избавились от проблем первого дня. Почему же не придумано ни автоматизированных, ни программных методов перезаписи секторов? Может, во всём развитом мире принято выбрасывать старые компьютеры каждые три года, и тормоза там просто не успевают проявиться? Или я что-то не понимаю, и нахожу решение несуществующей проблемы? Так или иначе, корреляция сохраняется: если диск был поделён на два раздела, то падения на графиках будут аккурат совпадать с местами начала этих разделов, и будут отсутствовать в свободной от данных области. И все тормоза точно пропадут после TRIM-а всей области. Не важно, используем ли мы китайские ноунеймы (Apacer), "неймы" (WD Blue), или дорогие понтовые накопители с хорошей репутацией (Samsung 970/980) — все подвержены описанному эффекту. Гуглинг и обращения к дипсику по данной теме не дают никаких результатов, коллеги из сообщества крутят у виска и в шутку рекомендуют проводить дефрагментацию (извилин).
Можете проверить у себя. До и после.
Интересно мнение настоящих пикабушных экспертов. Аргументированное и конструктивное мнение — особенно.