NTFS и FAT: скорость

OSzone.net » Microsoft » Разное » Файловые системы » NTFS и FAT: скорость
Иcточник: Softodrom.ru
Опубликована: 28.01.2005
В этой статье я попытаюсь дать оценку быстродействию файловых систем, используемых в операционных системах Windows 95/98/ME, а также Windows NT/2000. Статья не содержит графиков и результатов тестирований, так как эти результаты слишком сильно зависят от случая, методик тестирования и конкретных систем, и неимеют почти никакой связи с реальным положением дел. В этом материале я вместо этого постараюсь описать общие тенденции и соображения, связанные с производительностью файловых систем. Прочитав данный материал, вы получите информацию для размышлений и сможете сами сделать выводы, понять, какая система будет быстрее в ваших условиях, и почему. Возможно, некоторые факты помогут вам также оптимизировать быстродействие своей машины с точки зрения файловых систем,подскажут какие-то решения, которые приведут к повышению скорости работы всего компьютера. В данном обзоре упоминаются три системы - FAT (далее FAT16), FAT32 и NTFS, так как основной вопрос, стоящий перед пользователями Windows2000 - это выбор между этими вариантами. Я приношу извинение пользователям других файловых систем, но проблема выбора между двумя, внешне совершенно равнозначными, вариантами со всей остротой стоит сейчас только в среде Windows2000. Я надеюсь, всё же, что изложенные соображения покажутся вам любопытными, и вы сможете сделать какие-то выводы и о тех системах, с которыми вам приходится работать.

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

1. Теория

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

Для начала хотелось бы заметить, что любаяфайловая система так или иначе хранит файлы.Доступ к данным файлов - основная инеотъемлемая часть работы с файловойсистемой, и поэтому прежде всего нужносказать пару слов об этом. Любая файловаясистема хранит данные файлов в некихобъемах - секторах, которые используютсяаппаратурой и драйвером как самаямаленькая единица полезной информациидиска. Размер сектора в подавляющем числесовременных систем составляет 512 байт, и всефайловые системы просто читают этуинформацию и передают её без какой либообработки приложениям. Есть ли тут какие-тоисключения? Практически нет. Если файлхранится в сжатом или закодированном виде -как это возможно, к примеру, в системе NTFS - то,конечно, на восстановление или расшифровкуинформации тратится время и ресурсыпроцессора. В остальных случаях чтение изапись самих данных файла осуществляется содинаковой скоростью, какую файловуюсистему вы не использовали бы.

Обратим внимание на основные процессы,осуществляемые системой для доступа кфайлам:

Поиск данных файла

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

На что влияет этот параметр: наскорость навигации по файлу (доступ кпроизвольному фрагменту файла). Любаяработа с большими файлами данных идокументов, если их размер - несколькомегабайт и более. Этот параметр показывает,насколько сильно сама файловая система  страдает от фрагментации файлов.

Вывод: Абсолютный лидер - FAT16, онникогда не заставит систему делать лишниедисковые операции для данной цели. Затемидет NTFS - эта система также не требуетчтения лишней информации, по крайней мере,до того момента, пока файл имеет разумноечисло фрагментов. FAT32 испытывает огромныетрудности, вплоть до чтения лишних сотенкилобайт из области FAT, если файл разбросанпо разным областям диска. Работа свнушительными по размеру файлами на FAT32 влюбом случае сопряжена с огромнымитрудностями - понять, в каком месте на дискерасположен тот или иной фрагмент файла,можно лишь изучив всю последовательностькластеров файла с самого начала,обрабатывая за один раз один кластер (черезкаждые 4 Кбайт файла в типичной системе).Стоит отметить, что если файлфрагментирован, но лежит компактной кучейфрагментов - FAT32 всё же не испытываетбольших трудностей, так как физическийдоступ к области FAT будет также компактен ибуферизован.

Поиск свободного места

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

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

Вывод: NTFS имеет наиболееэффективную систему нахождения свободногоместа. Стоит отметить, что действовать "влоб" на FAT16 или FAT32 очень медленно, поэтомудля нахождения свободного места в этихсистемах применяются различные методыоптимизации, в результате чего и тамдостигается приемлемая скорость. (Одноможно сказать наверняка - поиск свободногоместа при работе в DOS на FAT32 -катастрофический по скорости процесс,поскольку никакая оптимизация невозможнабез поддержки хоть сколь серьезнойоперационной системы).

Работа с каталогами и файлами

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

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

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

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

2. Практика

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

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

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

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

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

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

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

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

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

Подводя краткий итог влияниюбыстродействия диска и контроллера набыстродействия системы в целом, можносказать так: NTFS страдает от медленныхдисков гораздо сильнее, чем FAT.

2.3. Размер кластера

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

2.4. Другие соображения

NTFS является достаточно сложной системой,поэтому, в отличие от FAT16 и FAT32, имеются идругие факторы, которые могут привести ксущественному замедлению работы NTFS:

3. Выводы

В данной заключительной части "однойстрочкой" собраны ключевые особенностибыстродействия этих трех файловых систем.

FAT - плюсы:

FAT - минусы:

NTFS - плюсы:

NTFS - минусы:

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

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

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


Ссылка: http://www.oszone.net/1286/