Безопасность в файловой системе NTFS
Рефераты >> Программирование и компьютеры >> Безопасность в файловой системе NTFS

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

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

2. Практика

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

Объем оперативной памяти (кэширование)

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

  • Данные о физическом местоположении всех открытых файлов. Это, прежде всего, позволит обращаться к системным файлам и библиотекам, доступ к которым идет буквально постоянно, без чтения служебной (не относящейся к самим файлам) информации с диска. Это же относится к тем файлам, которые исполняются в данный момент - т.е. к выполняемым модулям (*.exe и *.dll) активных процессов в системе. В эту категорию попадают также файлы системы, с которыми производится работа (прежде всего реестр, виртуальная память, различные *.ini файлы, а также файлы документов и приложений).
  • Наиболее часто используемые каталоги. К таковым можно отнести рабочий стол, меню "Пуск", системные каталоги, каталоги Интернет КЭШа, и т.п.
  • Данные о свободном дисковом пространстве - т.е. та информация, которая позволит найти место для сохранения на диск новых данных.

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

FAT16 имеет очень мало данных, отвечающих за организацию файловой системы. Из служебных областей можно выделить только саму область FAT, которая не может превышать 128 КБ (!) - эта область отвечает и за поиск фрагментов файлов, и за поиск свободного места на томе. Каталоги системы FAT также очень компактны. Общий объем памяти, необходимый для предельно эффективной работы с FAT-ом, может колебаться от сотни килобайт и до мегабайта-другого - при условии огромного числа и размера каталогов, с которыми ведется работа.

FAT32 отличается от FAT16 лишь тем, что сама область FAT может иметь более внушительные размеры. На томах порядка 5 - 10 ГБ область FAT может занимать объем в несколько мегабайт, и это уже очень внушительный объем, надежно кэшировать который не представляется возможным. Тем не менее, область FAT, а вернее те фрагменты, которые отвечают за местоположение рабочих файлов, в подавляющем большинстве систем находятся в памяти машины - на это расходуется порядка нескольких мегабайт оперативной памяти.

NTFS, к сожалению, имеет большие требования к памяти, необходимой для работы системы. Прежде всего, кэширование сильно затрудняет большие размеры каталогов. Размер одних только каталогов, с которыми активно ведет работу система, может запросто доходить до нескольких мегабайт и даже десятков мегабайт! Добавьте к этому необходимость кэшировать карту свободного места тома (сотни килобайт) и записи MFT для файлов, с которыми осуществляется работа (в типичной системе - по 1 КБ на каждый файл). К счастью, NTFS имеет удачную систему хранения данных, которая не приводит к увеличению каких-либо фиксированных областей при увеличении объема диска. Количество данных, с которым оперирует система на основе NTFS, практически не зависит от объема тома, и основной вклад в объемы данных, которые необходимо кэшировать, вносят каталоги. Тем не менее, уже этого вполне достаточно для того, чтобы только минимальный объем данных, необходимых для кэширования базовых областей NTFS, доходил до 5 - 8 МБ.

К сожалению, можно с уверенностью сказать: NTFS теряет огромное количество своего теоретического быстродействия из-за недостаточного кэширования. На системах, имеющих менее 64 МБ оперативной памяти, NTFS просто не может оказаться быстрее FAT16 или FAT32. Единственное исключение из этого правила - диски FAT32, имеющие объем десятки гигабайт (я бы лично серьезно опасался дисков FAT32 объемом свыше, скажем, 30 ГБ). В остальных же случаях - системы с менее чем 64-я мегабайтами оперативной памяти просто обязаны работать с FAT32 быстрее.

Типичный в настоящее время объем памяти в 64 МБ, к сожалению, также не дает возможности организовать эффективную работу с NTFS. На малых и средних дисках (до 10 ГБ) в типичных системах FAT32 будет работать, пожалуй, немного быстрее. Единственное, что можно сказать по поводу быстродействия систем с таким объемом оперативной памяти - системы, работающие с FAT32, будут гораздо сильнее страдать от фрагментации, чем системы на NTFS. Но если хотя бы изредка дефрагментировать диски, то FAT32, с точки зрения быстродействия, является предпочтительным вариантом. Многие люди, тем не менее, выбирают в таких системах NTFS - просто из-за того, что это даст некоторые довольно важные преимущества, тогда как типичная потеря быстродействия не очень велика.

Системы с более чем 64-я МБ, а особенно - со 128-ю МБ и более оперативной памяти, смогут уверенно кэшировать абсолютно всё, что необходимо для работы систем, и вот как раз на таких то компьютерах NTFS, скорее всего, покажет более высокое быстродействие из-за более продуманной организации данных.

Быстродействие дискового накопителя

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


Страница: