<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91448</guid>
        <pubDate>Wed, 30 Apr 2003 19:55:30 +0000</pubDate>
        <title>дефрагментация</title>
        <link>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91448</link>
        <description><![CDATA[DEiL: сорри за оффтопик, но я теперь искренне рад, что пересел на reiserfs!]]></description>
        <author>DEiL</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91447</guid>
        <pubDate>Sat, 26 Apr 2003 04:57:46 +0000</pubDate>
        <title>дефрагментация</title>
        <link>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91447</link>
        <description><![CDATA[GrAnd: Если его просто передвигать, то появляются пустые кластеры, которые потом опять чем то заимутся. И опять любезная прога дефрагментации (в винде) будет пытаться дефрагментировать &nbsp;;) &nbsp;<br><br>В самом начале утверждалось, что NTFS не подвержена фрагментации файлов. Это оказалось не совсем так, и утверждение сменили - NTFS препятствует фрагментации. Оказалось, что и это не совсем так. То есть она, конечно, препятствует, но толк от этого близок к нулю... Сейчас уже понятно, что NTFS - система, которая как никакая другая предрасположена к фрагментации, что бы не утверждалось официально. Единственное что - логически она не очень от этого страдает. Все внутренние структуры построены таким образом, что фрагментация не мешает быстро находить фрагменты данных. Но от физического последствия фрагментации - лишних движений головок - она, конечно, не спасает. И поэтому - вперед и с песней...<br><br>NTFS - очень экономная система. Размер кластеров в ней разумно минимален - обычно это 4 кб (на стандартных сейчас дисках в десяток-другой гигабайт). Как известно, система сильнее всего фрагментирует файлы когда свободное место кончается, когда приходится использовать мелкие дырки, оставшиеся от других файлов. Тут возникает первое свойство NTFS, которое прямо способствует серьезной фрагментации.<br> &nbsp; &nbsp;Диск NTFS поделен на две зоны. В начала диска идет MFT зона - зона, куда растет MFT, Master File Table. Зона занимает минимум 12\% диска, и запись данных в эту зону невозможна. Это сделано для того, чтобы не фрагментировался хотя бы MFT. Но когда весь остальной диск заполняется - зона сокращается ровно в два раза :). И так далее. Таким образом мы имеем не один заход окончания диска, а несколько. В результате если NTFS работает при диске, заполненном на около 90\% - фрагментация растет как бешенная. <br><br>Попутное следствие - диск, заполненный более чем на 88\%, дефрагментировать почти невозможно - даже API дефрагментации не может перемещать данные в MFT зону. Может оказаться так, что у нас не будет свободного места для маневра. <br> &nbsp; &nbsp;Далее. NTFS работает себе и работает, и всё таки фрагментируется. Этому способствует странный алгоритм нахождения свободного места - второе серьезное упущение. Если файл пишется большими кусками - всё нормально. Но если файл медленно растет - алгоритм такой: берется какой-то определенный объем диска и заполняется файлом до упора. Причем по очень интересному алгоритму: сначала заполняются большие дырки, потом маленькие. Т.е. типичное распределение фрагментов файла по размеру на фрагментированной NTFS выглядит так (размеры фрагментов):<br> &nbsp; &nbsp;16 - 16 - 16 - 16 - 16 - [скачек назад] - 15 - 15 - 15 - [назад] - 14 - 14 - 14 .... 1 - 1 - 1 -1 - 1...<br> &nbsp; &nbsp;Так процесс идет до самых мелких дырок в 1 кластер, несмотря на то, что на диске наверняка есть и гораздо более большие куски свободного места.<br><br> &nbsp; &nbsp;Может быть я забыл написать что-то еще... Смысл в том, что никак нельзя сказать, что NTFS препятствует фрагментации файлов. Наоборот, она с радостью их фрагментирует. Фрагментация NTFS через пол года работы доведет до искреннего удивления любого человека, знакомого с работой файловой системой. Поэтому приходится запускать дефрагментатор. Но на этом все наши проблемы не заканчиваются, а, увы, только начинаются...<br><br>В NT существует стандартное API дефрагментации. Обладающее интересным ограничением для перемещения блоков файлов: за один раз можно перемещать не менее 16 кластеров (!), причем начинаться эти кластеры должны с позиции, кратной 16 кластерам в файле. В общем, операция осуществляется исключительно по 16 кластеров. Следствия:<br><br>В дырку свободного места менее 16 кластеров нельзя ничего переместить (кроме сжатых файлов, но это тонкости). <br>Файл, будучи перемещенный в друге место, оставляет после себя (на новом месте) &quot;временно занятое место&quot;, дополняющее его по размеру до кратности 16 кластерам. <br>При попытке как-то неправильно (&quot;не кратно 16&quot;) переместить файл результат часто непредсказуем. Что-то округляется, что-то просто не перемещается.. Тем не менее, всё место действия щедро рассыпается &quot;временно занятым местом&quot;. Наверное о нас заботятся, чтобы мы отстали от этого места - чтобы алгоритм дефрагментации не клинило. :) <br>&quot;Временно занятое место&quot; освобождается через некоторое время, обычно где-то пол минуты. &nbsp;<br> &nbsp; &nbsp;Тем не менее, логично было бы использовать это API. Его и используют. Поэтому процесс стандартной дефрагментации, с поправками на ограниченность API, идет следующими фазами, не обязательно в этом порядке:<br><br>Вынимание файлов из MFT зоны. Не специально - просто обратно туда их положить не представляется возможным &nbsp;Безобидная фаза, и даже в чем то полезная. <br>Дефрагментация файлов. Безусловно полезный процесс, несколько правда осложняемый ограничениями кратности перемещений - файлы часто приходится перекладывать сильнее, чем это было бы логично сделать по уму. <br>Дефрагментация MFT, виртуалки (pagefile.sys) и каталогов. Возможна через API только в Windows2000, иначе - при перезагрузке, отдельным процессом, как в Diskeeper-е. <br>Складывание файлов ближе к началу - так называемая дефрагментация свободного места. Вот это - воистину страшный процесс... <br> &nbsp; &nbsp;Допустим, мы хотим положить файлы подряд в начало диска. Кладем один файл. Он оставляет хвост занятости дополнения до кратности 16. Кладем следующий - после хвоста, естественно. Через некоторое время, по освобождению хвоста, имеем дырку &lt;16 кластеров размером. Которую потом невозможно заполнить через API дефрагментации! В результате, до оптимизации картина свободного места выглядела так: много дырок примерно одинакового размера. После оптимизации - одна дыра в конце диска, и много маленьких &lt;16 кластеров дырок в заполненном файлами участке. Какие места в первую очередь заполняются? Правильно, находящиеся ближе к началу диска мелкие дырки &lt;16 кластеров... Любой файл, плавно созданный на прооптимизированном диске, будет состоять из дикого числа фрагментов. Да, диск потом можно оптимизировать снова. А потом еще раз.. и еще.. и так - желательно каждую неделю. Бред? Реальность.<br><br> &nbsp; &nbsp;Таким образом, имеется два примерно равнозначных варианта. Первый - часто оптимизировать диск таким дефрагментатором, смиряясь при этом с дикой фрагментацией заново созданных файлов. Второй вариант - вообще ничего не трогать, и смириться с равномерной, но гораздо более слабой фрагментацией всех файлов на диске.<br><br>Пока есть один дефрагментатор, который игнорирует API дефрагментации и работает как-то более напрямую - Norton Speeddisk 5.0 для NT. Когда его пытаются сравнить со всеми остальными - Diskeeper, O&amp;O defrag, т.д. - не упоминают этого главного, самого принципиального, отличия. Просто потому, что эта проблема тщательно скрывается, по крайней мере уж точно не афишируется на каждом шагу. Speeddisk - единственная на сегодняшний день программа, которая может оптимизировать диск полностью, не создавая маленьких незаполненных фрагментов свободного места. Стоит добавить также, что стандартное API не может дефрагментировать тома NTFS с кластером более 4 Кбайт - а SpeedDisk, по прежнему, может.<br><br>К сожалению, в Windows 2000 засунули дефрагментатор, который работает через API, и соответственно плодит дырки &lt;16 кластеров. Так что как только появится (если уже не появился) - так сразу надо качать Speeddisk для W2k. Как некоторый вывод из всего этого - все остальные дефрагментаторы при одноразовом применении просто вредны. Если вы запускали его хоть раз - нужно запускать его потом хотя бы раз в месяц, чтобы избавится от фрагментации новоприбывающих файлов. В этом основная суть сложности дефрагментации NTFS теми средствами, которые сложились исторически.<br><br> &nbsp;<br>]]></description>
        <author>GrAnd</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91446</guid>
        <pubDate>Fri, 25 Apr 2003 10:36:34 +0000</pubDate>
        <title>дефрагментация</title>
        <link>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91446</link>
        <description><![CDATA[rodion: А что его просто передвинуть слабо, места до фига<br>А если файл большой но слабо фрагментирован то что?]]></description>
        <author>rodion</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91445</guid>
        <pubDate>Thu, 24 Apr 2003 06:33:27 +0000</pubDate>
        <title>дефрагментация</title>
        <link>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91445</link>
        <description><![CDATA[GrAnd: ну здесь есть косяк MS. Дело в том, что файлы занимают определенные сектора на диске. И при дефрагментации происходит постоянная перемна секторов для каждого файла. Некоторые файлы могут быть разбросаны по диску в нескольких сотнях секторов <br>и цепочки секторов файлов пересекаются. И здесь при дефрагментации встает такой вопрос, либо расположить сектора нужные файлые более близко при этом перелопатив добрую кучу других файлов, либо оставить этот файл не дефрагиентированным. (попробуй разбери модель ДНК &quot;по цветам&quot; составляющих). <br>некоторые программы &quot;перебивают&quot; файловую структуру диска полностью например проги от Ontrack. но там и дефрагментация может идти &nbsp;сутками]]></description>
        <author>GrAnd</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91444</guid>
        <pubDate>Thu, 24 Apr 2003 05:36:41 +0000</pubDate>
        <title>дефрагментация</title>
        <link>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91444</link>
        <description><![CDATA[rodion: Случаи когда файл остается не дефрагментированным]]></description>
        <author>rodion</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91443</guid>
        <pubDate>Thu, 24 Apr 2003 04:34:51 +0000</pubDate>
        <title>дефрагментация</title>
        <link>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91443</link>
        <description><![CDATA[GrAnd: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>rodion, 22.04.03, 19:48:12</span><div class='quote '>Ну он и прос не очень то нагружает, в среднем на 50\% но это все про миксофсотский вариант<br>А вот почему он неможет дефрагментировать файл размером 50 кило когда свободны гиги я не в ежаю </div></div><br>В смысле??? Не понял???]]></description>
        <author>GrAnd</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91441</guid>
        <pubDate>Tue, 22 Apr 2003 15:48:12 +0000</pubDate>
        <title>дефрагментация</title>
        <link>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91441</link>
        <description><![CDATA[rodion: Ну он и прос не очень то нагружает, в среднем на 50\% но это все про миксофсотский вариант<br>А вот почему он неможет дефрагментировать файл размером 50 кило когда свободны гиги я не в ежаю]]></description>
        <author>rodion</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91440</guid>
        <pubDate>Wed, 16 Apr 2003 16:37:50 +0000</pubDate>
        <title>дефрагментация</title>
        <link>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91440</link>
        <description><![CDATA[GrAnd: Она надежна в смысле &quot;упаковки&quot; данных и организации доступа. Но <br>при забивке диска процентов на 90 происходит &quot;сокращение&quot; области MFT и появляется бешенная фрагментация файлов.]]></description>
        <author>GrAnd</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91439</guid>
        <pubDate>Wed, 16 Apr 2003 13:26:34 +0000</pubDate>
        <title>дефрагментация</title>
        <link>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91439</link>
        <description><![CDATA[majestic: мммм.... да...<br>NTFS считается вроде одной из надежнейших ф. систем<br>почему же диски с NTFS не желательно набивать &quot;под завязку&quot; ???]]></description>
        <author>majestic</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91438</guid>
        <pubDate>Wed, 16 Apr 2003 08:02:51 +0000</pubDate>
        <title>дефрагментация</title>
        <link>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91438</link>
        <description><![CDATA[GrAnd: В том то и дело, что я говорил про буфер в памяти. А винт дефрагментация использует дай боже как, особенно для NTFS, где под MFT выделяется чуть ли не пятая часть всего винта. Обычно винда просит 15\% из за того, что максимальная длина файла может быть 4 гига (Как-то это завязано с этим, если найду-продробно объясню).<br>Кстати диски с NTFS не желательно набивать &quot;под завязку&quot;]]></description>
        <author>GrAnd</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91437</guid>
        <pubDate>Wed, 16 Apr 2003 06:17:59 +0000</pubDate>
        <title>дефрагментация</title>
        <link>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91437</link>
        <description><![CDATA[S.Yu.Gubanov: А почему Windows XP соглашается дефрагментировать жесткий диск только в том случае если на нем есть свободного места не менее 15\%? (По крайней мере, я такое сообщение два раза видел для диска в 12ГБ).]]></description>
        <author>S.Yu.Gubanov</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91436</guid>
        <pubDate>Wed, 16 Apr 2003 04:03:05 +0000</pubDate>
        <title>дефрагментация</title>
        <link>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91436</link>
        <description><![CDATA[GrAnd: Дело в том, что многие программы дефрагментации работают по принципу по-секторного считывания данных. &nbsp;И считывание происходит не всего файла, а то лько тех кластеров котрые необходимо &quot;дефрагментировать&quot; обычно это записывается в буфер размером не более 4-8 мБ. Поэтому памяти много и не надо, хато &nbsp;отнимаетося много процессорного времени<br><br>]]></description>
        <author>GrAnd</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91435</guid>
        <pubDate>Tue, 15 Apr 2003 15:17:25 +0000</pubDate>
        <title>дефрагментация</title>
        <link>https://forum.sources.ru/index.php?showtopic=9396&amp;view=findpost&amp;p=91435</link>
        <description><![CDATA[rodion: Почему при дефрагментации используетя мало памяти]]></description>
        <author>rodion</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	