Назад | Перейти на главную страницу

Файловая система теряет производительность при заполнении?

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

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

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

  • Пропускная способность сырого диска. Если количество операций ввода-вывода, выполняемых на ваших дисках, превышает их возможности, это замедлится.
  • Шаблоны дискового ввода-вывода. Некоторые диски лучше работают с произвольным вводом-выводом, чем другие. SATA, например, не так хорошо работает с произвольным вводом-выводом, как диски SAS или SCSI.
  • Исчерпание ресурсов контроллера диска. Что бы вы ни использовали для RAID (при условии, что вы это делаете, а это не просто один диск), у него есть свои ресурсы. Если вы используете RAID с контролем четности, именно ЦП контроллера ограничивает скорость передачи данных на диск. Кроме того, у большинства аппаратных контроллеров есть собственный встроенный кэш. Это используется для многих вещей, но включает в себя переупорядочение записи для повышения эффективности. Если ввод-вывод становится слишком случайным, ваша RAID-карта также может быть не в состоянии оптимизировать.
  • Ресурсы памяти файлового кеша. Файловые серверы работают лучше всего, когда они могут полностью кэшировать 100% открытых файлов в памяти. Это позволяет им принимать записи от клиентов и переупорядочивать коммиты на диск таким образом, чтобы сделать их более эффективными. Если вы не можете разместить весь набор открытых файлов в памяти, для этих операций ввода-вывода он должен будет идти прямо на диск, и вы потеряете это повышение производительности.
  • Ресурсы локальной памяти клиента. Используя OpLocks, клиенты могут кэшировать открытые файлы локально на себе. Когда более одного клиента открывают один и тот же файл, сервер сообщает клиенту, что нужно очистить его кеш, и это исчезает. Однако для некоторых рабочих нагрузок это может дать реальную экономию. Если у клиента недостаточно места в файловом кэше для кеширования открытых файлов, производительность может заметно снизиться при открытии файлов только.
  • Фрагментация файловой системы. Массово фрагментированная файловая система по самой своей природе вызывает массовый случайный ввод-вывод в дисковой подсистеме. Если эта подсистема не может выдержать такого рода шаблонов ввода-вывода, дела идут очень медленно.
  • Пользовательские шаблоны ввода-вывода. Если ваши пользователи работают с миллионами офисных документов (обычно размером менее 2 МБ), ваши шаблоны доступа будут очень случайными. Если ваши пользователи работают с большими файлами, такими как видеофайлы, геопространственные данные или файлы AutoCAD, ваши пользователи будут генерировать множество последовательных операций.

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

Для файлового сервера, на котором хранится множество файлов AutoCAD, фрагментация NTFS будет заметна конечным пользователям. Этот шаблон ввода-вывода, созданный пользователем, в значительной степени является последовательным и поэтому уязвим для деградации из-за фрагментации. То, насколько это действительно повлияет, зависит от того, сколько оперативной памяти у сервера для кэширования, и от того, насколько быстро нижележащее хранилище учитывает случайные шаблоны ввода-вывода. Вполне возможно, что нижележащее хранилище будет достаточно быстрым, чтобы конечные пользователи не заметили том с 60% фрагментацией. Или это могло вызвать насыщение ввода-вывода только с 15% фрагментации.

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

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

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

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

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

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

Ничего не повредит, если вы запустите MyDefrag. Бесплатное ПО; он также пытается «оптимизировать» расположение файлов в некоторых областях диска, доступ к которым будет немного быстрее.

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

TL; DR: Нет, пока вы не заполнитесь более чем на 75%.

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

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

Если вы используете менее 80% или около того, не волнуйтесь, просто дефрагментируйте.

Когда он приближается к 100%, любая файловая система начинает замедляться.

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