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

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

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

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

решение1

Вот, я случайно написал книгу. Сначала выпей кофе.

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

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

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

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

    • Вероятность фрагментации файла составляетнетсвязаны с объемом свободного места, оставшегося на диске. Они связаны с размером самого большого непрерывного блока свободного места на диске (например, "дыры" свободного места), который объем свободного местаслучается, что устанавливает верхнюю границу. Они также связаны с тем, как файловая система обрабатывает распределение файлов (подробнее ниже).Учитывать:Диск, заполненный на 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-накопителей:

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

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

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


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

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


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

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

††† При условии, что файловая система работает нормально и не фрагментирует файлы намеренно.

решение2

В дополнение кОбъяснение Натаниэля МикаДля жестких дисков и твердотельных накопителей сценарий иной.

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

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

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

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

решение3

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

Учитывая это, существует два эффекта, которые приводят к снижению производительности диска по мере его заполнения:Время поискаиСкорость вращения.

Время поиска

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

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

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

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

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

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

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

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

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

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

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

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

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

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

решение4

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

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

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

Связанный контент