Почему очистка дискового пространства ускоряет работу компьютеров?

191

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

Я не понимаю, почему очистка дискового пространства ускоряет работу компьютера. Является ли? Почему это? Это связано с поиском доступного пространства для сохранения вещей? Или с перемещением вещей вокруг, чтобы сделать достаточно длинное непрерывное пространство, чтобы спасти что-то? Сколько свободного места на жестком диске я должен оставить свободным?

Remi.b
источник
37
на самом деле он не ускоряет работу ПК, он лишь снижает вероятность фрагментации файлов, которая замедляет работу жестких дисков. Это один из величайших компьютерных мифов, который все повторяют. Чтобы найти загрузочные узлы на ПК, проследите его с помощью xperf / WPA.
magicandre1981
9
FWIW это speeds up the experience of using a PC.
edthethird
4
@ magicandre1981: есть крошечная жемчужина правды. Чем больше вещей в каждой папке, тем медленнее обход файла, который влияет на что-либо, используя путь к файлу, то есть ... все. Но это крошечный .
Mooing Duck
4
@MooingDuck Хотя значение true, это связано с количеством файлов в папке, а не с размером файлов или объемом свободного места на диске. Этот эффект не связан с оставшимся дисковым пространством. Эффект также ограничен по объему самой папкой, он не будет «тормозить» весь компьютер. Некоторые файловые системы, например ext3 / 4, используют хешированные деревья каталогов для быстрого поиска (включая доступ к подпапкам), таким образом, ограничивая область действия эффекта, например, только при выводе содержимого каталога.
Джейсон С,
4
Какие видео вы смотрели именно?
Локо

Ответы:

313

Здесь я написал книгу случайно. Сначала выпей кофе.

Почему очистка дискового пространства ускоряет работу компьютеров?

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

Например, такие вещи, как:

  • Фрагментация файла. Фрагментация файлов - это проблема , но нехватка свободного места, хотя определенно является одним из многих способствующих факторов, не единственная причина этого. Некоторые ключевые моменты здесь:

    • Вероятность фрагментации файла не связана с количеством свободного места на диске. Они связаны с размером самого большого непрерывного блока свободного пространства на диске (например, «отверстий» свободного пространства), размер которого, как оказывается, накладывает верхнюю границу . Они также связаны с тем, как файловая система обрабатывает размещение файлов (подробнее ниже). Обратите внимание: диск, заполненный на 95% всем свободным пространством в одном непрерывном блоке, имеет 0% вероятности фрагментации нового файла ††† (и вероятность фрагментации добавленного файла не зависит от свободного места). Накопитель, заполненный на 5%, но с равномерным распределением данных по нему, имеет очень высокую вероятность фрагментации.

    • Помните, что фрагментация файлов влияет на производительность только при обращении к фрагментированным файлам . Подумайте: у вас есть хороший дефрагментированный диск, в котором все еще есть много «дыр». Общий сценарий. Все идет гладко. В конце концов, однако, вы попадаете в точку, где больше не осталось больших блоков свободного пространства. Вы загружаете огромный фильм, файл оказывается сильно фрагментированным. Это не замедлит ваш компьютер. Все ваши файлы приложений и тому подобное, которые ранее были в порядке, не станут внезапно фрагментированными. Это может сделать фильмзагрузка займет больше времени (хотя типичные битрейты фильма настолько низкие по сравнению со скоростью чтения жесткого диска, что, скорее всего, они будут незаметны), и это может повлиять на производительность ввода-вывода во время загрузки фильма , но кроме этого, ничего не меняется.

    • Хотя фрагментация файлов, безусловно, является проблемой, зачастую эффекты смягчаются буферизацией и кэшированием на уровне ОС и оборудования. Задержка записи, упреждающее чтение, такие стратегии, как предварительная выборка в Windows и т. Д., Помогают уменьшить последствия фрагментации. Вы , как правило , не на самом деле испытывают значительное влияние до тех пор , пока фрагментация становится серьезным (я бы даже рискнул сказать , что до тех пор , как файл подкачки не фрагментирован, вы , вероятно , не заметите).

  • Поисковая индексация является еще одним примером. Допустим, у вас включена автоматическая индексация и ОС, которая не справляется с этим корректно. По мере того, как вы сохраняете все больше индексируемого контента на своем компьютере (документы и т. Д.), Индексация может занимать все больше и больше времени и может начать влиять на воспринимаемую скорость вашего компьютера во время его работы, как при вводе-выводе, так и при использовании ЦП. , Это не связано со свободным пространством, это связано с количеством индексируемого контента, который у вас есть. Однако нехватка свободного места идет рука об руку с хранением большего количества контента, следовательно, создается ложная связь.

  • Антивирусное программное обеспечение. Аналогично примеру индексации поиска. Допустим, у вас установлено антивирусное программное обеспечение для фонового сканирования вашего диска. Поскольку у вас появляется все больше и больше сканируемого контента, поиск требует больше ресурсов ввода-вывода и ресурсов ЦП, возможно, мешая вашей работе. Опять же, это связано с количеством сканируемого контента, который у вас есть. Большее содержание часто означает меньше свободного места, но нехватка свободного места не является причиной.

  • Установленное программное обеспечение. Допустим, у вас установлено много программного обеспечения, которое загружается при загрузке компьютера, что замедляет время запуска. Это замедление происходит из-за загрузки большого количества программного обеспечения. Однако установленное программное обеспечение занимает место на жестком диске. Поэтому свободное место на жестком диске уменьшается в то же время, когда это происходит, и снова может быть легко установлено ложное соединение.

  • Многие другие примеры в том же духе, которые, взятые вместе, похоже, тесно связывают недостаток свободного места с более низкой производительностью.

Вышеприведенные примеры иллюстрируют еще одну причину, по которой так распространен этот миф: хотя недостаток свободного места не является прямой причиной замедления, удаления различных приложений, удаления проиндексированного или отсканированного содержимого и т. Д. Иногда (но не всегда; выход за рамки этого ответ) снова увеличивает производительность по причинам, не связанным с количеством оставшегося свободного места. Но это также естественно освобождает место на жестком диске. Следовательно, опять же, может быть установлена ​​очевидная (но ложная) связь между «большим количеством свободного места» и «более быстрым компьютером».

Подумайте: если у вас машина работает медленно из-за большого количества установленного программного обеспечения и т. Д., И вы точно клонируете свой жесткий диск на больший жесткий диск, а затем расширяете разделы, чтобы получить больше свободного места, машина не будет магически ускоряться вверх. То же программное обеспечение загружается, те же файлы все еще фрагментированы одинаковыми способами, тот же индексатор поиска по-прежнему работает, ничего не меняется, несмотря на наличие большего свободного места.

Это связано с поиском места в памяти, где можно что-то сохранить?

Нет. Здесь стоит отметить две очень важные вещи:

  1. Ваш жесткий диск не ищет вокруг, чтобы найти места, чтобы положить вещи. Твой жесткий диск тупой. Ничего. Это большой блок адресного хранилища, который слепо помещает вещи туда, куда говорит ваша ОС, и читает все, что от них требуется. Современные накопители имеют сложные механизмы кэширования и буферизации, предназначенные для прогнозирования того, что ОС будет запрашивать, основываясь на опыте, который мы получили со временем (некоторые накопители даже знают о файловой системе, которая на них установлена), но, по сути, думают о Ваш диск - просто большой тупой склад с случайными дополнительными функциями производительности.

  2. Ваша операционная система также не ищет места для размещения вещей. Здесь нет «поиска». Много усилий было потрачено на решение этой проблемы, так как она имеет решающее значение для производительности файловой системы. Способ организации данных на вашем диске определяется вашей файловой системой., Например, FAT32 (старые ПК с DOS и Windows), NTFS (позже Windows), HFS + (Mac), ext4 (некоторые Linux) и многие другие. Даже понятие «файл» и «каталог» являются просто продуктами типичных файловых систем - жесткие диски не знают о таинственных животных, называемых «файлами». Подробности выходят за рамки этого ответа. Но, по сути, все распространенные файловые системы имеют способы отслеживания, где находится свободное место на диске, так что поиск свободного места при нормальных обстоятельствах (то есть файловых системах в хорошем состоянии) не требуется. Примеры:

    • NTFS имеет таблицу основных файлов , которая включает в себя специальные файлы $Bitmapи т. Д., И множество метаданных, описывающих диск. По сути, он отслеживает, где находятся следующие свободные блоки, так что новые файлы могут быть записаны непосредственно в свободные блоки без необходимости каждый раз сканировать диск.

    • Другой пример: у ext4 есть так называемый «распределитель растровых изображений» , улучшение по сравнению с ext2 и ext3, которое в основном помогает ему напрямую определять, где находятся свободные блоки, вместо сканирования списка свободных блоков. Ext4 также поддерживает «отложенное выделение», то есть буферизацию данных в оперативной памяти ОС перед записью их на диск, чтобы принимать лучшие решения о том, где их разместить, чтобы уменьшить фрагментацию.

    • Много других примеров.

или с перемещением вещей для создания достаточно длинного непрерывного пространства для сохранения чего-либо?

Нет. Этого не происходит, по крайней мере, с любой файловой системой, о которой я знаю. Файлы просто фрагментированы.

Процесс "перемещения вещей вокруг, чтобы создать достаточно длинное непрерывное пространство для сохранения чего-либо", называется дефрагментацией . Это не происходит, когда файлы пишутся. Это происходит при запуске дефрагментатора диска. По крайней мере, в новых Windows это происходит автоматически по расписанию, но никогда не запускается при записи файла.

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

Сколько свободного места на жестком диске я должен оставить свободным?

Это сложный вопрос, и этот ответ уже превратился в небольшую книгу.

Эмпирические правила:

  • Для всех типов дисков:

    • Самое главное, чтобы у вас было достаточно свободного места для эффективного использования компьютера . Если вам не хватает места для работы, вам понадобится больший диск.
    • Многие инструменты дефрагментации диска требуют минимального количества свободного места (я думаю, что для работы с Windows требуется 15% наихудшего случая) для работы. Они используют это свободное пространство для временного хранения фрагментированных файлов, так как другие элементы переставляются.
    • Оставьте место для других функций ОС. Например, если на вашей машине недостаточно физической памяти, и у вас включена виртуальная память с динамически изменяемым файлом подкачки, вам нужно оставить достаточно места для максимального размера файла подкачки. Или, если у вас есть ноутбук, который вы перевели в режим гибернации, вам потребуется достаточно свободного места для файла состояния гибернации. Такие вещи.
  • SSD-конкретны:

    • Для оптимальной надежности (и, в меньшей степени, производительности) твердотельным накопителям требуется некоторое свободное пространство, которое они, не вдаваясь в подробности, используют для распределения данных по диску, чтобы избежать постоянной записи в одно и то же место (которое изнашивает их). Эта концепция оставления свободного пространства называется избыточным выделением ресурсов . Это важно, но во многих твердотельных накопителях обязательное избыточное пространство уже существует . То есть накопители часто имеют на несколько десятков ГБ больше, чем сообщают в ОС. Диски нижнего уровня часто требуют, чтобы вы вручную оставляли неразмеченное пространство, но для дисков с обязательным OP вам не нужно оставлять свободное место . Здесь важно отметить, чтопереполненное пространство часто берется только из неразделенного пространства . Так что, если ваш раздел занимает весь ваш диск, и вы оставляете на нем немного свободного места, это не всегда считается. Во многих случаях избыточное выделение ресурсов вручную требует уменьшения размера раздела до размера диска. Проверьте руководство пользователя вашего SSD для деталей. TRIM, сборка мусора и тому подобное тоже имеют свои последствия, но они выходят за рамки этого ответа.

Лично я обычно беру больший диск, когда у меня остается около 20-25% свободного места. Это не связано с производительностью, просто когда я подойду к этому моменту, я ожидаю, что скоро у меня не хватит места для данных, и пришло время получить больший диск.

Более важным, чем наблюдение за свободным пространством, является обеспечение того, чтобы запланированная дефрагментация была включена там, где это необходимо (не на твердотельных накопителях), чтобы вы никогда не достигли точки, когда она станет достаточно страшной, чтобы повлиять на вас. Не менее важно избежать ошибочных настроек и позволить вашей ОС делать свое дело, например , не отключать предварительную выборку Windows ( кроме SSD ) и т. Д.


Есть еще одна вещь, которую стоит упомянуть. В одном из других ответов здесь упоминалось, что полудуплексный режим SATA предотвращает чтение и запись одновременно. Хотя это правда, это сильно упрощено и в основном не связано с проблемами производительности, которые здесь обсуждаются. Это просто означает, что данные не могут передаваться в обоих направлениях по проводам одновременно. Тем не менее, SATA имеет довольно сложную спецификацию, включающую крошечные максимальные размеры блоков (я думаю, около 8 КБ на блок на проводе), очереди операций чтения и записи и т. Д., И не исключает записи в буферы, происходящие во время чтения, с чередованием операции и т. д.

Любая возникающая блокировка может быть вызвана конкуренцией за физические ресурсы, обычно смягчаемые большим количеством кэша. Дуплексный режим SATA здесь практически не имеет значения.


«Замедление» - это широкий термин. Здесь я использую его для обозначения вещей, которые либо связаны с вводом / выводом (например, если ваш компьютер сидит там, сокращая числа, содержимое жесткого диска не оказывает влияния), либо с привязкой к процессору и конкурируют с тангенциально связанными вещами, которые имеют высокая загрузка ЦП (например, антивирусное программное обеспечение сканирует тонны файлов).

†† SSD - накопители будут подвержены фрагментации , в том последовательного доступа к скорости , как правило , быстрее , чем случайный доступ, несмотря на твердотельные накопители не сталкивается с теми же ограничениями , как механическое устройство (даже тогда, отсутствие фрагментации не гарантирует последовательного доступа, из - за износа выравнивания и т.д. , как отмечает Джеймс Снелл в комментариях). Однако практически в каждом сценарии общего использования это не проблема. Различия в производительности из-за фрагментации на SSD обычно незначительны для таких вещей, как загрузка приложений, загрузка компьютера и т. Д.

††† Принимая нормальную файловую систему, которая не фрагментирует файлы специально.

Джейсон С
источник
Очень подробный ответ, спасибо. Также спасибо за напоминание, чтобы захватить немного кофе, это очень ценилось.
Хашим
22

В дополнение к объяснению Натаниэля Мика для жестких дисков, существует другой сценарий для жестких дисков.

SSD не чувствительны к разбросанным данным, потому что время доступа к любому месту на SSD одинаково. Типичное время доступа к SSD составляет 0,1 мс против обычного времени доступа к жесткому диску от 10 до 15 мс. Однако он чувствителен к данным, которые уже записаны на SSD

В отличие от традиционных жестких дисков, которые могут перезаписывать существующие данные, для записи данных SSD требуется полностью свободное место. Это делается с помощью функций Trim and Garbage Collection, которые удаляют данные, помеченные как удаленные. Сборка мусора лучше всего работает в сочетании с определенным количеством свободного места на SSD. Обычно рекомендуется от 15 до 25% свободного места.

Если сборщик мусора не может выполнить свою работу вовремя, то каждой операции записи предшествует очистка пространства, куда предполагается записать данные. Это удваивает время каждой операции записи и снижает общую производительность.

Вот отличная статья, которая объясняет функционирование Trim и Garbage Collection

товарный склад
источник
Обратите внимание, что твердотельные накопители МОГУТ записывать в частично заполненные ячейки, считывая частичные данные и записывая обратно с большим количеством записанных, но это имеет тенденцию делать это только тогда, когда это неизбежно. Это, конечно, также довольно медленно, и, как правило, указывает на то, что диск настолько сильно фрагментирован, что потребуется довольно много времени, чтобы заставить его когда-либо снова писать быстро.
пушистый
Это также будет зависеть от контроллера. И поскольку существует так много вариантов, я не хотел вдаваться в детализацию.
20.04.15
15-25%, о которых вы говорите, называются «чрезмерным обеспечением». Некоторым дискам уже выделено для этого обязательное пространство (например, EVO 840 емкостью 1 ТБ зарезервировано на 9% и не указано в ОС как свободное), для тех, кому не нужно оставлять свободное место. Я полагаю, что в некоторых случаях избыточно выделенное пространство также должно быть нераспределенным, и простое оставление свободного места в вашей файловой системе не сокращает его, вам нужно фактически оставить нераспределенное пространство.
Джейсон С.
Чрезмерное обеспечение - это нечто другое. Это NANDS в режиме ожидания, чтобы заменить неисправные NANDS. 15-25% требуется для освобождения блоков (страниц) и выравнивания износа. Вы можете прочитать здесь для подробностей ==> thessdreview.com/daily-news/latest-buzz/...
WHS
@ whs Это не так, и статья, на которую вы ссылаетесь, не подразумевает, что это так. Пространство с избыточным выделением ресурсов (см. Также цитируемые источники в этом разделе или Google) - это пул свободных блоков, блоки в этом пуле используются для сбора мусора / быстрой записи, выравнивания износа и замены дефектных ячеек. Что касается замены дефектных ячеек, они все в одном пуле; как только он заполнен дефектными ячейками, вы начинаете видеть постоянные ошибки. Смотрите также слайд 12 в этой презентации от LSI ; все это стоит пережить, оно затрагивает тему напрямую.
Джейсон С,
12

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

Имея это в виду, есть два эффекта , которые вызывают производительность диска для уменьшения как диск заполняется: Время поиска и скорость вращения .

Seek Times

Чтобы получить доступ к данным, традиционный жесткий диск должен физически переместить головку чтения / записи в правильное положение. Это занимает время, называемое «время поиска». Производители публикуют время поиска для своих дисков, и обычно оно составляет всего несколько миллисекунд. Это может показаться не так много, но для компьютера это вечность. Если для выполнения задачи (что является обычным делом) приходится читать или записывать на множество разных дисковых локаций, то время поиска может привести к заметной задержке или задержке.

Диск, который почти пуст, будет иметь большую часть своих данных в или около того же положения, обычно на внешнем крае около положения покоя головки чтения / записи. Это уменьшает необходимость поиска по диску, значительно сокращая время, затрачиваемое на поиск. Накопитель, который почти заполнен, будет не только нуждаться в поиске по диску чаще и с большими / более длинными движениями поиска, но может иметь проблемы с хранением связанных данных в том же секторе, что еще больше увеличивает число обращений к диску. Это называется фрагментированными данными.

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

Скорость вращения

Жесткие диски вращаются с фиксированной скоростью (обычно 5400 об / мин или 7200 об / мин для вашего компьютера и 10000 об / мин или даже 15000 об / мин на сервере). Также требуется фиксированное количество места на диске (более или менее) для хранения одного бита. Для диска, вращающегося с фиксированной скоростью вращения, внешняя сторона диска будет иметь более высокую линейную скорость, чем внутренняя часть диска. Это означает, что биты у внешнего края диска проходят мимо считывающей головки с большей скоростью, чем биты у центра диска, и, таким образом, считывающая / записывающая головка может читать или записывать биты быстрее у внешнего края диска, чем внутренний.

Привод, который почти пуст, будет тратить большую часть своего времени на доступ к битам возле более быстрого внешнего края диска. Привод, который почти заполнен, будет тратить больше времени на доступ к битам возле более медленной внутренней части диска.

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

Иногда диск на самом деле движется слишком быстро для считывающей головки, и этот эффект уменьшается, потому что сектора вблизи внешнего края будут смещены ... записаны не по порядку, чтобы считывающая головка могла идти в ногу. Но в целом это верно.

Оба эти эффекта сводятся к тому, что контроллер диска сначала группирует данные в более быстрой части диска, а не использует более медленные части диска, пока это не потребуется. По мере заполнения диска все больше и больше времени уходит на более медленную часть диска.

Эффекты также применяются к новым дискам. При прочих равных условиях новый диск емкостью 1 ТБ быстрее, чем новый диск емкостью 200 ГБ, поскольку 1 ТБ хранит биты ближе друг к другу и не заполняет внутренние дорожки так быстро. Однако попытка использовать это для информирования о решениях о покупке редко бывает полезной, поскольку производители могут использовать несколько пластин для достижения размера 1 ТБ, более мелкие пластины для ограничения системы объемом 1 ТБ до 200 ГБ, ограничения программного / дискового контроллера для ограничения диска размером 1 ТБ только до 200 ГБ. освободите место или продайте диск с частично укомплектованными / дефектными дисками с диска емкостью 1 ТБ с большим количеством поврежденных секторов в виде диска объемом 200 ГБ.

Другие факторы

Здесь стоит отметить, что вышеуказанные эффекты довольно малы. Инженеры компьютерного оборудования проводят много времени, работая над тем, как минимизировать эти проблемы, а такие вещи, как буферы жесткого диска, кэширование Superfetch и другие системы, работают, чтобы минимизировать проблему. На здоровой системе с большим количеством свободного места вы вряд ли заметите это. Кроме того, твердотельные накопители имеют совершенно разные характеристики производительности. Тем не менее, эффекты существуют, и компьютер законно замедляется при заполнении диска. В нездоровой системе, где дисковое пространство очень мало, эти эффекты могут создать ситуацию с переполнением диска, когда диск постоянно ищет и разбирает фрагментированные данные, и освобождение дискового пространства может это исправить, что приводит к более существенным и заметным улучшениям ,

Кроме того, добавление данных на диск означает, что некоторые другие операции, такие как индексирование или AV-сканирование и процессы дефрагментации, просто выполняют больше работы в фоновом режиме, даже если они делают это с той же скоростью или почти так же, как и раньше.

Наконец, производительность диска - это огромный показатель общей производительности ПК в наши дни ... даже больший показатель, чем скорость процессора. Даже небольшое падение пропускной способности диска очень часто приравнивается к реальному общему снижению производительности ПК. Это особенно верно, так как производительность жесткого диска не поспевает за улучшениями процессора и памяти; диск на 7200 об / мин уже более десяти лет является настольным стандартом. Этот традиционный вращающийся диск, как никогда ранее, является узким местом в вашем компьютере.

Джоэл Коухорн
источник
1
Увеличение времени поиска - это не результат нехватки свободного места, а результат организации данных. Освобождение дискового пространства не уменьшит время поиска, если ваши данные уже находятся на диске. Точно так же, нехватка дискового пространства не увеличит время поиска несвязанных данных, которые уже были хорошо организованы. Что еще более важно, будьте очень осторожны, связывая любой из них с "медленным компьютером". Например, вы не собираетесь просматривать веб-страницы быстрее только потому, что исполняемый файл вашего браузера не фрагментирован и находится вне механического диска, а ваши MP3-файлы будут воспроизводиться без проблем даже в худшем случае.
Джейсон С
2
@JasonC Каждый из этих пунктов является верным в отдельности, но взятый как часть всей системы может привести к реальным замедлениям. Пример может служить этим утверждением: « Freeing disk space won't decrease seek times if your data is already all over the drive.» Я не могу спорить , что сам по себе, но я могу указать, служба дефрагментации теперь может переместить эти данные в стороне передней части привода, и теперь эти вещи будут улучшать время поиска. Другие пункты в вашем комментарии имеют аналогичные счетчики: нехватка дискового пространства не увеличит поиск хорошо организованных данных, но снижает вероятность того, что данные останутся организованными.
Джоэл Коухорн
1
@JasonC Тем не менее, я добавил пару строк в свой ответ на основе вашего комментария, чтобы более непосредственно ответить на вопрос заголовка.
Джоэл Коухорн
Конечно; но мои основные моменты: 1) что замедление является следствием чего - то другого , хотя недостаток свободного места может быть одним из многих факторов, и 2) вы должны быть очень осторожны с этой темой, это один из тех, на кого люди цепляются очень быстро. Если случайный пользователь замечает, что его компьютер работает медленно, на самом деле весьма необычно, например, фрагментация (например), чтобы быть действительной причиной. Но потом они читают кучу вещей в интернете, устанавливают ccleaner, 50 дефрагментаторов диска, делают кучу плохих настроек реестра и т. Д. Нужно угодить массам здесь; мудрее не нужны наши ответы.
Джейсон С
Этот ответ намекает на короткое движение (искусственное ограничение размера HD для сохранения данных в более быстрых внешних областях) и некоторые потенциальные проблемы с ним. Мне также нравится это, поскольку это не отрицает, что в большинстве случаев, для большинства пользователей диск становится более фрагментированным, поскольку он становится более полным. Хотя стоит отметить, что свободное место не является актуальной проблемой, бессмысленно глупо игнорировать общий пользовательский опыт при работе с общим вопросом пользовательского опыта.
Смитерс
6

Все остальные ответы технически правильны - однако я всегда обнаруживал, что этот простой пример объясняет это лучше всего.

Сортировать вещи очень просто, если у вас много места ... но трудно, если у вас нет места ... компьютерам тоже нужно место !

Эта классическая « 15 головоломка » хитрая / отнимает много времени, потому что у вас есть только 1 свободный квадрат, чтобы перетасовать плитки вокруг, чтобы получить их в правильном порядке 1-15.

сложная головоломка

Однако, если пространство было намного больше, вы можете решить эту головоломку менее чем за 10 секунд.

легкая головоломка 15

Для любого, кто когда-либо играл с этой загадкой ... понимание аналогии кажется естественным. ;-)

scunliffe
источник
2
Это не аналогично поведению файловой системы. Я думаю, что он чем-то напоминает общий процесс дефрагментации, хотя дефрагментация относительно этой аналогии головоломки позволяет вам удалять числа с игрового поля и размещать их в любом месте по мере необходимости.
Джейсон С,
2
В дополнение к приведенному выше комментарию Джейсона я хочу указать на очевидное: этот ответ относится к сортировке (дефрагментации), но не объясняет, почему доступ к определенной случайной плитке (скажем, плитке «3») будет быстрее во второй случай, чем в первом случае.
CVn
Потому что вы не получаете доступ только к «3». Вы получаете доступ к "1-15". Хотя я признаю, что это не совсем ясно в примере, я понял это так, как понял. Стоит особо отметить что-то вроде «эта головоломка аналогична одному фрагментированному файлу». Отличный ответ, делает вещи достаточно умственно доступными!
Смитерс
1
Для пояснения: основная проблема с аналогией здесь заключается в том, что в реальной головоломке вы можете перемещать плитки только в соседние пустые пространства. То есть в крошечном примере только 6 или 13 могут быть перемещены в пустое пространство. Вот что делает загадку сложной; это суть игры на плитке. Однако при дефрагментации жесткого диска вы можете переместить, например, 4 в пустое пространство, 1 - в правильное местоположение и т. Д., Что довольно легко решить, ровно столько же ходов, сколько и в случае большого пространства . Таким образом, аналогия действительно нарушается, поскольку суть головоломки не применима: ни одна файловая система не работает таким образом.
Джейсон С
«Потому что вы не получаете доступ только к« 3 ». Вы получаете доступ к "1-15" '- это чепуха. Ответ не объясняет, почему во втором случае доступ к определенной случайной плитке будет быстрее, чем в первом, потому что ответ совершенно неправильный. Мало того, что дефрагментация не ограничена тем, как устроена головоломка, но и "хитрая / трудоемкая" дефрагментация не влияет на производительность системы.
Джим Балтер
5

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

Когда компьютер находится в этом состоянии, освобождение дискового пространства фактически не решит проблему. Вам также необходимо дефрагментировать диск. До того, как компьютер окажется в этом состоянии, освобождение места не ускорит его; это просто уменьшит шансы фрагментации стать проблемой.

Это относится только к компьютерам с вращающимися механическими жесткими дисками, поскольку фрагментация оказывает незначительное влияние на скорость чтения SSD.

RomanSt
источник
Хороший, чистый, простой ответ, который также решает основную проблему.
Смитерс
4

Флэш-диски могут определенно становиться медленнее, когда они заполнены или фрагментированы, хотя механизмы замедления не похожи на те, которые возникают на физическом жестком диске. Типичная микросхема флэш-памяти будет разделена на некоторое количество блоков стирания, каждый из которых состоит из большого числа (сотни, если не тысячи) страниц записи и будет поддерживать три основных операции:

  1. Прочитайте флэш-страницу.
  2. Написать на ранее пустую страницу флэш.
  3. Сотрите все флэш-страницы в блоке.

Хотя теоретически было бы возможно, чтобы каждая запись на флэш-накопитель считывала все страницы из блока, заменяла одну в буфере, стирала блок и затем записывала буфер обратно на флэш-устройство, такой подход был бы чрезвычайно медленный; Это также может привести к потере данных, если пропадет питание между моментом начала стирания и завершением обратной записи. Кроме того, часто записанные части диска будут очень быстро изнашиваться. Например, если бы первые 128 секторов FAT были сохранены в одном флэш-блоке, то диск был бы мертвым после того, как общее число записей во все эти сектора достигло приблизительно 100 000, что не очень много, особенно с учетом того, что 128 секторов будет содержать около 16384 записей FAT.

Поскольку описанный выше подход будет работать ужасно, накопитель заставит его идентифицировать какую-то пустую страницу, записать туда данные и каким-то образом записать тот факт, что рассматриваемый логический сектор хранится в этом месте. Пока доступно достаточно пустых страниц, эта операция может выполняться быстро. Однако в случае дефицита пустых страниц накопителю может потребоваться найти блоки, которые содержат относительно немного «живых» страниц, переместить любые живые страницы в этих блоках на некоторые из оставшихся пустых страниц и пометить старые копии как « мертвый"; После этого накопитель сможет стереть блоки, содержащие только «мертвые» страницы.

Если накопитель заполнен только наполовину, то, безусловно, будет хотя бы один блок, который заполнен не более чем наполовину живыми страницами (и вполне вероятно, что будут блоки, которые содержат мало или вообще не содержат). Если в каждом блоке содержится 256 страниц, а в наименьших полных блоках - 64 живых страницы (в умеренно плохом случае), то для каждых 192 запрошенных записей секторов накопителю потребуется выполнить 64 копии дополнительных секторов и одно удаление блока (так что средняя стоимость каждого сектора записи будет около 1,34 записи страницы и 0,005 блоков стирания). Даже в худшем случае для каждых 128 записей секторов потребуется 128 дополнительных копий секторов и стирание блока (средняя стоимость записи 2 страниц записи и 0,01 стирания блока)

Если накопитель заполнен на 99%, а в наименьших полных блоках имеется 248/256 живых страниц, то для каждых 8 секторных записей потребуется 248 дополнительных записей страниц и стирание блоков, что приведет к цене за запись 32 страниц и 0,125 блоков. стирает - очень серьезное замедление.

В зависимости от того, сколько «дополнительного» хранилища имеет накопитель, он может не позволить, чтобы все стало так плохо. Тем не менее, даже в том случае, если накопитель заполнен на 75%, производительность в худшем случае может быть более чем в два раза хуже, чем производительность в худшем случае, когда он заполнен на 50%.

Supercat
источник
3

Вы в значительной степени прибили это. Вы можете думать о жестком диске SATA как о полудуплексном коммуникационном носителе (то есть он может принимать или передавать данные только за раз. Не одновременно.), Поэтому, когда накопитель задерживается в течение длительного времени в поисках свободного места для записи к, он не может прочитать какие-либо данные для вас. По этой причине не следует загружать накопители емкостью более 80%. Чем полнее он, тем выше вероятность того, что он фрагментирует файлы, что приводит к тому, что накопитель связывается во время запросов на чтение (таким образом блокируя запросы на запись).

Есть несколько вещей, которые вы можете сделать, чтобы помочь с этими проблемами:

  • Сократите объем хранимых данных и регулярно дефрагментируйте свой диск.
  • Переключитесь на флэш-память.
  • Храните объемные данные, хранящиеся на отдельном диске от вашей ОС.
  • Так далее и тому подобное...
Натаниал Кроткий
источник
1
При использовании флэш-памяти привод может считывать или записывать (опять же, не оба) почти мгновенно (9 мс - довольно стандартное время поиска на жестком диске, где, как правило, у SSD есть «время поиска» в области пико и нано секунд) для любого расположение на диске. en.wikipedia.org/wiki/…
Натаниал Мик
7
Продолжая описывать 2: это то, для чего, например, $Bitmapфайл предназначен для NTFS, или распределитель растровых изображений в ext4. Т.е. этот ответ распространяет какую-то серьезную дезинформацию. 3. Существует много читать и писать буферизацию и кэширование происходит , что делает большую часть этого тоо. Этот ответ в некоторой степени описывает эффекты фрагментации, и даже если он ограничен старыми файловыми системами, он, конечно, не является точным по отношению к свободному пространству. Освобождение дискового пространства не ускоряет работу компьютера.
Jason C
4
@JasonC, ты должен превратить свои комментарии в ответ.
Celos
6
Этого не происходит : «поэтому, когда накопитель в течение длительного времени находится в поиске свободного места для записи, он не может прочитать какие-либо данные для вас» - он просто этого не делает. Это не то, как работают файловые системы. Пожалуйста, отредактируйте свой ответ, чтобы прекратить распространение дезинформации.
RomanSt
2
@NathanialMeek Вы немного смешиваете слои. :) Полудуплексный режим SATA означает, что он может передавать данные по проводам только в одном направлении. Чтение и запись более высокого уровня выполняются небольшими блоками (называемыми FIS), в заданных SATA очередях операций. Они могут быть асинхронными, а быстрое чтение и запись могут выполняться в и из встроенного кэша и напрямую в системную память через DMA. Контроллеры SATA также могут свободно изменять порядок команд для оптимизации эффективности. Дело в том, что линия не занята, когда физические операции завершены, и полудуплексный режим SATA не дает ожидаемого эффекта.
Джейсон С,
3

Следуя короткому и приятному подходу, мой упрощенный ответ (строго ограниченный вашим главным замешательством):

Пока ваш

  1. ОС имеет достаточно (для худшего случая) места для выполнения своих обязанностей, таких как подкачка / замена / и т.д.
  2. Другое программное обеспечение также имеет достаточно места для своих нужд.
  3. Жесткий диск дефрагментирован.

Тогда вы не сможете определить разницу в производительности 80% пустого диска по сравнению с 30% пустого диска, и вам не придется беспокоиться ни о чем другом, кроме хранения новых и новых данных.

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

Конечно, очистка диска с помощью инструмента хороша как:

  1. Временные файлы должны регулярно очищаться, чтобы освободить место на диске.
  2. Старые файлы журналов - пустая трата пространства.
  3. Остатки Установленного / Удаленного программного обеспечения очень противны.
  4. Файлы cookie должны быть удалены, если вы цените свою конфиденциальность в Интернете.
  5. Неверные ярлыки и т. Д.

Все эти (и многие другие) причины приводят к снижению производительности, поскольку все они продолжают сбивать с толку ОС, когда находят правильный набор битов для работы.

Htaank
источник
Достойное резюме, но не очень уверенное в разделе «НО». В частности: 3) Как правило, не оказывает заметного влияния на производительность, несмотря на распространенные проблемы. 4) Файлы cookie не являются проблематичными по своей природе, и, независимо от мнения, конфиденциальность не связана с производительностью или объемом жесткого диска, 5) Сломанные ярлыки некрасивые, но обычно несущественно иначе. Ничто из этого не «смущает» ни одну распространенную ОС. Будьте очень осторожны с «советами» и «настройками», которым вы следуете. Остерегайтесь также ненужных инструментов очистки, в частности, очистители реестра часто рискуют нанести ущерб с нулевой выгодой.
Джейсон С.
2

Я не упомянул одно влияние на вращающиеся диски: скорость доступа и скорость передачи данных различны для разных частей диска.

Диск вращается с фиксированной скоростью. Дорожки на внешней стороне диска длиннее и поэтому могут содержать больше данных на дорожку, чем дорожки на внутренней стороне. Если ваш диск может считывать 100 МБ / с с самых внешних дорожек, скорость на самых внутренних дорожках будет меньше 50 МБ / с.

В то же время между 1 ГБ данных на внешних дорожках диска меньше дорожек, чем между 1 ГБ данных на самых внутренних дорожках. Таким образом, в среднем, для данных, хранящихся снаружи, потребуется меньшее перемещение головы, чем для данных на самых внутренних дорожках.

ОС будет стараться использовать внешние треки, если это возможно. Конечно, это невозможно, если диск заполнен. Удаление данных сделает пространство доступным там, где скорость передачи выше, и ускорит процесс. По той же причине вы должны покупать вращающиеся жесткие диски, которые больше, чем нужно, если вы хотите скорость (при условии, что это доступно), потому что вы в конечном итоге будете использовать только самые быстрые части диска.

gnasher729
источник
Добавление: en.wikipedia.org/wiki/Zone_bit_recording , которое затрагивает некоторые детали. Стоит отметить: существующие данные не будут перемещаться. Это может повлиять на хранение новых данных (в зависимости от расположения на диске, а не непосредственно на свободном месте), но это не «замедлит» существующие файлы, к которым успешно обращались до записи изнутри. По сравнению с самым дешевым 3,5-дюймовым диском емкостью 1 ТБ 7200 об / мин, который я обнаружил в Amazon, средняя скорость чтения, измеренная пользователем, составляет 144 МБ / с; даже с учетом различий на внутренних и внешних дорожках это может не быть узким местом при случайном использовании.
Джейсон С.
@JasonC Производительность ввода-вывода с точки зрения последовательной пропускной способности практически никогда не является проблемой на практике; даже медленный двигатель со скоростью 4900 об / мин будет достаточно быстрым практически для любого отдельного пользователя. Производительность ввода / вывода с точки зрения операций чтения / записи в секунду будет той, которая убивает производительность в большинстве случаев; Спросите своего местного любимого системного администратора о IOPS с ротационным хранилищем в многопользовательских системах, если вы так склонны. Это главная причина, по которой практически никто не развертывает ротационное хранилище для многопользовательских систем в наши дни; Вы просто не можете даже приблизиться к IOPS SSD.
CVn