Многочисленные (но не очень недавние) источники предполагают, что ~ 7% пространства SSD следует оставить нераспределенным, чтобы уменьшить износ диска. Это все еще актуально на данный момент или ситуация изменилась?
Многочисленные (но не очень недавние) источники предполагают, что ~ 7% пространства SSD следует оставить нераспределенным, чтобы уменьшить износ диска. Это все еще актуально на данный момент или ситуация изменилась?
Ответы:
Windows обычно использует TRIM. Это означает, что до тех пор, пока у вас есть X% свободного места в файловой системе, диск будет видеть X% как нераспределенный. [*] Избыточное выделение ресурсов не требуется.
Исключение: исторически SSD с контроллерами / прошивками Sandforce не восстанавливали полную производительность после TRIM :(.
Потеря производительности на полном диске может быть значительной, и даже больше, чем на некоторых других дисках. Это будет связано с высоким усилением записи и, следовательно, увеличит износ. Источник: отзывы Anandtech.
Так что это необходимо, если и только если
Включить TRIM в Linux не так уж сложно, и вы вряд ли заметите какие-либо проблемы.
К счастью, некоторые из самых популярных брендов делают свой собственный контроллер. Контроллеры Sandforce не так популярны, как раньше. Проблемы Sandforce заставляют меня скептически относиться к тому конкретному «умному» дизайну контроллера, который был очень агрессивным для своего времени. Извиняюсь перед Sandforce, но у меня нет ссылки на конкретные модели контроллеров.
[*] Файловым системам нравится иметь много свободного места, чтобы уменьшить фрагментацию. Так что TRIM великолепен, потому что вам не нужно добавлять два поля безопасности вместе, одно и то же свободное пространство помогает им обоим :). Привод может использовать незанятое пространство для повышения производительности, а также для предотвращения высокого износа, как вы говорите.
Современные контроллеры SSD достаточно умны, поэтому избыточное выделение обычно не требуется для повседневного использования. Однако все еще существуют ситуации, в первую очередь в средах центров обработки данных, где рекомендуется избыточное выделение ресурсов. Чтобы понять, почему избыточное выделение ресурсов может быть полезным, необходимо понять, как работают твердотельные накопители.
Твердотельные накопители используют тип памяти, называемый флэш-памятью NAND . В отличие от жестких дисков, ячейки NAND, содержащие данные, не могут быть перезаписаны напрямую; диск должен стереть существующие данные, прежде чем он сможет записать новые данные. Кроме того, в то время как твердотельные накопители записывают данные на страницах размером от 4 КБ до 16 КБ, они могут стирать данные только в больших группах страниц, называемых блоками , обычно размером от нескольких сотен КБ до нескольких МБ в современных твердотельных накопителях.
NAND также имеет ограниченную выносливость при записи . Чтобы избежать ненужной перезаписи данных, чтобы стереть блоки, и чтобы ни один блок не получил непропорциональное количество записей , накопитель пытается распределить записи, особенно небольшие случайные записи, по разным блокам. Если записи заменяют старые данные, они помечают старые страницы как недействительные. Как только все страницы в блоке помечены как недействительные, накопитель может стереть его без необходимости перезаписывать действительные данные.
Если на диске мало свободного места или его нет, он не сможет разложить записи. Вместо этого, диск должен будет стереть блоки сразу же, поскольку записи отправляются на диск, перезаписывая любые действительные данные в этих блоках в другие блоки. Это приводит к тому, что в NAND записывается больше данных, чем отправляется на диск, явление, известное как усиление записи . Усиление записи особенно заметно при случайных нагрузках с интенсивной записью, таких как обработка онлайновых транзакций (OLTP) , и его необходимо сводить к минимуму, поскольку это приводит к снижению производительности и долговечности.
Чтобы уменьшить усиление записи, большинство современных систем поддерживают команду TRIM , которая сообщает накопителю, в каких блоках больше нет действительных данных, поэтому их можно удалить. Это необходимо, поскольку в противном случае накопителю потребуется предположить, что данные, логически удаленные операционной системой, все еще действительны, что ограничивает способность накопителя поддерживать достаточное свободное пространство.
Однако TRIM иногда невозможен, например, когда диск находится во внешнем корпусе (большинство корпусов не поддерживают TRIM) или когда диск используется в более старой операционной системе. Кроме того, при очень интенсивных рабочих нагрузках произвольной записи записи будут распределяться по большим областям базовой NAND, что означает, что принудительная перезапись данных и сопутствующее усиление записи могут произойти, даже если накопитель почти не заполнен.
Самые ранние твердотельные накопители имели гораздо менее зрелую прошивку, которая, как правило, переписывала данные гораздо чаще, чем необходимо. Ранние контроллеры Indilinx и JMicron ( JMF602 был печально известен заиканием и ужасной скоростью произвольной записи ) страдали от чрезвычайно высокого усиления записи при интенсивных нагрузках произвольной записи, иногда превышающих 100x. (Представьте, что вы записываете более 100 МБ данных в NAND, когда вы просто пытаетесь записать 1 МБ!). Более новые контроллеры, обладающие большей вычислительной мощностью, улучшенными алгоритмами управления флэш-памятью и поддержкой TRIM, гораздо лучше справляются с этими ситуациями, хотя тяжелые рабочие нагрузки с произвольной записью могут по-прежнему вызывать усиление записи, превышающее 10x в современных твердотельных накопителях .
Избыточное выделение обеспечивает накопителю большую область свободного пространства для обработки случайных записей и предотвращения принудительной перезаписи данных. Все твердотельные накопители сверхобеспечены, по крайней мере, до минимальной степени; некоторые используют только разницу между GB и GiB, чтобы обеспечить около 7% свободного пространства для работы с диском, в то время как другие имеют больше избыточных ресурсов для оптимизации производительности для нужд конкретных приложений. Например, корпоративный твердотельный накопитель для рабочих нагрузок OLTP или базы данных с интенсивной записью может иметь 512 ГБ физической NAND, но заявленную емкость составляет 400 ГБ, а не от 480 до 512 ГБ, типичных для потребительских твердотельных накопителей с аналогичным количеством NAND.
Если ваша рабочая нагрузка особенно требовательна или вы используете диск в среде, где TRIM не поддерживается, вы можете вручную увеличить пространство, разделив диск так, чтобы некоторое пространство не использовалось. Например, вы можете разделить SSD объемом 512 ГБ на 400 ГБ и оставить оставшееся пространство незанятым, и диск будет использовать нераспределенное пространство в качестве свободного места. Заметьте, однако, что это нераспределенное пространство должно быть обрезано, если оно было записано ранее; в противном случае это не принесет пользы, поскольку накопитель увидит, что это место занято. (Утилиты разметки должны быть достаточно умны, чтобы сделать это, но я не уверен на 100%; см. «Обрезает ли Windows неразделенное (неформатированное) пространство на SSD?» )
В типичных потребительских средах, где поддерживается TRIM, твердотельный накопитель заполнен менее чем на 70-80% и не получает постоянных ударов при случайной записи, усиление записи обычно не является проблемой, и избыточное выделение обычно не требуется.
В конечном счете, большинство потребителей не будут записывать почти столько данных на диск, чтобы изнашивать NAND в течение предполагаемого срока службы большинства твердотельных накопителей, даже с высоким усилением записи, поэтому не стоит терять сон.
Размер дополнительного пространства очень сильно отличается между моделями накопителей SSD, но в целом это все еще верно.