Многим наверняка знакома ситуация, когда вот купил ты себе компьютер, поставил на него новенькую Ось, нужные программки и прочие гадости. И стоит это все и работает прекрасно. И Ось быстро грузится, и программки быстро запускаются, и все просто замечательно. Но проходит сколько-то времени (полгода-год) и былая прыть из вашего чудесного компьютера куда-то улетучивается. И грузится он теперь медленнее, и программки медленнее стартуют, и вааще Многие винят в этом фрагментацию диска (отчасти они правы и дефрагментация иногда улучшает показатели быстродействия), забивание startup’а ненужными программами (тут тоже можно покопаться и отыграть 5-10 секунд на загрузке), замусоривание реестра и прочих важных мест. Все это так, но если вы угробите кучу времени и вычистите все и во всех местах, дефрагментируете все, что только можно дефрагментировать, с очень большой вероятностью вы не получите прежней производительности новенького компьютера. Но стоит диск отформатировать и поставить все с нуля, происходит чудо — все снова летает! Почему?
Самый простой и короткий ответ на вопрос: виной всему NTFS. Точнее не NTFS, а фрагментация MFT, являющейся ключевой структурой в NTFS. Что ж теперь, форматировать все диски в FAT? Так это уже вчерашний день, да и Microsoft активно всем доказывает, что NTFS это хорошо и правильно. На самом деле для админа или продвинутого специалиста вопроса выбора FAT/NTFS вообще не стоит. Однозначно нужно использовать последнюю. Но как же быть, если она подвержена такой напасти?
На самом деле в такой деградации производительности виновата не NTFS, а в первую очередь мы с вами. А все из-за того, что никто не рассказывал нам правил работы с этой файловой системой.
Прежде чем говорить о правилах, давайте сначала разберемся, из-за чего происходит проблема. NTFS, как и многие другие файловые системы, оперирует понятием кластера, который кратен размеру сектора на диске. Размер кластера нам сейчас не сильно важен, важно то, что для хранения информации об отдельно взятом файле нужно хранить не только данные о его имени, размере, времени создания и доступа, правах, но и о том, какие кластеры и в каком порядке он занимает. Вся эта информация хранится в MFT (Master File Table). Данные об одном файле занимают от 1 до 4 КБ. При форматировании диска под MFT сразу резервируется некий кусок диска (находится он в самом начале, т.к. там быстрее всего доступ к данным), называемый MFT Zone. Делается это для того, чтобы MFT занимала последовательную нефрагментированную область диска. По умолчанию размер MFT Zone составляет 12.5% от размера форматируемого раздела. Конечно, MFT не занимает физически все это пространство, просто оно резервируется и отдается под ваши файлы в последнюю очередь.
Все происходит прекрасно и чудесно до тех пор, пока вы не заполните диск на 87.5%. Тогда ОС не остается ничего иного, как начать отдавать «резерв». Размер MFT Zone уменьшается вдвое, освободившееся место отдается файлам. Если этого мало, опять происходит располовинивание зоны и так до тех пор, пока размер MFT Zone не станет равен фактическому размеру MFT, а на диске не останется свободного места. «Ну и что такого?», скажете вы, «дело-то житейское». Вот только обратно MFT Zone восстанавливаться не умеет. Что же произойдет тогда, когда вы освободите занятое место и решите создать (или отредактировать) файлов? Для MFT будет выделен еще один кусок на диске, но уже в том месте, где он есть. Хорошо, конечно, если это будет достаточно большой непрерывный кусок, но чаще всего такого везения не бывает. В результате через годик интенсивной эксплуатации диска MFT становится сильно фрагментированной, а т.к. обращение к ней идет при любой операции с любым файлом, фрагментация приводит к существенному снижению скорости всех файловых операций.
У меня, к примеру, на свежеустановленном ноуте со всем необходимым софтом на диске имеется примерно 360 тыс файлов (MFT занимает около 350 МБ). На рабочем ноуте файлов уже порядка 700 тысяч, а значит MFT кушает уже около 650 МБ. В принципе, это не много, ведь для диска в 256 ГБ под MFT Zone резервируется ни много, ни мало — целых 32 ГБ! Как говорится, куда ж ему столько!
Как бы там ни было, практика показывает, что на интенсивно используемом диске (создается и удаляется много файлов) размер MFT Zone должен быть не менее 2 ГБ, лучше 4 ГБ. Для обычной ситуации хватит и 2 ГБ. Вот это как раз и есть тот размер, который нужно всегда оставлять свободным. Никакого внятного способа установить защиту/блокировку на диск не получится, поэтому контролировать размер пространства придется самостоятельно. И помните, что даже кратковременное сокращение размера свободного пространства будет необратимым. Это правило номер раз. Правило номер два — дефрагментировать диск хотя бы раз в месяц, причем использовать для этого не встроенный дефрагментатор (он не умеет дефрагментировать MFT), а какой-нибудь полноценный.