Как посмотреть в тр.им


Как посмотреть в тр.им

Как посмотреть в тр.им

Как посмотреть в тр.им



trimКоллега по работе упомянул, что посоветовал купить SSD своему знакомому, хотевшему ускорить работу ноутбука с Windows XP. Я отметил, что тому понадобится стороннее ПО для TRIM. «А что будет с диском без TRIM?», — спросил коллега. Ограничившись кратким ответом, я пообещал ему подробно осветить этот вопрос в блоге. Тем более, что тут есть возможность показать все очень наглядно.

Чтобы понять, в чем заключается смысл TRIM, нужно разобраться, как работает запись данных на диск.

Сегодня в программе

Примечание о Deallocate

Статья была написана до появления на рынке накопителей с интерфейсом NVMe. В нем команда Deallocate является аналогом команды TRIM для ATA. Все написанное в статье в равной степени применимо к TRIM и Deallocate, но я не стал добавлять вторую команду в каждое предложение, чтобы не перегружать текст.

Как данные записываются и стираются с диска

Операционная система общается с жестким диском с помощью механизма адресации логических блоков (Logical Block Addressing, LBA). Например, когда вы сохраняете файл, ОС отправляет команду записи по адресу определенного логического блока. Когда вы удаляете данные с диска, их LBA помечаются свободными.

При этом данные никуда не пропадают до тех пор, пока они не будут перезаписаны новыми.

Этот же принцип работает и в твердотельных накопителях, с той разницей, что в них контроллер сопоставляет LBA со страницами во флэш-памяти. Однако есть одна проблема…

Как работает SSD без TRIM

Представьте гипотетический SSD, состоящий из одного блока в пять страниц по 8KB. Сначала вы создали два файла: книгу Excel и документ Word размерами соответственно 8KB и 16KB. Потом вы удалили первый файл и решили сохранить на диск картинку в формате JPEG размером 24KB.

При отсутствии TRIM весь процесс выглядит так.

SSD TRIM

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

  1. Вы создали два файла и удалили один из них. Если TRIM не работает, накопитель узнает об удалении книги Excel только в тот момент, когда ОС прикажет ему перезаписать LBA, покрывающий ставший ненужным файл.
  2. Вы сохраняете изображение в формате JPEG размером 24KB. Операционная система знает, что на диске достаточно места (8+16-8+24=40KB), но контроллеру не хватает свободной страницы. Поэтому он считывает все содержимое блока и записывает его в кэш, которым может служить внешний модуль DRAM или собственный ресурс чипа (у ).
  3. Контроллер модифицирует считанные данные, избавлясь от ставшей ненужной книги Excel.
  4. К оставшемуся документу добавляется картинка в формате JPEG.
  5. Контроллер стирает наш блок флэш-памяти, после чего записывает в него изображение и документ.

Вы просто сохранили изображение объемом 24KB, но при этом в рамках цикла «чтение — изменение — запись» контроллер прочел 24KB (этап 2) и записал 40KB (этап 5).

Получается, что в самый ответственный момент чип выполнял фактически двойную работу!

Чтобы активность системы и программ не загоняла контроллер в угол, производители SSD выделяют на диске , скрытую от системы. Но без TRIM она может лишь отсрочить неизбежную фрагментацию памяти, что возвращает нас к описанной выше ситуации. Со временем это выливается в снижение скорости записи.

Как работает SSD с TRIM

Заметьте, основная проблема в том, что контроллер заранее не в курсе, что файл уже не нужен, а точнее, что LBA уже свободен. Смысл команд TRIM и заключается в том, чтобы сообщить об этом контроллеру сразу по факту удаления файла.

Давайте рассмотрим тот же пример, но на сей раз с поправкой на TRIM.

SSD TRIM

Похоже на игру «найди в картинках N отличий»? Следите за руками контроллера, ибо тут он действует иначе:

  1. Вы создали два файла и удалили один из них. Операционная система сразу сообщила контроллеру об удалении книги Excel командой TRIM.
  2. Контроллер прочел данные из блока флэш-памяти в кэш.
  3. Обладая информацией о ненужности книги Excel, контроллер удалил ее.
  4. Контроллер очистил блок и вернул в него документ Word. В блоке доступно 24KB.
  5. Вы сохраняете изображение в формате JPEG размером 24KB. Контроллер просто записывает картинку в свободные страницы блока.

Да, чипу пришлось проделать лишнюю работу по считыванию 24KB в кэш (шаг 2), но это он делал в «свободное» время», равно как и запись нужного вам документа Word в очищенный блок.

Но когда поступил сигнал на сохранение картинки, контроллер записал ровно 24KB (шаг 5), поскольку ему уже не нужно было гонять килобайты между кэшем и NAND.

Однако TRIM не решает одну проблему SSD, у которых одно из основных отличий от HDD заключается в перезаписи файлов.

SSD TRIM
Увеличить рисунок

В описанном выше примере с единственным блоком памяти производительность все равно будет страдать при перезаписи файлов. Но когда есть свободная память, твердотельный накопитель выделяет другую страницу в NAND и помечает особым образом страницу с ненужными данными. Она очищается при стирании блока в рамках сбора мусора.

Сбор мусора и TRIM

На рисунке ниже представлен процесс записи и удаления файлов с точки зрения ОС и твердотельного накопителя на логическом и физическом уровне. Вы любите большие картинки? :)

SSD TRIM
Увеличить рисунок

Из диаграммы видно, что логически ОС и SSD смотрят на ситуацию одинаково — с точки зрения LBA. Но на физическом уровне TRIM играет большую роль. Получив команду об удалении файла, контроллер SSD исключает из рутинных операций страницы NAND, содержащие ненужные данные.

Благодаря TRIM, ненужные данные не считываются и не записываются в другие блоки памяти, поэтому производительность твердотельного накопителя не страдает во время операций записи. С другой стороны, снижается , т.е. продлевается срок службы SSD.

Отправляемые операционной системой команды TRIM не является приказами контроллеру, т.е. чип лишь принимает их к сведению. Данные, ставшие ненужными, удаляются во время сбора мусора, который может выполняться как одновременно с записью, так и во время бездействия.

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

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

Нужна ли SSD дефрагментация

defrag-96Наверное, вы слышали, что она не нужна. Но ведь SSD фрагментируются! Представьте диск объемом 128GiB, на котором занято 100GiB. Оставшееся свободное пространство состоит из блоков, в каждом из которых есть занятые страницы памяти. Это называется фрагментация флэш-памяти.

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

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

Заметьте, это задача контроллера, а операционная система тут вообще ни при чем! На диаграмме выше сопоставьте логический вид ОС и физический вид SSD. Операционная система видит логические блоки LBA, но при этом понятия не имеет, в каких блоках и страницах NAND хранятся данные!

Хотя контроллер оптимально разложил данные во флэш-памяти, с точки зрения ОС файлы могут быть разбросаны по диску. Это называется фрагментация файловой системы, но она не имеет значения для SSD.

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

Обязательная ссылка:

Поддержка TRIM и Deallocate в Windows

TRIM — это команда ATA, которая может передаваться в режимах AHCI и IDE. В дисках NVMe команда Deallocate является эквивалентом TRIM в ATA, поэтому на практике .

В ОС Microsoft TRIM поддерживается начиная с Windows 7. В Windows Vista и XP нужны костыли в виде стороннего ПО (читатель блога Виталий К. © так и не прислал обещанную инструкцию, но поисковики никто не отменял). Deallocate поддерживается в Windows 8 и новее.

Обычно, работу TRIM проверяют . На самом деле она показывает лишь то, что TRIM включен, т.е. ОС посылает команды контроллеру. Но утилита fsutil понятия не имеет, что происходит с ними потом.

Как проверить, работает ли TRIM в Windows

Вопрос, доходят ли команды TRIM до контроллера SSD, вовсе не такой праздный, как может показаться на первый взгляд. С одной стороны, обмен данными между ОС и чипом твердотельного накопителя с помощью драйвера, а с другой – нельзя исключать дефект прошивки контроллера SSD.

Утилита TRIMcheck

Недавно волны Интернета вынесли к берегу маленькую утилиту , с помощью которой проверить работу TRIM очень просто. (Примечание. По сообщениям читателей, утилита не сработает, если диск сжат (флажок в свойствах диска.)

  1. Запустите утилиту с диска, на котором хотите проверить работу TRIM, и нажмите Enter.
  2. Закройте окно, подождите пару минут и повторно запустите утилиту.

На рисунке показано сообщение, подтверждающее работу TRIM.

SSD TRIM
Увеличить рисунок

Вкратце, принцип работы утилиты при этих запусках таков:

  1. Утилита записывает данные на диск и отмечает адреса виртуальных блоков, в которых они размещены. Эти адреса она сохраняет в JSON-файл в своей папке, после чего удаляет данные, что порождает отправку команды TRIM.
  2. Утилита смотрит, находятся ли записанные ранее данные по сохраненным адресам. Их отсутствие означает, что контроллер принял команды TRIM к сведению и удалил данные.

Что будет при следующем запуске? Пока файл JSON лежит рядом с утилитой, она сверяется с ним. Удаление файла возвращает вас к шагу 1, а чтение сообщений утилиты снимает лишние вопросы.

Что делать, если TRIM «не работает»

Надо понимать, что контроллер SSD вовсе не обязательно бросится удалять данные по факту получения команды, особенно если он склонен к сбору мусора при бездействии. У меня в ноутбуке накопитель на SandForce прибрался сразу, а в планшете SanDisk на собственном контроллере отреагировал с солидной задержкой по времени.

SSD TRIM
Увеличить рисунок

Если утилита указывает на неработающий TRIM, перед следующим ее запуском:

  • перезагрузите ПК (это рекомендует и автор программы)
  • (в Windows 8) отправьте набор команд TRIM из оптимизатора дисков
  • оставьте ПК в покое, позволив ему перейти в режим бездействия

Допустим, и на следующий день вы обнаружили, что данные до сих пор не удалены. Либо контроллер до сих пор не выполнил сбор мусора, либо у него проблема с TRIM.

1. Установите драйвер SATA последней версии

В свойствах контроллера вы можете посмотреть, используется стандартный драйвер (msahci.sys) или сторонний, как показано на рисунке ниже.

SSD TRIM
Увеличить рисунок

Обновление стороннего драйвера до последней версии – хорошая идея! Если вы не можете найти ее на сайте поставщика, нажмите . После установки драйвера перезагрузитесь и заново выполните тест TRIMcheck.

2. Переключитесь на стандартный драйвер от Microsoft

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

  1. В диспетчере устройств щелкните правой кнопкой мыши по контроллеру SATA и выберите в меню “Обновить драйвер”.
  2. Выполнить поиск драйверов на этом компьютере
  3. Выбрать драйвер из списка установленных драйверов
  4. Стандартный контроллер SATA/AHCI, как показано ниже.

SSD TRIM
Увеличить рисунок

После перезагрузки будет использоваться драйвер msahci.sys.

3. Обновите прошивку SSD

Если пляски с драйверами не помогают, можно попробовать обновить прошивку накопителя. Вы найдете ее в разделе поддержки (Support) на сайте производителя.

А у вас все нормально с TRIM?

Напишите в комментариях, работает ли TRIM в вашем SSD, указав модель. Быстро ли выполняет уборку контроллер вашего SSD или ждет значительное время?

Следующая запись блога выйдет после майских «каникул».


Источник: http://www.outsidethebox.ms/15016/



Как посмотреть в тр.им фото



Как посмотреть в тр.им

Как посмотреть в тр.им

Как посмотреть в тр.им

Как посмотреть в тр.им

Как посмотреть в тр.им

Как посмотреть в тр.им

Как посмотреть в тр.им

Как посмотреть в тр.им

Как посмотреть в тр.им