Чи треба дефрагментувати SSD диск, чи збільшиться продуктивність - відповідь "

Вітаю!

З часів, коли безальтернативно панували класичні жорсткі диски (позначаються - HDD), вважалося хорошим тоном здійснювати процедуру дефрагментації час від часу. Були розроблені відповідні програмні рішення.


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

Але по закінченні часу все більшою популярністю в якості основного носія для комп'ютера виступають SSD диски. Благо їх обсяг росте, а цінуючи хоч і повільно, але впевнено знижується. І тут виникає питання, чи необхідно здійснювати їх дефрагментацію, щоб поліпшити і без того високу швидкість читання\записи, якими володіють твердотільні накопичувачі.

Давайте розбиратися.

Не робіть дефрагментації вручну

Не слід виконувати дефрагментацію на твердотільних дисках, особливо за допомогою сторонніх програм дефрагментації. Диски SSD мають обмежену кількість циклів запису, а дефрагментація виконує численні перезаписи при переміщенні шматочків файлів. Одночасно з цим, не відключайте оптимізацію дисків у Windows 10 - вона не дефрагментує SSD так, як робить це з жорстким диском, а дійсно оптимізує його роботу.

Після дефрагментації SSD за допомогою будь-якого ПЗ, до якого ви могли звикнути раніше, ви не помітите жодних змін у швидкості роботи. Але при цьому певною мірою витратите ресурс диска. На механічному жорсткому диску дефрагментація корисна, оскільки зменшує кількість необхідних для зчитування інформації пересувань головки: на дуже фрагментованому HDD через значний час, необхідний на механічний пошук фрагментів інформації, комп'ютер може «гальмувати» при операціях звернення до жорсткого диска.

На твердотільних дисках механіка не використовується. Пристрій просто зчитує дані, в яких би комірках пам'яті на SSD вони не знаходилися. Насправді SSD навіть спроектовані таким чином, щоб максимально розподілити дані по всій пам'яті, а не накопичувати їх в одній області, що призводить до більш швидкого зносу SSD.


Запитання і відповіді

Я здогадуюся, що у вас є ряд питань, тому постараюся передбачити ключові.

Значить, Вадим, ви були неправі, називаючи дефраг SSD багом Windows?

І так, і ні. З точки зору розробників, моя помилка в тому, що я назвав дефраг SSD багом. Але зауважте, що одночасно вони визнають якесь обмеження в роботі тіньових копій, яке і змусило їх реалізувати дефраг SSD.

В іншому я не бачу помилок у своєму аналізі дефрага. Заднім-то розумом всі міцні, але ситуацію треба розглядати в контексті. У загальному випадку багом вважається аномальна поведінка програмного продукту, яка:

  1. Не має під собою явних технічних підстав
  2. Не відображено в офіційних джерелах
  3. Докорінно відрізняється від поведінки попередньої версії

Виявивши сукупність цих факторів, інженер QA, який не володіє детальною документацією по створенню компонента, обов'язково занесе.

набаг-трекер. Зауважу, що в професійному середовищі нерідко використовуються термінипроблема (issue) ідефект (defect), а небаг.

Далі розробники, зазвичай, діють так:

  • визнають наявність дефекту і починають виправляти його
  • не визнають проблему, тому що поведінка відповідає їх специфікаціям, і пояснюють причини такої реалізації (випадок з дефрагом SSD)
  • визнають наявність недоробки, але не вважають її дефектом, тому що керувалися специфікаціями (в цьому випадку пропонується перекваліфікувати на побажання щодо поліпшення)

Зауважте, що QA не соромиться вважати ненормальну поведінку дефектом аж до того моменту, поки не отримає вердикт розробників.


В даному випадку всі три фактори аномальної поведінки ОС були очевидні, тому я заніс в MS Connect і розповів про нього вам.

Уявіть, що ви першим у світі поставили Windows 8 і виявили в ній відсутність кнопки «Пуск» Ви стали ставити питання на офіційних форумах, демонструвати різні докази, а вам відповідають, що в Windows є кнопка «Пуск», і завжди була, супроводжуючи це посиланнями на документацію до... Windows 7.

Звичайно, я утрирую, але випадок з дефрагом SSD з тієї ж опери, хоча він не настільки очевидний і набагато більш складний технічно.

Ми бачили дефраг SSD і наводили докази, але нас або ігнорували, або ставили на місце, тикаючи носом в стару документацію і заперечуючи дефраг на основі своїх переконань, а не фактів.

Зауважте, що з появою офіційних пояснень мені практично нічого не потрібно правити у своїй статті. Так, я замінив слово порожній на дефраг, але технічна частина не потребує коригування. Я описав дефраг SSD, і він насправді відбувається.


До речі, деякі скептики ставили під сумнів висновки про факт дефрага через недостатню доказову базу, тобто їм було мало візуальних спостережень, звітів утиліт і журналів подій. Це нормальна позиція, і я був близький до того, щоб висвітлити це питання, але тепер у цьому вже немає реальної необхідності. Однак пізніше я розповів про методику, тому що це цікаво з технічної точки зору!

Чи схильні до дефрага серверні системи?

У тексті запису Гансельман згадує про серверні ОС тільки стосовно TRIM, але в коментарях раптово ділиться додатковою інформацією.

On server we disabled all but slab consolidation and tier optimization for thinly provisioned volumes and tiered volumes respectively.

У перекладі: на серверних ОС ми відключили все, крім консолідації шарів на томах з тонкою підготовкою та оптимізації рівнів на багаторівневих томах. (Артем у коментарях поправить термінологію, якщо що:)

У яких випадках вимкнення дефрагментації SSD може знизити його продуктивність?

Для початку рівень фрагментації файлів повинен бути дуже високим. Потім, у домашніх ПК самий регулярний сценарій - це створення точки відновлення в перерахованих нижче випадках.


  • Встановлення оновлень Windows. При стандартних налаштуваннях оновлення відбувається в тлі, тобто швидкість створення точки не має значення, хоча багато хто ще віддає перевагу ручному встановленню.
  • Встановлення драйверів. Після закінчення встановлення і первинного налаштування системи драйвери оновлюються не так вже й часто, причому вони теж доставляються по каналу Windows Update.
  • Встановлення деяких програм. Мабуть, це найактуальніший випадок. У установник (наприклад, MSI) можна закласти автоматичне створення точки для відкату, але не у всіх програмах це реалізовано. Можете подивитися у себе, скільки там точок створено через програми (в кінці запису є скрипт PowerShell).
  • Формування частого створення точок. Деякі люди воліють створювати багато точок на день з метою короткострокового резервного копіювання (Windows 8 + цьому, до речі, пручається). Втім, для домашніх користувачів це велика рідкість, але в корпоративному середовищі на серверних ОС зустрічається.

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

Важко сказати, наскільки зниження швидкості може бути помітно (я спробую поекспериментувати на дозвіллі). Але точно не варто скидати з рахунку загальну конфігурацію ПК. Порівняйте бенчмарк свого SSD з показниками будь-якої тестової лабораторії, і ви побачите переваги «топової» конфігурації. Коли в проблему впирається файлова система, багато залежить від швидкодії інших апаратних компонентів.

Так чи потрібно все-таки відключати дефрагментацію SSD?

Історично я раджу вам дотримуватися рекомендацій Microsoft. Якщо компанія вважає, що в якихось умовах дефраг має сенс, залиште все як є - SSD це легко переживе. При вимкненому захисті системи можете взагалі не турбуватися, згідно з розробниками.

Це була моя офіційна рекомендація, а тепер - думка. Я не думаю, що дефраг SSD необхідний

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


Зверніть увагу, що Microsoft не зробила ніяких спроб додати дефраг SSD в Windows 7 заднім числом, хоча ця система набагато сильніше поширена (при цьому ніщо не завадило компанії реалізувати постфактум очищення winsxs).

Заяви розробників не належать до Windows 7, але логічно припустити, що в ній є та ж проблема запису знімків (інакше навіщо було впроваджувати дефраг в нову ОС).

Можливо, в процесі розробки Windows 8 компанія отримала якусь кількість скарг клієнтів на низьку продуктивність тіньового копіювання і придумала ось таке рішення. Але ці клієнти, швидше, були корпоративними, тому що я насилу представляю значний потік нарікань домашніх власників SSD на цю тему.

Я спочатку говорив, що від дефрага ваш SSD не помре. Витривалість флеш-пам'яті досить велика, щоб взагалі не помітити щомісячну дефрагментацію. Мене ця проблема завжди цікавила через технічні аспекти роботи ОС, а не з позиції терміну життя накопичувача. Для сучасного домашнього ПК без різниці, виконує ОС дефраг SSD чи ні.

Не використовуйте Windows XP, Vista, інші старі ОС і не вимикайте TRIM

Якщо на вашому комп'ютері встановлено SSD, слід використовувати сучасну операційну систему. Зокрема, не потрібно використовувати Windows XP або Windows Vista. Обидві ці ОС не підтримують команду TRIM. Таким чином, коли ви вилучаєте файл у старій операційній системі, вона не може надіслати цю команду твердотільному диску і, таким чином, дані залишаються на ньому (подальше залежить від контролера, але в загальному випадку - це не дуже добре).

На додаток до того, що це означає потенційну можливість вважати ваші дані, це призводить також і до більш повільної роботи комп'ютера. Коли ОС потрібно записати дані на диск, вона змушена попередньо стерти інформацію, після чого зробити запис, що знижує швидкість операцій запису. З цієї ж причини не слід відключати TRIM на операційних системах Windows 7 та інших, що підтримують цю команду. А в ідеалі варто використовувати Windows 10. Тут може бути корисним матеріал: Як дізнатися, чи включено TRIM у Windows.

Переконайтеся, що функція TRIM увімкнена

По-перше, немає сенсу перевіряти і намагатися включити TRIM, якщо ваш ssd диск не підтримує цю технологію. Як дізнатися, чи підтримує ваш SSD-диск функцію TRIM? Найпростіший спосіб - отримати цю інформацію через програмку CrystalDiskInfo.

У полі Supported Features можна бачити, чи підтримує SSD TRIM:

COM_SPPAGEBUILDER_NO_ITEMS_FOUND