фрагментация NTFS
В началото, той твърди, че NTFS не е изложена на файл фрагментация. Това не беше съвсем вярно и твърдението променило - NTFS предотвратява фрагментиране. Оказа се, че това не е вярно. Това означава, че това е, разбира се, да се предотврати, но усещането за нея е близо до нула ... Вече е ясно, че NTFS - една система, която е като никой друг е склонна към фрагментиране, което не би официално заявени. Единственото нещо, което - логично наистина не страда от това. Всички вътрешни структури са изградени по начин, който не пречи на фрагментация бързо да намерите фрагменти от данни. Но от физическите ефекти от фрагментация - допълнителни движения на главата - разбира се, че не помага. И така - напред към песента ...
NTFS - много икономичен система. размер на клъстера го разумно минимално - обикновено 4 KB (дискове към стандартите, които сега са в една дузина или два гигабайта). Както е известно, системата голямата част от всички фрагменти файлове, когато свободното пространство е свършила, когато трябва да се използват малки дупки, останали от други файлове. Тук е първата NTFS имота, който пряко се насърчават сериозна фрагментация.
NTFS устройство е разделена на две зони. В началото на диска е MFT зона - зона, която се разраства MFT, основно досие на маса. Зона отнема минимум 12% от диска и записването на данни в тази област е невъзможно. Това се прави с цел да бъде фрагментирана, дори ако MFT. Но когато останалата част от диска е пълен - зоната се намалява точно два пъти :). И така нататък. Така че ние не разполагат с едно спиране диск, за да завършите някои от тях. В резултат на това, ако NTFS Диск работи, когато е напълнен с около 90% - фрагментация расте като луд.
Качи се в резултат - диска попълнено повече от 88%, дефрагментира почти невъзможно - дори и дефрагментиране API не могат да се движат данните в зоната на MFT. То може да бъде, че ние нямаме място за маневриране.
Напред. NTFS работи в момента и се изпълняват и всички все още фрагментарни. Това е улеснено от странното алгоритъм за намиране на свободно място - вторият сериозен пропуск. Ако файлът е написан на големи парчета - всичко е наред. Но ако файлът расте бавно - алгоритъмът е: предприемането на определен обем от диска и файлът се напълни до спирка. И един много интересен алгоритъм: първо големи пукнатини, след това малки. Т.е. типично разпределение на размера на фрагмент от фрагментирана NTFS файл изглежда така (фрагмент размери):
16 - 16 - 16 - 16 - 16 - [състезания преди] - 15 - 15 - 15 - [обратно] - 14 - 14 - 14 .... 1 - 1 - 1 1 - 1 ...
Така че процесът отива към най-малките дупки в един клъстер, въпреки факта, че диска със сигурност има много по-големи парчета от космоса.
Може би съм забравил да напиша нещо друго ... което означава, че не може да се каже, че NTFS предотвратява фрагментиране на файлове. Напротив, тя с радост парчетата им. Фрагментация NTFS след половин година на работа ще доведе до истинска изненада всеки, запознат с операцията на файловата система. Поради това е необходимо, за да изпълните дефрагментиране. Но това е на всички наши проблеми не свършват там, но, уви, е само началото ...
В Новия Завет има стандарт дефрагментиране API. Тя има интересна ограничение да се движат блокове файлове: (!) В даден момент може да бъде преместен на поне 16 клъстери, както и тези групи трябва да се започват от позиция, която е кратно на 16 клъстери във файла. В общи линии, операцията се извършва изключително на 16 клъстери. Последици:
- Пространството на дупка по-малко от 16 клъстери не може да се движи нещо (различно от компресирани файлове, но това финес).
- Файл бъдат преместени на друго място, оставяйки зад себе си (в новото място), "временно заети пространство" допълването му размер в кратни на 16 клъстери.
- Когато се опитате да някак погрешно ( "не е кратно на 16"), за да преместите файла резултатът често е непредсказуем. Нещо е заоблен, нещо, което просто не се движи. Независимо от това, всички на сцената щедро разпилява "временно място на работа." Вероятно се грижи за нас, така че ние избягал от това място - за дефрагментиране алгоритъм не клин. )
- "Временно заети пространство" се освобождава след известно време, обикновено някъде по половин минута. Gee.
Независимо от това, би било логично да се използва тази API. И го използва. Затова стандартния процес дефрагментиране с корекции за ограничения на API, следните фази са, а не непременно в този ред:
Да предположим, че искате да поставите файловете в един ред в началото на диска. Сложете един файл. Той оставя допълнения на опашка за заетост на многото 16. Поставете следващата - след опашката, разбира се. След известно време, освобождението на опашката, да има отвор <16 кластеров размером. Которую потом невозможно заполнить через API дефрагментации! В результате, до оптимизации картина свободного места выглядела так: много дырок примерно одинакового размера. После оптимизации — одна дыра в конце диска, и много маленьких <16 кластеров дырок в заполненном файлами участке. Какие места в первую очередь заполняются? Правильно, находящиеся ближе к началу диска мелкие дырки <16 кластеров… Любой файл, плавно созданный на прооптимизированном диске, будет состоять из дикого числа фрагментов. Да, диск потом можно оптимизировать снова. А потом еще раз. и еще. и так — желательно каждую неделю. Бред? Реальность.
По този начин, има две приблизително еквивалентен вариант. Първият - често се оптимизира дефрагментиране на диск, така, смиряване в същото време с див фрагментация Пресъздадените файлове. Вторият вариант - не пипай нищо, а да приемат униформата, но много по-слаба фрагментацията на файловете на диска.
Въпреки че има дефрагментатор, който игнорира API дефрагментиране и работи като нещо по-директно - Norton Speeddisk 5.0 за NT. Когато се опитвате да я сравни с останалите - Diskeeper, OO измамвам, и т.н. - не се споменава за шеф, най-основното, разликите. Просто, защото този проблем не се проявява, поне със сигурност не се рекламира на всяка крачка. Speeddisk - само днес една програма, която може да се оптимизира целия диск, без да създават малки парчета празно място. Струва си да добавяте също така, че стандартната API не може да дефрагментира обеми NTFS с група от повече от 4 килобайта - и SpeedDisk, все още може.