Деградація продуктивності ssd і методи боротьби з нею
Твердотільні диски (SSD) порівняно новий і все ще досить дорогий вид накопичувача, тому приймаючи рішення про придбання SSD потрібно врахувати всі особливості даної технології, щоб максимально використовувати переваги нових дисків і, по можливості, мінімізувати вплив недоліків.
Так як SSD представляють принципово інший тип пам'яті, то багато, звичні, методи і правила роботи з накопичувачами виявляються до них не застосовуються. Однією з найбільш серйозних проблем є деградація продуктивності SSD в міру його заповнення даними. Вона виражається в істотному зниженні швидкості запису, знижуючи її до значень середнього жорсткого диска.
Чому так відбувається? Для цього згадаємо, яким чином організовано зберігання даних в сучасних системах. Еволюція жорстких дисків привела до того, що операційна система нічого не знає про фізичну структуру диска, яка ще на рівні BIOS перетвориться в логічну структуру з якої вже взаємодіє драйвер контролера дисків. Фактично вся взаємодія ОС і накопичувача закінчується на рівні файлової системи. Все що знаходиться глибше залишається для ОС якимось чорним ящиком. З одного боку це правильно, тому що забезпечує зворотну сумісність і дає можливість старим ОС ефективно використовувати нові накопичувачі. Але в разі використання принципово іншої технології зберігання даних подібний підхід додав тільки нові проблеми.
Особливість використовуваної в SSD флеш-пам'яті типу NAND полягає в тому, що запис може проводитися тільки в вільні блоки, якщо блок вже містить дані, то відбувається зчитування даних з нього в кеш накопичувача (або ОЗУ) - очищення блоку - заміна старих даних новими - запис. Неважко помітити, що зайнятий блок збільшує кількість операцій при записі з однієї до чотирьох. На практиці висока швидкість запису доступна до тих пір поки на SSD є вільні блоки, у міру заповнення диска даними такі блоки закінчуються і продуктивність на операціях запису починає істотно падати.
Тепер згадаємо, про що ми говорили трохи раніше. ОС не знає які блоки SSD вільні, а які ні, тому всі операції з диском віддаються на відкуп файлової системи у якій свої поняття про методи зберігання інформації. При видаленні файлу сучасні файлові системи не поспішають фізично видаляти файл з диска, вони просто позначають відповідні блоки в таблиці розташування файлів як вільні. Реально видалені дані присутні на диску до тих пір, поки не будуть перезаписані новими. При використанні механічних жорстких дисків такий підхід повністю виправданий, тому що дозволяє уникнути зайвих звернень до механіки диска (час довільного доступу - головне хворе місце HDD), в той же час різниці між записом у вільний і містить дані сектор у механічних дисків немає.
Тут ми підійшли до головної проблеми, при використанні SSD система повинна взаємодіяти з диском на рівні його фізичної структури - блоків, тільки так можна використовувати всі переваги даних дисків. Але це неможливо без кардинальної зміни логіки роботи всіх рівнів системи зберігання даних, що зробить її несумісною з усіма попередніми технологіями. Тому розробники пішли іншим шляхом, введенням спеціальної команди TRIM, яка повідомляє накопичувач, що дані блоки більше не використовуються і він може їх очистити. Це істотно поліпшило ситуацію: ОС, визначивши що має справу з SSD, при видаленні файлу посилає накопичувача команду TRIM, а він в свою чергу очищає зазначені комірки, роблячи знову можливої швидку запис в них. Все що потрібно: це підтримка TRIM з боку SSD і OC.
Що стосується дисків, то тут питання на сьогоднішній день закритий, всі актуальні моделі підтримують TRIM, а для раніше випущених моделей існую нові прошивки. З операційними системами не все так райдужно, TRIM на сьогоднішній день підтримують:
Основний інтерес для нас представляли два параметри: ступінь зносу SSD і рівень продуктивності після тривалої роботи в системі без підтримки TRIM. Так як SSD має кінцеве кількість циклів перезапису, багато хто відчуває цілком обгрунтовані побоювання з приводу придатності SSD для високонавантажених дискових підсистем. Даний показник можна дізнатися з S.M.A.R.T. таблиці накопичувача. Для цього ми скористалися зручною утилітою CrystalDiskInfo:

Як бачимо, з приводу ресурсу можна не турбуватися, відпрацювавши 4 місяці в режимі активного використання диск як і раніше має це значення на рівні 100% і, як показує практика, диск буде замінений як морально застарілий раніше ніж виробить свій ресурс.

Подивимося, що він покаже тепер:

Результат роботи без TRIM в наявності: продуктивність операцій записи знизилася на 15-40%, що має велике значення. Уважний Новомосковсктель помітить, що тестування ми проводили в ОС яка підтримує TRIM, проте продуктивність так і залишилася низькою. Все правильно, ОС не знає які блоки вільні, а які ні, тому наявність TRIM буде діяти тільки для знову видаляються.
Однак на практиці все набагато гірше. Ні швидке, ні повне форматування, ні заповнення диска нулями за допомогою спеціальних утиліт не привели до бажаного результату:

Так, є від чого впасти у відчай, світле майбутнє SSD перестає здаватися таким світлим і змушує задуматися про правильне вкладення коштів. Сьогодні єдиним реально працюючим способом повернути SSD колишню продуктивність є використання фірмових утиліт, однак це пов'язано з повним знищенням даних на диску. Ми скористалися утилітою OCZ Toolbox. а саме функцією Secure Erase.

Після використання даної функції потрібно перезавантажити ПК і заново створити розділ на SSD (поточний буде автоматично вилучено), форматування нового розділу, незважаючи на встановлений прапорець "Швидке форматування", займе досить тривалий час, в результаті SSD буде повністю очищений. Перевіримо продуктивність:

Ну нарешті то! Продуктивність повернулася до вихідних показників.
Що можна сказати з цього приводу? Практичного сенсу в придбанні SSD для систем які не підтримують TRIM немає, краще потратьте ці гроші на створення продуктивного RAID масиву з SATA / SAS дисків. При використанні колишніх в експлуатації SSD обов'язково зробіть очищення диска фірмовою утилітою і не забудьте перевірити рівень ресурсу диска. В іншому залишається побажати вам розсудливості і використовувати SSD тільки в тих випадках, коли це дійсно має сенс.