Чому твердотільні диски уповільнюють, як ви їх заповнюєте
Тести зрозумілі: твердотільні накопичувачі сповільнюються, коли ви їх заповнюєте. Наповніть твердотільний накопичувач до майже ємності, а продуктивність запису значно зменшиться. Причина полягає в тому, як працюють SSD-накопичувачі та NAND Flash-накопичувачі.
Заповнення накопичувача є одним з речей, які ніколи не слід робити з твердотільним накопичувачем. Майже повний твердотільний привід матиме набагато повільніші операції запису, уповільнюючи роботу комп'ютера.
Порожні блоки та частково заповнені блоки
Коли ви пишете файл на твердотільний диск, він шукає порожні блоки і заповнює їх. Запис у порожній блок - це найшвидша операція запису. Тому нові операційні системи (Windows 7 і новіші версії) підтримують функцію TRIM, яка автоматично видаляє дані файлу з твердотільного накопичувача, як тільки ви видалите файл у вашій операційній системі. Це відрізняється від магнітних жорстких дисків, де біти видалених файлів сидять на жорсткому диску.
Вони не сидять на твердотільному диску - TRIM гарантує, що блок буде спорожнений, щоб SSD міг швидко записати нові дані в порожній блок у майбутньому. Написання над уже написаним сектором відбувається так само швидко, як і запис у порожній сектор на механічному жорсткому диску, але твердотільний накопичувач повинен стерти блок перед записом до нього.
Флеш-пам'ять NAND записує дані в 4 Кб сторінок всередині блоків розміром 256 Кб. Щоб додати додаткові сторінки до частково заповненого блоку, твердотільний накопичувач повинен стерти весь блок перед записом даних до нього.
Оскільки ваш твердотільний накопичувач заповнюється, доступні менше і менше порожніх блоків. На їх місці знаходяться частково заповнені блоки. Твердотільний накопичувач не може просто записати нові дані в ці частково заповнені блоки - що видалить існуючі дані. Замість простої операції запису твердотільний накопичувач повинен зчитувати значення блоку в кеш, змінювати значення новими даними, а потім записувати його назад. Майте на увазі, що написання файлу, ймовірно, буде включати в себе написання багатьох блоків, так що це може ввести значну кількість додаткової затримки.
TRIM не консолідує частково заповнені блоки
Якщо ви заповнюєте диск до ємності або поблизу ємності, ймовірно, що після видалення файлів ви отримаєте багато частково заповнених блоків. Команда TRIM просто направляє твердотільний диск для видалення даних файлу, коли файл буде видалено. Це не змушує диск робити будь-яку операцію очищення.
Іншими словами, перед видаленням файлів заповніть твердотільний накопичувач на ємність, і ви, швидше за все, отримаєте багато частково заповнених блоків. Привід не вийде зі свого шляху, щоб закріпити ці частково заповнені блоки в повні блоки, звільнивши порожні блоки. Привід буде все ще наповнений частково заповненими блоками, і продуктивність запису буде погіршена.
Переналагодження та збір сміття
Щоб запобігти споживачам заповнювати свої твердотільні накопичувачі та закінчуючи суттєво зниженою продуктивністю, виробники SSD не збираються протистояти цьому.
Споживчі твердотільні накопичувачі часто виділяють близько 7% їх загальної кількості флеш-пам'яті і роблять її недоступною для користувача. Це відоме як "переналагодження" - до накопичувача додано додаткове обладнання для зберігання, але його не видно на комп'ютері як доступне місце для зберігання. Запасна область гарантує, що привід ніколи не зможе стати повністю заповнений - завжди буде достатньо вільної потужності, яка допоможе зберегти продуктивність запису.
Кожен контролер твердотільного накопичувача має алгоритм збору сміття, щоб спробувати усунути цю проблему. Коли диск стане повним, він шукатиме частково заповнені блоки і починає консолідувати їх, звільняючи якомога більше порожніх блоків. Різні твердотільні накопичувачі виконують ці операції в різний час і пороги - це залежить від контролера диска.
Тестові докази
Anandtech виконував безліч тестів з різними дисками, щоб підірвати зв'язок між запасною зоною твердотільного накопичувача і послідовністю його операції запису. При заповненні порожнього диска вони виявили високу продуктивність запису дуже рано в процесі та значне падіння, оскільки операції запису продовжували наповнювати диск.
Встановивши в сторону більше вільної області на дисках, продуктивність залишалася незмінною.
Вони виявили, що «мінімальна продуктивність значно покращується після того, як ви впали на 25% вільної площі для цих [споживчих] дисків. між узгодженістю та продуктивністю. ”
Якщо у вас є твердотільний накопичувач, слід намагатися уникати використання більш ніж 75% його ємності. Придбайте більший накопичувач з більшою кількістю пам'яті, ніж вам потрібно, і ви завжди будете мати належну продуктивність запису. На щастя, SSD-процесори поступово стають набагато дешевшими, тому це не так дорого, як це було раніше.
Кредит на зображення: сортування музики на Wikimedia Commons, Simon Wüllhorst на Flickr