Почему диск с заполнен хотя там ничего нет
Перейти к содержимому

Почему диск с заполнен хотя там ничего нет

Чем забит мой жесткий диск (или куда пропало свободное место на HDD) [Анализ диска]

chem-zabit-hdd

Вопрос от пользователя

Здравствуйте.

Подскажите, как мне узнать, чем занято место на моем диске.

Дело в том, что я посмотрел размер всех папок на нем, сложил их — и он получился меньше, чем общее занятое место в свойствах диска (в моем компьютере). Что делать?

Да, здесь в пору вспомнить одну поговорку: «какого бы размера не был ваш жесткий диск — он рано или поздно будет заполнен. «.

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

На мой взгляд, наиболее простой способ проанализировать занятое место на диске (т.е. получить удобную и наглядную «картинку», кто «оттяпал» всё место) — воспользоваться помощью спец. утилит.

Как правило, они могут за 1-2 мин. проанализировать весь ваш HDD, и выдать результаты в виде удобной диаграммы (а на ее основании любой, даже начинающий пользователь, сможет узнать, в какую сторону «копать», и что удалять. ��).

Итак, теперь ближе к теме.

Как узнать, чем забит жесткий диск [Анализ!]

�� WinDirStat

Официальный сайт: https://windirstat.net/

Совсем небольшая утилита (менее 1 МБ), способная за считанные минуты показать вам какие папки и файлы отнимают больше всего места. Причем, все это выполнено очень наглядно, и поиск «виновника» происходит очень быстро!

Ниже покажу на собственном примере, как нашел файл, который «отнимал» 12 ГБ!

Итак, после установки и запуска утилиты просто выберите диск(и), который нужно проанализировать, нажмите OK. См. скриншот ниже. ��

Выбор диска (доступен также системный диск)

Выбор диска (доступен также системный диск)

Далее подождите окончания сканирования (обычно 2-5 минут на 1-2 ТБ диск, зависит от количества и размера файлов, на нем расположенных).

После чего вы увидите цветную диаграмму: каждый «прямоугольник» — это файл, размер прямоугольника рисуется относительно размера файла.

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

Анализ моего диска

Анализ моего диска / Кликабельно

Например, у меня на диске занимал 12 ГБ места файл pagefile.sys (см. скрин выше ��).

Для тех, у кого проблема с этим же файлом, скажу, что это файл подкачки. Используется он системой автоматически, но его можно ограничить, либо перенести на другой диск (как это сделать — рассказано в одной из моих статей, ссылку привожу ниже).

�� В помощь!

Недостаточно места на диске? Удаляем весь мусор и настраиваем системный файлы (в т.ч. pagefile.sys) всего за 5 шагов.

TreeSize

TreeSize Free - главное окно программы

TreeSize — главное окно программы

Эта программа, в отличие от предыдущей, не строит диаграмм, однако она удобно сортирует папки согласно их размеру. Причем, напротив каждой из папок «горит» определенное значение в процентах, относительно ее размера (весь диск — это 100%).

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

Прим. : есть возможность для импортирования результатов анализа в файл HTML.

Scanner

Анализ занятого места на HDD с помощью Scanner

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

Обратите внимание, что слева в меню программы вы можете выбрать любой из жестких дисков, которые видит ваша ОС Windows.

SpaceSniffer

Примечание : программа не нуждается в установке.

Главное окно программы SpaceSniffer

Главное окно программы SpaceSniffer

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

При первом запуске, программа покажет вам все диски, и после вашего выбора одного из них — приступит к сканированию. После чего, пред вами предстанет наглядная схема: перемещаясь по ней вы быстро найдете, что «оттяпало» лишнее месте на диске (см. скрин выше ��).

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

В общем и целом, программа заслуживает высокой оценки, рекомендую к использованию!

DiskView

Главное окно Disk View

Главное окно DiskView

Эта программа отличается от остальных тем, что работает даже на относительно старых ОС Windows NT 4, 2000, XP (новые Windows 7, 8, 10 — разумеется, поддерживаются).

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

Программа бесплатна, русский не поддерживает.

JDiskReport

JDiskReport - скрин главного окна программы

JDiskReport — скрин главного окна программы

Отличная программа для анализа HDD. Позволяет за считанные минуты найти потерянное место! Благодаря архи-удобной круговой диаграмме сразу же видно какие папки заняли все место.

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

Кстати, в программе есть топ 50 — покажет все самые большие файлы на диске!

Spyglass

SPYGLASS - главное окно программы

SPYGLASS — главное окно программы

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

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

�� Помощь по очистке диска ��

Ну и в конце статьи не могу не порекомендовать несколько материалов, которые помогут вам очистить жесткий диск от разного рода «мусора» и сократить аппетиты некоторых системных файлов. ��

�� В помощь!

1) Как почистить Windows 10 (Windows 11) от мусора, старых и ненужных файлов, кэша и т.д. (чтобы не тормозил ПК)

2) Недостаточно места на диске — ошибка, что с ней делать?

3) 3 способа как увеличить объем диска «C:\» (без потери данных).

Дополнения по теме будут весьма кстати!

На этом пока всё, удачи!

Первая публикация: 29.11.2018

Как очистить диск C от ненужных файлов

Как очистить диск C в Windows

В этой инструкции для начинающих мы рассмотрим несколько простых способов, которые помогут любому пользователю очистить системный диск C от ненужных файлов и освободить тем самым место на жестком диске, которое с большой вероятностью может пригодиться для чего-то куда более полезного. В первой части способы очистка диска, появившиеся в Windows 10, во второй — способы, которые подойдут для Windows 8.1 и 7 (и для 10-ки тоже).

Очистка диска C в Windows 10

Обновление 2018: в Windows 10 1803 April Update описываемый ниже раздел находится в Параметры — Система — Память устройства (а не Хранилище). И, помимо способов очистки, которые вы найдете далее, там появился пункт «Очистить место сейчас» для быстрой очистки диска.

Хранилище Windows 10 и его настройки

Первое, на что следует обратить внимание, если вам потребовалось очистить диск C — это пункт настроек «Хранилище» (Память устройства), доступный в «Все параметры» (через клик по значку уведомлений или клавиши Win+I) — «Система».

Настройки хранилища Windows 10

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

Если в «Хранилище» нажать по любому из дисков, в нашем случае по диску C, можно увидеть более подробные сведения о содержимом и, что важно — удалить часть этого содержимого.

Использование диска C в Windows 10

Например, в самом конце списка имеется пункт «Временные файлы», при выборе которого вы можете удалить временные файлы, содержимое корзины и папки загрузок с компьютера, высвободив тем самым дополнительное место на диске.

Очистка временных файлов Windows 10

При выборе пункта «Системные файлы», вы можете ознакомиться с тем, сколько занимает файл подкачки (пункт «Виртуальная память»), файл гибернации, а также файлы восстановления системы. Тут же можно перейти к настройке параметров восстановления системы, а остальная информация может помочь при принятии решений об отключении гибернации или настройке файла подкачки (о чем будет далее).

Функции сжатия файлов ОС и файла гибернации

В Windows 10 представлена функция сжатия системных файлов Compact OS, позволяющая уменьшить количество места, занимаемого на диске самой ОС. По информации Microsoft, использование данной функции на сравнительно производительных компьютерах с достаточным объемом оперативной памяти не должно сказаться на производительности.

Удаление и перемещение приложений

Помимо того, что приложения Windows 10 можно переместить в разделе настроек «Хранилище», о чем было написано выше, имеется возможность их удаления.

Пожалуй, это всё из того, что появилось нового в плане освобождения места на системном разделе. Остальные способы очистить диск C подойдут в равной степени для Windows 7, 8 и 10.

Запустите очистку диска Windows

Прежде всего рекомендую воспользоваться встроенной утилитой Windows для очистки жесткого диска. Данный инструмент удаляет временные файлы и другие не важные для работоспособности операционной системы данные. Чтобы открыть очистку диска, кликните в окне «Мой компьютер» по диску C правой кнопкой мыши и выберите пункт «Свойства».

Свойства жесткого диска в Windows

Свойства жесткого диска в Windows

На вкладке «Общие» нажмите кнопку «Очистка диска». После того, как в течение нескольких минут Windows соберет информацию о том, какие ненужные файлы скопились на HDD, вам будет предложено выбрать те типы файлов, которые вы хотели бы удалить с него. Среди них — временные файлы из Интернета, файлы из корзины, отчеты о работе операционной системы и прочее. Как видите, на моем компьютере таким образом можно освободить 3,4 Гигабайта, что не так уж и мало.

Очистка диска C

Очистка диска C

Кроме этого, вы можете очистить и системные файлы Windows 10, 8 и Windows 7 (не критичные для работы системы) с диска, для чего нажмите кнопку с данным текстом внизу. Программа еще раз проверит, что именно можно относительно безболезненно удалить и после этого, помимо одной вкладки «Очистка диска» станет доступна еще одна — «Дополнительно».

Очистка файлов системы

Очистка файлов системы

Удалите неиспользуемые программы, занимающие много места на диске

Следующее действие, которое я могу рекомендовать — удаление ненужных неиспользуемых программ на компьютере. Если Вы зайдете в панель управления Windows и откроете «Программы и компоненты», то вы сможете увидеть список установленных на компьютере программ, а также колонку «Размер», в которой отображается, сколько места занимает каждая программа.

Размер программ, занимаемый на диске

Если вы не видите данной колонки, нажмите кнопку настроек в верхнем правом углу списка и включите вид «Таблица». Маленькое примечание: эти данные не всегда точны, так как не все программы сообщают операционной системе о своем точном размере. Может оказаться, что ПО занимает значительное количество дискового пространства, а колонка «Размер» пуста. Удалите те программы, которые Вы не используете — давно установленные и до сих пор не удаленные игры, программы, которые устанавливались просто для пробы и другое программное обеспечение, в котором нет особенной нужды.

Проанализируйте, что занимает место на диске

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

Главное окно программы WinDirStat

Произведите очистку временных файлов

«Очистка диска» в Windows — без сомнения, полезная утилита, но она не удаляет временных файлов, созданных различными программами, а не самой операционной системой. Например, если вы используете браузер Google Chrome или Mozilla Firefox, то их кэш может занимать несколько гигабайт на вашем системном диске.

Главное окно программы CCleaner

Главное окно программы CCleaner

Другие методы очистки диска C

Помимо описанных выше методов, вы можете воспользоваться и дополнительными:

  • Внимательно изучите установленные программы на компьютере. Удалите те, что не нужны.
  • Удалите старые драйверы Windows, см. Как очистить пакеты драйверов в DriverStore\FileRepository
  • Не храните фильмы и музыку на системном разделе диска — эти данные занимают много места, но их расположение не играет роли.
  • Найти и очистить дубликаты файлов — очень часто случается, что вы имеете две папки с фильмами или фотографиями, которые дублируются и занимают дисковое пространство. См: Как найти и удалить дубликаты файлов в Windows.
  • Изменить место на диске, отводимое под информацию для восстановления или вообще отключить сохранение этих данных;
  • Отключить гибернацию — при включенной гибернации на диске C всегда присутствует файл hiberfil.sys, размер которого равен объему оперативной памяти компьютера. Эту функцию можно отключить: Как отключить гибернацию и удалить hiberfil.sys.

Если говорить о последних двух способах — я бы их не рекомендовал, особенно начинающим пользователям компьютера. Кстати, имейте в виду: на жестком диске никогда не бывает столько места, сколько написано на коробке. А если у Вас ноутбук, и когда вы его покупали, было написано, что на диске 500 Гб, а Windows показывает 400 с чем-то — не удивляйтесь, это нормально: часть дискового пространства отдано для раздела восстановления ноутбука к заводским настройкам, а полностью чистый диск на 1 TB, приобретенный в магазине, на самом деле имеет меньший объем. Постараюсь написать, почему, в одной из ближайших статей.

А вдруг и это будет интересно:

  • Лучшие бесплатные программы для Windows
  • Запись видео с экрана в Samsung Screen Recorder для Windows
  • Черный экран Windows 11 при запуске — как исправить?
  • «Обновление на месте» для исправления ошибок Windows 11 и 10
  • Как переместить папку «Загрузки» в Windows 11
  • Тормозит мышь в Windows — варианты решения
  • Windows 11
  • Windows 10
  • Android
  • Загрузочная флешка
  • Лечение вирусов
  • Восстановление данных
  • Установка с флешки
  • Настройка роутера
  • Всё про Windows
  • В контакте
  • Одноклассники

    Сергей 11.01.2017 в 17:48

  • Dmitry 12.01.2017 в 09:56
  • Сергей 14.01.2017 в 22:10

Необычное переполнение жесткого диска или как удалить миллионы файлов из одной папки

Скорей всего, матерым системным администраторам статья будет не очень интересна. В первую очередь она ориентирована на новичков, а также на людей, которые столкнулись с подобной проблемой — необходимостью удалить огромное количество файлов из одной папки в ОС Linux (Debian в моем случае), а также с закончившимся местом на диске, когда df -h выдает что почти 30% свободно.

Начало

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

В первый же день отпуска мне звонят с жалобой — сайт недоступен. MySQL падает с ошибкой Error 28 «No space left on device».

Казалось бы, проблема банальна — кончилось место на диске. Правда, df -h показывает, что на диске имеется вполне достаточное количество свободного места, ну да я же в отпуске, разбираться лень — посоветовал им поискать на диске ненужные файлы (старые бекапы и т.д.) и их удалить. Удалили, вроде все заработало.

Прошла пара часов и проблема вернулась. Странно — свободное место на жестком диске за это время практически не уменьшилось. После беглого гугления обнаружился топик на serverfault, в котором говорится, что проблема может возникнуть также из-за того, что кончилось не место на диске, а айноды!

Ввожу в консоль df -i — и оказывается действительно, айноды у меня закончились.

Проблема

Начал искать, где же у меня находится столько файлов на жестком диске, что они сожрали все айноды (а айнодов у меня на 500-гигабайтном жестком диске больше 30 миллионов).

И нашел — оказалось, проблема была в папке с сессиями php.

Видимо, по какой-то причине сломался механизм автоочистки этой папки, что привело к тому, что в ней скопилось огромное количество файлов. Насколько огромное — сказать сложно, потому что никакие стандартные команды линукс, такие, как ls, find, rm и т.д. — с этой папкой не работают. Просто виснут, заодно подвешивая весь сервер. Могу только сказать, что сам файл директории стал весит около гигабайта, а также что файлов там точно более полумиллиона, потому что столько я оттуда уже удалил.

Решение

Решение очевидное — надо удалить все эти файлы сессий. При этом желательно, чтобы сервер продолжал работать в штатном режиме. Для начала я переименовал папку сессий, в которой лежит куча файлов, а вместо нее создал пустую — чтобы спокойно из старой (переименованной) удалять все файлы, и чтобы это не мешало созданию новых файлов сессий.

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

И перешел к основной проблеме — очистке жесткого диска.

Попробовал решение «в лоб»:

rm -rf ./*

Сервер повис, ничего не удалилось

Попробовал известный способ для удаления большого числа файлов

find . -type f -exec rm -v <> \;

Ничего, сервер виснет, файлы не удаляются.

А теперь что самое интересное — файловый менеджер mc достаточно успешно справлялся с задачей удаления этих файлов! То есть, когда запускаешь удаление папки — файлы удаляются, mc не виснет. Удаление идет со скоростью примерно 5 000 файлов в минуту, правда при этом создается огромная нагрузка на жесткий диск, что приводит к неработоспособности сервера.

А хотелось бы, чтобы эти файлы постепенно удалялись в фоновом режиме, и не мешали нормальной работе сайта.

Собственно, решение опять нашлось в гугле — Olark делится способом, как он отобразил список из 8 миллионов файлов в 1 папке, используя системный вызов getdents

Здесь находится документация по функции getdents, а также пример кода, который ее использует.

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

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

В итоге у меня получился такой код:

#define _GNU_SOURCE #include /* Defines DT_* constants */ #include #include #include #include #include #include #define handle_error(msg) \ do < perror(msg); exit(EXIT_FAILURE); >while (0) struct linux_dirent < long d_ino; off_t d_off; unsigned short d_reclen; char d_name[]; >; #define BUF_SIZE 1024*30 int main(int argc, char *argv[]) < int fd, nread; char buf[BUF_SIZE]; struct linux_dirent *d; int bpos; int deleted; char d_type; char temp[100]; fd = open(argc >1 ? argv[1] : ".", O_RDONLY | O_DIRECTORY); if (fd == -1) handle_error("open"); deleted = 0; nread = syscall(SYS_getdents, fd, buf, BUF_SIZE); if (nread == -1) handle_error("getdents"); if (nread != 0) < for (bpos = 0; bpos < nread;) < d = (struct linux_dirent *) (buf + bpos); d_type = *(buf + bpos + d->d_reclen - 1); if(d->d_ino && d->d_ino != 22332748 && d->d_ino != 22332761) < // тут я прописал inode самой директории и директории верхнего уровня, чтобы он не пытался удалять файлы "." и ".." - принимаю подсказки, как это сделать лучше sprintf(temp,"%s/%s", argv[1], (char *) d->d_name); remove(temp); deleted += 1; > bpos += d->d_reclen; > > printf("deleted %d\n", deleted); exit(EXIT_SUCCESS); > 

Код компиллируется обычным gcc

gcc listdir.c -o listdir

И просто запускается из командной строки:

./listdir mod-tmp2

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

Выводы
  1. Если df -h показывает, что на жестком диске еще есть место — его может и не быть. Надо смотреть также df -i
  2. Не стоит надеяться на механизмы авто-очистки таких вещей, как файлы сессий — в какой-то момент они могут не сработать, и вы окажетесь у целой горы файлов, удалить которые — задача нетривиальная
  3. Стандартные команды линукс, такие как ls, rm, find и т.д. могут пасовать перед нестандартными ситуациями вроде миллионов файлов в одной папке. В таком случае надо использовать низкоуровневые системные вызовы

Ускоряет ли освобождение дискового пространства ваш компьютер?

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

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

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

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

  • Вероятность фрагментации файла не связана с объёмом свободного места на диске. Она зависит от размера наибольшего непрерывного блока свободного пространства на диске (т.е. «пробелов» свободного пространства), который ограничен сверху объёмом свободного пространства. Другой зависимостью является метод, используемый файловой системой при размещении файлов (об этом далее).
    Например: Если на диске занято 95% пространства и всё что свободно представлено одним непрерывным блоком, то у новый файл будет фрагментирован с вероятностью 0% (если, конечно нормальная файловая система не фрагментирует файлы специально — прим. автора) (также и вероятность фрагментации расширяемого файла не зависит от объёма свободного пространства). С другой стороны, диск, заполненный на 5% данными равномерно распределёнными по нему имеет очень высокую вероятность фрагментации.
  • Обратите внимание, что фрагментация файлов влияет на производительность только когда осуществляется доступ к этим файлам. Например: У вас есть хороший, дефрагментированный диск с большим количеством свободных «пробелов» на нём. Типичная ситуация. Всё работает хорошо. Однако, в какой-то момент вы приходите к ситуации когда больше не осталось больших свободных блоков. Вы скачиваете большой фильм, и этот файл оказывается сильно фрагментирован. Это не замедлит ваш компьютер. Файлы ваших приложений и прочие, что были в полном порядке, не станут моментально фрагментированными. Фильм конечно может дольше грузиться (однако, типичные битрейты фильмов настолько значительно ниже скорости чтения жёстких дисков, что вероятно это пройдёт незамеченным), также это может сказаться на производительности I/O пока фильм загружается, но ничего более не изменится.
  • Хотя фрагментация и является проблемой, часто проблема компенсируется кэшированием и буферизацией со стороны операционной системы и аппаратного обеспечения. Отложенная запись, упреждающее чтение и прочее помогают решить проблемы, вызываемые фрагментацией. В общем случае вы не замечаете ничего, пока уровень фрагментации не станет слишком высок (я даже рискну сказать, что пока ваш файл подкачки не фрагментирован, вы не заметите ничего)

Написанное выше иллюстрирует другую причину распространённости этого мифа: хотя исчерпание свободного пространства не является напрямую причиной замедления, деинсталляция различных приложений, удаление индексируемого и сканируемого контента и т.п. иногда (но не всегда, такие случаи находятся за рамками этого текста) приводит к увеличению производительности по причинам, не связанным с объёмом свободного места. При этом дисковое пространство высвобождается естественным образом. Следовательно, и здесь проявляется ложная связь между «больше свободного пространства» и «быстрый компьютер».

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

Связано ли это как-то с поиском места для размещения файлов?

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

  • NTFS содержит главную таблицу файлов (master file table) которая включает специальные файлы (например, $Bitmap) и множество метаданных, описывающих диск. По сути, она отслеживает последующие свободные блоки, так что файлы могут быть записаны на диск без необходимости сканировать диск каждый раз.
  • Другой пример, ext4 имеет сущность, называемую «bitmap allocator», улучшение по сравнению с ext2 и ext3, которое помогает напрямую определить положение свободных блоков, вместо сканирования списка свободных блоков. Ext4 также поддерживает «отложенное распределение», по сути являющуюся буферизацией данных операционной системой в оперативную память перед записью на диск, с тем чтобы принять наилучшее решение по размещению для снижения фрагментации.
  • Множество других примеров.

Может дело в перемещении файлов туда-сюда для выделения достаточно длинного непрерывного места при сохранении?

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

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

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

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

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

  • Для всех типов дисков:
    • Самое важное — оставлять достаточно места для того чтобы самому пользоваться компьютером эффективно. Если заканчивается место, возможно вам нужен диск большего объёма.
    • Многие утилиты дефрагментации дисков требуют наличие некоторого минимума свободного места (кажется, поставляемая в комплексе с Windows в худшем случае требует 15% свободного места) для своей работы. Они используют это место для временного хранения фрагментированных файлов, пока производится перемещение других объектов.
    • Оставьте места для других функций операционной системы. Например, если у вашего компьютера нет большого количества физической оперативной памяти, и виртуальная память включена с файлом подкачки динамического объёма, следует оставлять достаточно свободного места для размещения файла подкачки максимального размера. Если у вас ноутбук, который вы отправляете в гибернацию (hibernation), вам потребуется достаточно свободного места для сохранения файла состояния гибернации. Такие вот вещи.
    • Для оптимальной надёжности (и в меньшей степени производительности) на SSD должно быть некоторое свободное пространство, которое, не вдаваясь в детали, используется для равномерного распределения данных по диску, чтобы избежать постоянной записи в одно и то же место (что приводит к истощению ресурса). Концепция резервирования свободного места называется перезакладывание (over-provisionning). Это важно, но во многих SSD обязательное резервное пространство уже выделено. То есть, у дисков часто есть на несколько десятков гигабайт больше места, чем они демонстрируют операционной системе. Более дешёвые диски часто требуют, чтобы вы оставили неразмеченным часть пространства. Но при работе с дисками, у которых есть принудительное резервирование, этого не требуется. Важно отметить, что дополнительное место часто берётся только из неразмеченных областей. Поэтому не всегда будет работать вариант, когда ваш раздел занимает весь диск, а вы оставляете немного свободного места на нём. Ручное перезакладывание требует чтобы вы сделали ваш раздел меньше, чем размер диска. Сверьтесь с руководством пользователя вашего SSD. TRIM и сбор мусора (garbage collection) и подобные вещи тоже оказывают влияние, но они лежат за рамками этого текста.

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

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

    Послесловие

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

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

    • свободное пространство
    • жёсткий диск
    • SSD
    • производительность
    • файловые системы
    • фрагментация
    • дефрагментация
    • Системное администрирование
    • Хранение данных

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *