Чому дефрагментація диска С збільшила мій вільний простір на 10 Гб?


27

Я використовував Defraggler, щоб дефрагментувати вільний простір на моєму накопичувачі 100 Г Г: \, який був 85 Гб. Після дефрагментації накопичувач показав лише 75 Гб. Як чарівно з’явилося 10 Гб вільного місця? Я втратив будь-які дані?

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


1
Можливо, взаємодія з тіньовою копією: див. Наприклад ( piriform.com/docs/defraggler/technical-information/… )
horatio

2
Також Defraggler має можливість спорожнити кошик перед дефрагментацією.
oKtosiTe

Відповіді:


14

Можливо, трапилось те, що операція defrag змусила Windows викинути деякі знімки відновлення системи. Патологічний випадок фрагментації може призвести до того, що накладні метадані становлять 10% вашого дискового простору понад те, що зазвичай використовує Windows. навіть тоді я не впевнений, що це можливо.

Я не бачу нічого в історії або документації версій Defraggler, що вказує на те, що він здатний правильно дефрагментувати файли, щоб запобігти очищенню тіньових копій. Насправді, цей потік з форуму підтримки Defraggler вказує на те, що вони знають, що це відбувається (є потік адміністратора ради з написом "Офіційний помилок виправлення помилок" в потоці), але не вказують, чи збираються виправити це.

Тіньові копії можуть бути втрачені під час дефрагментації тома : Причина цього трапляється в тому, що за замовчуванням VSS працює за замовчуванням 16 кб кластерів, тоді як більшість томів NTFS відформатовані з кластерами 4 Кб. Отже, якщо операція дефрагментації переміщує дані, які не кратні кластеру 16 Кб (або "відстань", яку вона перемістила, не кратна 16 КБ), то VSS відстежує це як зміну і може очистити всі ваші знімки.

MSDN: Дефрагментація файлів :

Коли це можливо, переміщуйте дані в блоки, вирівняні відносно один одного, з кроком 16 кілобайт (КБ). Це зменшує накладні витрати при записі під час ввімкнення, коли ввімкнено тіньові копії, оскільки збільшується простір для тіньової копії та знижується продуктивність, коли виникають такі умови:

  • Розмір блоку запиту на переміщення менший або рівний 16 Кб.
  • Дельта руху не збільшується з кроком 16 Кб.

Вбудована дефрагмента Vista не робить цього :

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


Я не знаю про частину цієї відповіді, але я не переконаний, що дефраг визволив простір. Чи може дефраг спорожнити ваш кошик? У файловій системі, яка не об'єднує невеликі файли в один кластер, я не бачу, як дефрагментація призведе до такого простору. Я міг би уявити, що у вас було 10G простору в таких маленьких блоках, що Windows не рахувала його, але я раніше не чув про таку поведінку.
Slartibartfast

@Slartibartfast: Проблема, якщо програма написана неправильно. Я оновлю свою відповідь ще більше доказів, тепер, коли я не в телефоні. :-)
afrazier

@afrazier - хоча я думаю, що оновлена ​​відповідь ThouArtNotDoc ​​є кращою загальною відповіддю. Я маю згоду з тим, що тіньові копії, мабуть, відіграють певну роль у ситуації з ОП. Я також виявив це: "Якщо ви плануєте дефрагментацію томів, на яких увімкнено тіньові копії, рекомендується використовувати кластер (або одиницю розподілу) розміром 16 Кб або більше. Якщо цього не зробити, кількість змін спричинила процес дефрагментації може призвести до видалення тіньових копій швидше, ніж очікувалося. " - MS: «Проектування тіньового копіювання Стратегія» technet.microsoft.com/en-us/library/cc728305(WS.10).aspx
Ƭᴇcʜιᴇ007

@afrazier: підтверджено. Усі попередні точки відновлення системи вже відсутні. У налаштуваннях у мене встановлено 12% максимального простору для тіньових копій, тому 10 ГБ не є розумним. З іншого боку, я щойно встановив гру на 9 Гб, яка могла просто переписати попередні точки відновлення.
goweon

@firebat: Простір, який використовується для відновлення системи, призначений для відстеження змін до існуючих (моментальних) файлів, а не нових. Встановлення нової гри не вплине на відновлення простору системи, але великий патч міг би.
afrazier

23

Кожен фрагмент треба десь відстежити. Це займає місце для зберігання (в сантехніці Файлової системи, а не до матеріалів, до яких потрібно мати прямий доступ).

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

Але ей, може, я помиляюся ...

Редагувати: Інформація про підтримку тут :

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

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


Редагувати: Враховуючи вищесказане, все ще здається, що втрачається 10 Гб просто для фрагментації файлу - це шалено. Маю на те, що під час дефрагментації у вас виникла якась пошкоджена файлова система, яка виправлялася автоматично. Я думаю, що ви мали не лише масову фрагментацію, але й частково видалені файли, що займають місце для зберігання. Було б добре побачити журнал скандиска з цього дефрагменту (або прогону скандиска до дефрагментації)


3
PS - це, мабуть, була якась жорстка роздробленість.
James T Snell

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

Незнайка, 10G здається багато, але IME, дуже повні диски мають тенденцію розпадатися набагато набагато швидше , ніж менш фрагментовані диски. Якби раніше він був на рівні> 85% (оскільки він мав на увазі 85 Гбіт, але диск на 100 ГБ), і, можливо, тим часом повніше, він міг би мати надзвичайно високу фрагментацію і супутню ефективність.
Бернд Хауг

3
Якщо тільки розмір блоку на цьому обсязі нецензурно високий, я особисто не можу повірити, що 10 Гб простору буде звільнено, просто не відстежуючи фрагменти. Маючи розмір блоку в 4096 к. І припускаючи, що кожен фрагмент вимагає повного блоку просто для відстеження (що неправдиво), то знадобиться 2,5 мільйона фрагментів, які раніше відслідковувалися, але не більше, щоб звільнити стільки місця.
CarlF

1
@Doc - покажчик не займе цілого блоку. Якщо (як це ймовірно) кожен блок розподілу є декількома секторами, вам потрібно менше вказівників, оскільки є менше блоків для відстеження ваших даних - тому максимально можливий накладний відстеження всіх фрагментів буде набагато менше 3%. Я не знаю точних відомостей про NTFS, але із (відносно неефективною) системою подачі файлів FAT ви все одно не змогли отримати 10% накладних витрат на Таблицю розподілу файлів (ті фрагменти відстеження фрагментів), за якою названо FAT.
Steve314
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.