Узнавая больше о компьютерах и о том, как они работают, вы иногда будете сталкиваться с тем, что не имеет смысла. Имея это в виду, действительно ли освобождение дискового пространства ускоряет работу компьютеров? В сегодняшнем посте SuperUser Q&A есть ответ на вопрос озадаченного читателя.
Сегодняшняя сессия вопросов и ответов проходит благодаря SuperUser - подразделению Stack Exchange, группы веб-сайтов вопросов и ответов, управляемой сообществом.
Скриншот любезно предоставлен песок (Flickr) .
Вопрос
Читатель SuperUser Remi.b хочет знать, почему очистка дискового пространства ускоряет работу компьютера:
Я просмотрел много видео и теперь немного лучше понимаю, как работают компьютеры. Я понимаю, что такое оперативная память, о энергозависимой и энергонезависимой памяти и о процессе подкачки. Я также понимаю, почему увеличение ОЗУ ускоряет работу компьютера.
Я не понимаю, почему очистка дискового пространства ускоряет работу компьютера. Действительно ли это ускоряет работу компьютера? Если да, то почему?
Имеет ли это какое-то отношение к поиску места в памяти для сохранения вещей или к перемещению вещей, чтобы создать достаточно длинное непрерывное пространство, чтобы что-то спасти? Сколько свободного места мне следует оставить на жестком диске?
Почему кажется, что очистка дискового пространства ускоряет работу компьютера?
Ответ
У участника SuperUser Джейсона Си есть для нас ответ:
«Почему очистка дискового пространства ускоряет работу компьютеров?»
Это не так, по крайней мере, не само по себе. Это действительно распространенный миф. Причина, по которой это распространенный миф, заключается в том, что заполнение жесткого диска часто происходит одновременно с другими вещами, которые традиционно могут замедлить работу вашего компьютера. (А) . Производительность SSD имеет тенденцию к снижению по мере их заполнения, но это относительно новая проблема, уникальная для SSD, и она не особо заметна для обычных пользователей. Как правило, недостаток свободного места на диске - отвлекающий маневр.
Например, такие вещи, как:
1. Фрагментация файлов. Фрагментация файлов - проблема (В) , но нехватка свободного места, безусловно, одна из многих способствующих этому факторов, не единственная причина этого. Некоторые ключевые моменты здесь:
- Шансы на фрагментацию файла равны не в зависимости от количества свободного места на диске. Они связаны с размером самого большого непрерывного блока свободного пространства на диске (т. Е. «Дыр» свободного пространства), который равен количеству свободного пространства. оказывается верхняя граница . Они также связаны с тем, как файловая система обрабатывает размещение файлов ( подробнее ниже ). Рассмотреть возможность: Диск, который заполнен на 95 процентов со всем свободным пространством в одном непрерывном блоке, имеет нулевую вероятность фрагментации нового файла (С) (и вероятность фрагментации добавленного файла не зависит от свободного места). Диск, заполненный на пять процентов, но с равномерным распределением данных по диску, имеет очень высокую вероятность фрагментации.
- Помните, что фрагментация файлов влияет на производительность только при доступе к фрагментированным файлам . Рассмотреть возможность: У вас есть хороший дефрагментированный диск, на котором все еще есть много свободных «дырок». Обычный сценарий. Все идет гладко. В конце концов, однако, вы достигнете точки, когда больше не останется больших блоков свободного места. Вы скачиваете огромный фильм, и в итоге файл сильно фрагментирован. Это не замедлит ваш компьютер . Все ваши файлы приложений и тому подобное, которые раньше были в порядке, не станут внезапно фрагментированными. Это может увеличить время загрузки фильма (хотя типичные битрейты фильмов настолько низки по сравнению со скоростью чтения жесткого диска, что, скорее всего, будут незаметны), и это может повлиять на производительность операций ввода-вывода во время загрузки фильма, но кроме этого ничего не меняется.
- Хотя фрагментация файлов, безусловно, является проблемой, часто ее эффекты смягчаются за счет буферизации и кэширования на уровне ОС и оборудования. Отложенная запись, упреждающее чтение, такие стратегии, как сборщик в Windows и т. д. все это помогает уменьшить эффект фрагментации. Вы обычно не фактически испытывать значительное влияние, пока фрагментация не станет серьезной (я бы даже рискнул сказать, что пока ваш файл подкачки не фрагментирован, вы, вероятно, никогда этого не заметите).
2. Индексирование поиска - еще один пример. Предположим, у вас включено автоматическое индексирование и операционная система не справляется с этим должным образом. По мере того, как вы сохраняете на свой компьютер все больше и больше индексируемого контента (документов и т. П.), Индексирование может занимать все больше времени и может начать влиять на воспринимаемую скорость вашего компьютера во время его работы, как при вводе-выводе, так и при использовании ЦП. . Это не связано со свободным пространством, это связано с объемом имеющегося у вас индексируемого контента. Однако исчерпание свободного места идет рука об руку с сохранением большего количества контента, поэтому создается ложное соединение.
3. Антивирусное ПО (аналогично примеру поисковой индексации). Допустим, у вас установлено антивирусное программное обеспечение для фонового сканирования вашего диска. Поскольку у вас появляется все больше и больше поддающегося сканированию контента, поиск требует больше ресурсов ввода-вывода и ЦП, что может мешать вашей работе. Опять же, это связано с количеством имеющегося у вас сканируемого контента. Больше контента часто означает меньше свободного места, но нехватка свободного места не является причиной.
4. Установленное программное обеспечение. Допустим, у вас установлено много программного обеспечения, которое загружается при загрузке компьютера, что замедляет время запуска. Это замедление происходит из-за того, что загружается много программного обеспечения. Однако установленное программное обеспечение занимает место на жестком диске. Таким образом, свободное пространство на жестком диске уменьшается одновременно с этим, и снова может быть легко установлено ложное соединение.
5. Множество других примеров в этом направлении, которые, взятые вместе, появиться чтобы тесно связать нехватку свободного места с низкой производительностью.
Вышеупомянутое иллюстрирует еще одну причину того, что это такой распространенный миф: хотя нехватка свободного места не является прямой причиной замедления, удаление различных приложений, удаление проиндексированного или отсканированного контента и т. Д. Иногда (но не всегда; вне рамок этот ответ) снова увеличивает производительность по причинам, не связанным с количеством оставшегося свободного места. Но это также естественным образом освобождает место на жестком диске. Следовательно, опять же, может быть установлена очевидная (но ложная) связь между «большим свободным пространством» и «более быстрым компьютером».
Рассмотреть возможность: Если у вас есть машина, работающая медленно из-за большого количества установленного программного обеспечения и т. Д., Клонируйте ваш жесткий диск (точно) на жесткий диск большего размера, а затем расширяйте разделы, чтобы получить больше свободного места, машина не будет волшебным образом ускоряться. Загружается одно и то же программное обеспечение, одни и те же файлы по-прежнему фрагментированы одинаково, тот же индексатор поиска по-прежнему работает, ничего не меняется, несмотря на наличие большего количества свободного места.
«Это как-то связано с поиском места в памяти для сохранения вещей?»
Нет. Здесь стоит отметить два очень важных момента:
1. Ваш жесткий диск не ищет места для хранения вещей. Ваш жесткий диск тупой. Это ничего. Это большой блок адресного хранилища, который слепо помещает вещи туда, где ваша ОС сообщает ему, и читает все, что от него требуется. Современные диски имеют сложные механизмы кэширования и буферизации, предназначенные для прогнозирования того, что будет запрашивать ОС, на основе опыта, который мы приобрели с течением времени (некоторые диски даже знают о файловой системе, которая находится на них), но, по сути, подумайте о своем диск как просто большой тупой блок хранилища со случайными функциями повышения производительности.
2. Ваша операционная система также не ищет места для размещения вещей. Поиска нет. Для решения этой проблемы было приложено много усилий, поскольку она критична для производительности файловой системы. То, как данные на самом деле организованы на вашем диске, определяется вашим файловая система . Например, FAT32 (старые ПК с DOS и Windows), NTFS (более поздние версии Windows), HFS + (Mac), ext4 (некоторые системы Linux) и многие другие. Даже концепции «файла» и «каталога» - всего лишь продукты типичных файловых систем - жесткие диски ничего не знают о таинственных чудовищах, называемых файлы . Подробности выходят за рамки этого ответа. Но по сути, все распространенные файловые системы имеют способы отслеживания доступного пространства на диске, поэтому поиск свободного места в нормальных условиях (т.е. файловые системы в хорошем состоянии) не требуется. Примеры:
- NTFS имеет таблица основных файлов , который включает специальные файлы $ Bitmap и т. д., а также множество метаданных, описывающих диск. По сути, он отслеживает, где находятся следующие свободные блоки, так что новые файлы могут быть записаны непосредственно в свободные блоки без необходимости каждый раз сканировать диск.
- Другой пример: Ext4 имеет то, что называется распределитель битовых карт , улучшение по сравнению с ext2 и ext3, которое в основном помогает ему напрямую определять, где находятся свободные блоки, вместо сканирования списка свободных блоков. Ext4 также поддерживает отложенное распределение , то есть буферизация данных в ОЗУ операционной системой перед их записью на диск, чтобы принимать более обоснованные решения о том, куда их поместить, чтобы уменьшить фрагментацию.
- Много других примеров.
«Или с перемещением вещей, чтобы создать достаточно длинное непрерывное пространство, чтобы что-то спасти?»
Нет. Этого не происходит, по крайней мере, с какой-либо известной мне файловой системой. Файлы просто получаются фрагментированными.
Процесс «перемещения вещей, чтобы создать достаточно длинное непрерывное пространство для сохранения чего-либо» называется дефрагментация . Этого не происходит при записи файлов. Это происходит, когда вы запускаете дефрагментатор диска. По крайней мере, в новых выпусках Windows это происходит автоматически по расписанию, но никогда не запускается при записи файла.
Быть способным избегать Подобное перемещение вещей является ключом к производительности файловой системы, и именно поэтому происходит фрагментация и почему дефрагментация существует как отдельный шаг.
«Сколько свободного места мне следует оставить на жестком диске?»
На этот вопрос сложнее ответить (и этот ответ уже превратился в небольшую книгу).
Эмпирические правила:
1. Для всех типов приводов:
- Самое главное, оставьте достаточно свободного места для вы, чтобы эффективно использовать свой компьютер . Если вам не хватает места для работы, вам понадобится диск большего размера.
- Многие инструменты дефрагментации диска требуют минимального количества свободного места (я думаю, что тот, который работает с Windows, требует 15 процентов, в худшем случае) для работы. Они используют это свободное пространство для временного хранения фрагментированных файлов по мере перегруппировки других вещей.
- Оставьте место для других функций ОС. Например, если на вашем компьютере мало физической ОЗУ и у вас включена виртуальная память с файлом подкачки динамического размера, вы захотите оставить достаточно места для максимального размера файла подкачки. Или, если у вас есть ноутбук, который вы переводите в режим гибернации, вам потребуется достаточно свободного места для файла состояния гибернации. Такие вещи.
2. Для SSD:
- Для оптимальной надежности (и в меньшей степени производительности) твердотельным накопителям требуется некоторое свободное пространство, которое, не вдаваясь в подробности, они используют для распределения данных по диску, чтобы избежать постоянной записи в одно и то же место (что изнашивает их). . Эта концепция оставления свободного места называется избыточное обеспечение . Это важно, но на многих SSD уже существует обязательное избыточное пространство . То есть на дисках часто бывает на несколько десятков ГБ больше, чем они сообщают ОС. Младшие диски часто требуют, чтобы вы вручную оставили неразделенный пространство, но для дисков с обязательным ОП, Вам не нужно оставлять свободное место . Здесь важно отметить, что избыточное пространство часто берется только из неразделенного пространства . Поэтому, если ваш раздел занимает весь ваш диск, и вы оставляете на нем немного свободного места, это не всегда считать. Во многих случаях избыточное выделение ресурсов вручную требует, чтобы вы уменьшили размер раздела до размера, меньшего, чем размер диска. Подробности смотрите в руководстве пользователя вашего SSD. TRIM, сборка мусора и тому подобное также имеют эффекты, но они выходят за рамки этого ответа.
Лично я обычно беру диск большего размера, когда у меня остается около 20-25 процентов свободного места. Это не связано с производительностью, просто когда я дойду до этой точки, я ожидаю, что скоро у меня, вероятно, закончится место для данных, и пришло время приобрести диск большего размера.
Более важным, чем наблюдение за свободным пространством, является включение запланированной дефрагментации там, где это необходимо (не на твердотельных накопителях), чтобы вы никогда не добрались до точки, когда она станет достаточно ужасной, чтобы повлиять на вас.
И последнее, о чем стоит упомянуть. В одном из других ответов здесь упоминалось, что полудуплексный режим SATA предотвращает одновременное чтение и запись. Хотя это правда, это сильно упрощено и в основном не связано с обсуждаемыми здесь проблемами производительности. Это означает, что данные не могут передаваться в обоих направлениях. на проводе в то же время. Однако у SATA есть довольно сложная спецификация включая крошечные максимальные размеры блоков (я думаю, около 8 Кбайт на блок в сети), очереди операций чтения и записи и т. д., и не исключает записи в буферы, происходящие во время чтения, операции с чередованием и т. д.
Любая блокировка, возникающая из-за конкуренции за физические ресурсы, обычно смягчается большим количеством кеша. Дуплексный режим SATA здесь почти не имеет значения.
(А) «Замедлить» - широкий термин. Здесь я использую его для обозначения вещей, которые либо связаны с вводом-выводом (то есть, если ваш компьютер сидит там, обрабатывая числа, содержимое жесткого диска не влияет), либо привязаны к ЦП и конкурируют с косвенно связанными объектами, которые имеют высокий Использование ЦП (то есть антивирусное программное обеспечение, сканирующее тонны файлов).
(В) На SSD влияет фрагментация, поскольку скорость последовательного доступа обычно выше, чем скорость произвольного доступа, несмотря на то, что SSD не имеют тех же ограничений, что и механические устройства (даже в этом случае отсутствие фрагментации не гарантирует последовательный доступ из-за выравнивания износа и т. Д.). Однако практически в каждом сценарии общего использования это не проблема. Различия в производительности из-за фрагментации на SSD обычно незначительны для таких вещей, как загрузка приложений, загрузка компьютера и т. Д.
(С) Предполагая, что файловая система работает нормально, и файлы не фрагментируются специально.
Обязательно прочитайте остальную часть оживленного обсуждения на SuperUser по ссылке ниже!
Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полной веткой обсуждения здесь .