Почему существует фрагментация файловой структуры

Обновлено: 21.11.2024

Люди, которые сталкивались с неудачным опытом работы с дисками Windows, которые плохо работали после того, как они стали очень фрагментированными, часто задаются вопросом, нужно ли им применять какой-либо периодический анализ и дефрагментацию в своих системах Unix при переходе на роль администратора или пользователя Unix. По большей части ответ отрицательный. Большинство файловых систем Unix не становятся фрагментированными, как файловые системы FAT и NTFS. Но вместо того, чтобы давать быстрый ответ «да/нет», давайте посмотрим, что такое фрагментация, и почему файловые системы Unix не так подвержены фрагментации, как их собратья Windows, и что вам нужно делать, когда файловая система Unix фрагментирована.< /p>

Что вызывает фрагментацию?

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

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

Фрагментация в Windows

Чтобы увидеть фрагментацию в системе Windows 2000, откройте Программы -> Стандартные -> Системные инструменты -> Дефрагментация диска. Затем нажмите кнопку «Анализ». Это вызовет графическое отображение, в котором области диска, содержащие фрагментированные файлы, показаны красным цветом и, опционально (например, если вы нажмете «Просмотреть отчет»), список фрагментированных файлов, их размеры и количество фрагментов. В зависимости от степени фрагментации инструмент порекомендует вам дефрагментировать диск. Затем вы можете нажать «Дефрагментация», чтобы собрать файлы нефрагментированным образом. Выполнение этой операции может занять довольно много времени, но может существенно повлиять на производительность вашего диска.

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

Фрагментация в Unix

Большинство современных файловых систем Unix пытаются свести к минимуму фрагментацию, хотя делают это разными способами. Файловые системы ufs, используемые Solaris и почти всеми вариантами BSD Unix, пытаются свести фрагментацию к минимуму, записывая связанные блоки данных в одну и ту же группу цилиндров. Это сокращает время поиска при доступе к файлам. И хотя большой размер блока используется для повышения пропускной способности, меньшая единица хранения, называемая фрагментом, используется для хранения частей файлов, которым не требуется полный блок. Это уменьшает неиспользуемое пространство в файловой системе и одну из разновидностей фрагментации, иногда называемую «внутренней фрагментацией».

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

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

Дефрагментация

Хотя маловероятно, что во многих системах Unix уровень фрагментации превысит 5 %, полезно знать, что можно сделать для дефрагментации файловой системы, если и когда вы столкнетесь с такой ситуацией. Классический метод заключается в резервном копировании файловой системы с помощью такой программы, как dump или ufsdump, перестроении файловой системы с помощью такой команды, как newfs или mkfs, а затем перезагрузке файловой системы из резервной копии. В большой файловой системе эта операция может занять несколько часов.

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

Эта статья "Совет Unix: Фрагментация и файловые системы Unix" была первоначально опубликована ITworld.

Сандра Генри-Стокер занимается администрированием систем Unix более 30 лет. Она описывает себя как «USL» (Unix как второй язык), но помнит достаточно английского, чтобы писать книги и покупать продукты. Она живет в горах в Вирджинии, где, когда не работает с Unix и не пишет о ней, отгоняет медведей от своих кормушек для птиц.

Файловые системы: IBM General Parallel File System (GPFS)

GPFS состоит из 120 петабайт информации, хранящейся на 200 000 жестких дисках.

Небольшие диски используются для снижения затрат и увеличения параллелизма.

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

Методы, чтобы заставить это работать:

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

Определение файловой системы:

Абстрактная организация данных во вторичном хранилище (обычно медленном, большом, постоянном).

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

Файловая система Пола Эггерта

В 1974 году профессор Эггерта сказал ему: "Пол, я хочу, чтобы вы создали файловую систему для моего конкурента UNIX". В то время он ничего не знал об операционных системах, потому что не было классов ОС.

Ограничения на оборудование в старые времена:

  • 16 килобайт оперативной памяти
  • Диск объемом 700 ГБ
  • Сектор 512 байт

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

  1. Имя
  2. Начальный сектор
  3. Размер файла в байтах

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

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

Далее он делает длину имени 8 байт. Если у вас меньше 8 байт, это круто. Просто используйте 0 заполнений (по сути, добавьте кучу нулевых байтов, пока не достигнете 8 байтов, а затем поместите их в таблицу). Если у вас больше 8 байт, вы проиграли.

Теперь у нас изначально 12 байт. В то время Эггерт также использовал 4 секретных байта (которые он мог использовать как метку времени или по какой-то другой причине), поэтому теперь у него всего 16 байтов. Это приводит к 2^5 элементам каталога на сектор, что означает, что файловая система может хранить всего 2^6 файлов.

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

  • Количество файлов ограничено кодом (предположим, вам нужно больше файлов, просто измените общее количество секторов).
  • Внутренняя фрагментация до 511 байт (в среднем 255,5 байт).
  • Внешняя фрагментация
  • Вы должны сообщить ОС, насколько велик файл. (требуется предварительное размещение)

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

  • Простой
  • Последовательный доступ выполняется быстро. (эффективнее читать следующий сектор, а не случайный)

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

Файловая система FAT

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

  • Загрузочный раздел — эта часть сектора никогда не используется
  • Суперблок. Эта часть сектора содержит метаинформацию о файловой системе, такую ​​как используемая версия FAT, размер файла, количество используемых блоков, номер блока корневого каталога и т. д.< /li>

Таблица размещения файлов (F.A.T) — эта часть сектора разбита на 16-битные блоки. Каждый блок будет указывать на следующий блок FAT в файловой системе. В блоке FAT будет число, которое будет что-то представлять.

  • -1: свободный блок
  • 0 : конец файла (последний блок в текущем файле).
  • N : это индекс следующего файлового блока в файле.

ВАЖНОЕ замечание о FAT: поскольку в ней используются указатели, файл не обязательно должен располагаться в смежных блоках памяти. Однако это также неудобно, потому что принцип работы FAT заключается в том, что ему нужен указатель на следующий блок размером 4 байта. Это создает размер блока данных 512 байтов - 4 байта, который больше не является степенью двойки, что создает проблемы с выравниванием данных. FAT по-прежнему имеет внутреннюю фрагментацию — процесс не использует все данные в заданном секторе и не может быть использован другими процессами (расточительная трата данных).

Как FAT представляет каталоги?

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

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

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

По умолчанию Windows Vista и Windows 7 дефрагментируют жесткий диск в 1:00 ночи. каждую среду. Если компьютер в это время выключен, дефрагментация начнется вскоре после следующей загрузки компьютера. В идеале дефрагментация должна выполняться, когда компьютер не используется, что сводит к минимуму влияние на производительность. Однако воздействие на пользователя минимально, поскольку дефрагментатор использует как низкий приоритет ЦП, так и низкоприоритетный ввод-вывод (I/O).

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

Улучшения алгоритма дефрагментации

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

Фрагментация снижает производительность диска, но наличие нескольких фрагментов в большом файле не имеет значения — даже годы чтения и записи большого файла с одним фрагментом никогда не составят значительного количества времени. По этой причине Microsoft изменила алгоритм дефрагментации, чтобы он не дефрагментировал файл, если размер сегмента превышал 64 МБ. В таких обстоятельствах относительно значительные усилия, необходимые для переупорядочения файлов только для объединения двух 64-мегабайтных фрагментов, не стоят затраченных усилий, поэтому Windows не беспокоится об этом.

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

  1. Нажмите «Пуск», а затем «Компьютер».
  2. Щелкните правой кнопкой мыши диск и выберите "Свойства".
  3. Перейдите на вкладку "Инструменты" и нажмите "Дефрагментировать сейчас". Появится программа дефрагментации диска.
  4. В диалоговом окне "Дефрагментация диска" нажмите "Дефрагментация диска", чтобы начать дефрагментацию.

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

Люди, которые сталкивались с неудачным опытом работы с дисками Windows, которые плохо работали после того, как они стали очень фрагментированными, часто задаются вопросом, нужно ли им применять какой-либо периодический анализ и дефрагментацию в своих системах Unix при переходе на роль администратора или пользователя Unix. По большей части ответ отрицательный. Большинство файловых систем Unix не становятся фрагментированными, как файловые системы FAT и NTFS. Но вместо того, чтобы давать быстрый ответ «да/нет», давайте посмотрим, что такое фрагментация, и почему файловые системы Unix не так подвержены фрагментации, как их собратья Windows, и что вам нужно делать, когда файловая система Unix фрагментирована.< /p>

Что вызывает фрагментацию?

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

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

Фрагментация в Windows

Чтобы увидеть фрагментацию в системе Windows 2000, откройте Программы -> Стандартные -> Системные инструменты -> Дефрагментация диска. Затем нажмите кнопку «Анализ». Это вызовет графическое отображение, в котором области диска, содержащие фрагментированные файлы, показаны красным цветом и, опционально (например, если вы нажмете «Просмотреть отчет»), список фрагментированных файлов, их размеры и количество фрагментов. В зависимости от степени фрагментации инструмент порекомендует вам дефрагментировать диск. Затем вы можете нажать «Дефрагментация», чтобы собрать файлы нефрагментированным образом. Выполнение этой операции может занять довольно много времени, но может существенно повлиять на производительность вашего диска.

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

Фрагментация в Unix

Большинство современных файловых систем Unix пытаются свести к минимуму фрагментацию, хотя делают это разными способами. Файловые системы ufs, используемые Solaris и почти всеми вариантами BSD Unix, пытаются свести фрагментацию к минимуму, записывая связанные блоки данных в одну и ту же группу цилиндров. Это сокращает время поиска при доступе к файлам. И хотя большой размер блока используется для повышения пропускной способности, меньшая единица хранения, называемая фрагментом, используется для хранения частей файлов, которым не требуется полный блок. Это уменьшает неиспользуемое пространство в файловой системе и одну из разновидностей фрагментации, иногда называемую «внутренней фрагментацией».

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

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

Дефрагментация

Хотя маловероятно, что во многих системах Unix уровень фрагментации превысит 5 %, полезно знать, что можно сделать для дефрагментации файловой системы, если и когда вы столкнетесь с такой ситуацией. Классический метод заключается в резервном копировании файловой системы с помощью такой программы, как dump или ufsdump, перестроении файловой системы с помощью такой команды, как newfs или mkfs, а затем перезагрузке файловой системы из резервной копии. В большой файловой системе эта операция может занять несколько часов.

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

Эта статья "Совет Unix: Фрагментация и файловые системы Unix" была первоначально опубликована ITworld.

Сандра Генри-Стокер занимается администрированием систем Unix более 30 лет. Она описывает себя как «USL» (Unix как второй язык), но помнит достаточно английского, чтобы писать книги и покупать продукты. Она живет в горах в Вирджинии, где, когда не работает с Unix и не пишет о ней, отгоняет медведей от своих кормушек для птиц.

Дефрагментация, также известная как "дефрагментация" или "дефрагментация", – это процесс реорганизации данных, хранящихся на жестком диске, таким образом, чтобы связанные фрагменты данных снова объединялись и выстраивались в непрерывном порядке.

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

Дефрагментация повышает производительность компьютера.

Современная дефрагментация

Самая популярная «дефрагментация диска» всех времен — Diskeeper. Вы просто устанавливаете Diskeeper ®, и в течение нескольких минут системы Windows восстанавливаются до полной производительности (фактически быстрее, чем новая!) и остаются такими на неопределенный срок.

С твердотельными накопителями, виртуализацией и переходом в облако проблемы с производительностью по-прежнему преследовали системы Windows, поэтому родились родственные программные решения Diskeeper: SSDkeeper® и V-locity®.

Чтобы еще больше повысить производительность самых современных компьютерных систем, компания Condusiv разработала программное обеспечение для быстрой обработки данных DymaxIO™, которое автоматически определяет и адаптируется к операционной среде для неизменно высокой производительности Windows.

Как происходит фрагментация

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

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

Как устранить фрагментацию

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

Самый лучший и самый современный способ устранить фрагментацию — это ее ПРЕДОТВРАТИТЬ.

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

Как определить, есть ли у вас проблема с фрагментацией

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

Самым слабым звеном в производительности компьютера является диск. Он как минимум в 100 000 раз медленнее оперативной памяти и более чем в 2 миллиона раз медленнее процессора. С точки зрения производительности компьютера диск является основным узким местом.

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

Оцените эти списки проблем с компьютером, чтобы определить, страдает ли ваш компьютер от фрагментации:

Проблемы с производительностью, связанные с фрагментацией:

Приложения зависают или медленно реагируют

Медленное время резервного копирования — даже не удается завершить его в окне резервного копирования

Ненужная активность ввода-вывода на серверах SQL или медленные запросы SQL

Медленная загрузка

Увеличение времени на каждую операцию ввода-вывода или ненужную операцию ввода-вывода

Неэффективное кэширование диска

Замедление чтения и записи файлов

Высокая перегрузка диска (постоянная запись и перезапись небольших объемов данных)

Длительное сканирование на вирусы

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

Проблемы надежности, связанные с фрагментацией:

Приложения зависают или медленно реагируют

Медленное время резервного копирования — даже не удается завершить его в окне резервного копирования

Ненужная активность ввода-вывода на серверах SQL или медленные запросы SQL

Медленная загрузка

Увеличение времени на каждую операцию ввода-вывода или ненужную операцию ввода-вывода

Неэффективное кэширование диска

Замедление чтения и записи файлов

Высокая перегрузка диска (постоянная запись и перезапись небольших объемов данных)

Длительное сканирование на вирусы

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

Примечание о фрагментации и твердотельных накопителях

Производительность SSD может со временем снижаться. Снижение производительности записи на твердотельных накопителях происходит из-за фрагментации свободного пространства. Прочтите о коэффициенте усиления записи (WAF) в разделе Деградируют ли твердотельные накопители со временем?

21 Повышение производительности и надежности Можно ли ожидать от устранения фрагментации:

Повышение производительности приложения

Уменьшено время ожидания и сбои

Более высокая скорость передачи данных

Увеличенный жизненный цикл оборудования

Увеличенная плотность ВМ

В целом более высокая скорость сервера и ПК

Быстрая загрузка

Ускоренное антивирусное сканирование

Более высокая скорость работы в Интернете

Ускоренное чтение и запись

Отчеты будут выполняться очень быстро

Повышена стабильность системы

Уменьшено замедление, зависания и сбои ПК

Уменьшение ненужной активности ввода-вывода

Уменьшено повреждение файлов и потеря данных

Снижение энергопотребления и затрат на электроэнергию

Снижение затрат на облачные вычисления

Намного быстрее SQL-запросы

Производительность и фрагментация SQL Server

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

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

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

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

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

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

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

Обзор программного обеспечения, Брэд М. Макгихи

Снижение производительности SQL никогда не прекращается.

Если ваш SQL Server использует большое количество транзакций, в основном с операциями INSERT, UPDATE и DELETES, фрагментация физического диска не является проблемой, поскольку считывается мало страниц данных, а объем операций записи невелик.

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

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

SAN, NAS, RAID, ALL-FLASH и фрагментация

Предотвращение фрагментации обеспечивает значительные преимущества при реализации на сложных современных аппаратных технологиях, таких как RAID, NAS и SAN, а также на флэш-дисках. Сети SAN, устройства NAS, корпоративные серверы и даже высокопроизводительные рабочие станции и настольные компьютеры, ориентированные на мультимедиа, обычно реализуют несколько физических дисков в той или иной форме отказоустойчивого чередования дисков (RAID). Поскольку целью отказоустойчивого чередования дисков является обеспечение избыточности, а также повышение производительности диска за счет разделения нагрузки ввода-вывода, распространено заблуждение, что фрагментация не оказывает негативного влияния. Также важно отметить, что интерфейс; EIDE, SCSI, SATA, i-SCSI, Fibre Channel и т. д. не влияют на актуальность дефрагментации.

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

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

Поскольку целью отказоустойчивого чередования дисков является обеспечение избыточности, а также повышение производительности диска за счет распределения нагрузки ввода-вывода, распространено заблуждение, что фрагментация не оказывает негативного влияния. Также важно отметить, что интерфейс; EIDE, SCSI, SATA, i-SCSI, Fibre Channel и т. д. не влияют на актуальность дефрагментации.

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

Драйвер файловой системы NTFS.sys управляет логическим расположением (на что влияют операционная система и программа дефрагментации). Фактическая «запись» затем передается отказоустойчивому драйверу устройства (аппаратному или программному RAID), который затем, в соответствии со своими процедурами, обрабатывает размещение файлов и генерирует информацию о четности, наконец, передавая данные драйверу дискового устройства. (предоставляется производителем накопителя).

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

Наборы полос хорошо работают в следующих средах:

  1. Когда пользователям нужен быстрый доступ к большим базам данных или другим структурам данных.
  2. Хранение образов программ, библиотек DLL или библиотек времени выполнения для быстрой загрузки.
  3. Приложения, использующие асинхронный многопоточный ввод-вывод.

Наборы полос не подходят в следующих ситуациях:

  1. Когда программы запрашивают небольшие объемы последовательно расположенных данных. Например, если программа одновременно запрашивает 8 КБ, может потребоваться восемь отдельных запросов ввода-вывода для чтения или записи всех данных в полосе размером 64 КБ, что не очень удобно для такого механизма хранения.
  2. Когда программы делают синхронные случайные запросы на небольшие объемы данных. Это вызывает узкие места ввода-вывода, поскольку для каждого запроса требуется отдельная операция поиска. 16-разрядные однопоточные программы очень подвержены этой проблеме.

Совершенно очевидно, что RAID может использовать хорошо написанное приложение, использующее преимущества асинхронного многопоточного ввода-вывода. Физические элементы в среде RAID не читаются и не записываются непосредственно приложением. Даже файловая система Windows видит его как один единственный «логический» диск. Этот логический диск имеет нумерацию логического кластера (LCN), как и любой другой том, поддерживаемый в Windows. Когда приложение читает и записывает в эту логическую среду (создавая новые файлы, расширяя существующие, а также удаляя другие), файлы становятся фрагментированными. Из-за этого фрагментация на этом логическом диске будет иметь существенное негативное влияние на производительность. Когда запрос ввода-вывода обрабатывается файловой системой, необходимо проверить ряд атрибутов, что требует ценного системного времени. Если приложению приходится выдавать несколько «ненужных» запросов ввода-вывода, как в случае фрагментации, не только процессор остается загруженным, но и после того, как запрос ввода-вывода был выдан, аппаратное/программное обеспечение RAID должно обработать это и определить, какой физический член направить запрос ввода-вывода. Интеллектуальное кэширование RAID на этом уровне может в разной степени смягчить негативное влияние физической фрагментации, но не устранит накладные расходы, вызванные логической фрагментацией операционной системы.

Чтобы оценить влияние фрагментации на систему RAID, используйте технологии мониторинга производительности, такие как PerfMon, и изучите среднюю длину очереди дисков, количество операций ввода-вывода/сек с разделением и % дискового времени. Дополнительную информацию о настройке производительности диска можно найти в онлайн-ресурсах Microsoft.

Подробнее о производительности SAN.

Как высокопроизводительные решения для хранения данных, основанные на блочных протоколах (например, iSCSI, FC), сети SAN превосходно подходят для оптимизации блочного доступа. SAN работают на уровне хранения под файловой системой операционной системы; обычно NTFS при обсуждении Microsoft Windows®. Это означает, что SAN не знает о фрагментации «файлов» и не может решить эту проблему.

Из-за фрагментации файлов, из-за которой операционная система хоста создает дополнительные ненужные дисковые операции ввода-вывода (больше нагрузки на ЦП и ОЗУ), снижается производительность. В большинстве случаев из-за случайности запросов ввода-вывода из-за фрагментации и одновременных запросов данных блоки, составляющие файл, будут физически разбросаны неравномерными полосами по LUN/совокупности SAN. Это приводит к еще большему снижению производительности.

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

Рис. 1.0. Схема дискового ввода-вывода при переходе от операционной системы к SAN LUN.

Читайте также: