Как сжатие NTFS влияет на производительность?

57

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

Примечания:

  • Я использую ноутбук с жестким диском на 5400 об / мин, и многие вещи, которые я делаю на нем, связаны с вводом / выводом.
  • Процессор AMD Phenom II с четырьмя ядрами, работающими на частоте 2,0 ГГц.
  • Система регулярно дефрагментируется с использованием UltraDefrag .
  • Рабочая нагрузка является смешанной для чтения и записи, причем чтение происходит несколько чаще, чем запись.
  • Сжатые файлы включают в себя выбранное подмножество личных документов (не полную домашнюю папку) и программ, в том числе несколько (менее требовательных) игр и Visual Studio (которая, как правило, связана с вводом / выводом чаще, чем нет).
bwDraco
источник
12
Я думаю, что единственный правильный ответ - «измерить это в вашей системе».
Мердад
Я думаю, что это должно остаться общим вопросом. Процессор быстрее, чем память. В наше время. Давайте предположим, что. О спектакле? Понятия не имею, но мне тоже любопытно.
Apache
1
Что это за система? сколько ядер у вас есть? Если вы интенсивно используете процессор, у вас будет немного больше процессора по сравнению со скоростью жесткого диска для операций, которые вы собираетесь выполнять? Влияние на энергопотребление и темп. Сжимаемость данных. сколько читать, а сколько писать? Сжатие с самого начала происходит медленно, но чтение его обратно (в зависимости от ситуации) должно быть быстрее благодаря легко измеримым количествам.
Psycogeek
Связанные (но с немного другими обстоятельствами; специфичные для папки с множеством значков): superuser.com/questions/38605/…
bwDraco
1
Кстати, одна вещь, которую вы можете попробовать, это дефрагментация. Я слышал чудеса об UltimateDefrag, но я никогда не пробовал это до сих пор. (Среди Diskeeper и PerfectDisk я использую последний, поскольку Diskeeper прекратил выпускать новые версии и т. Д.)
Apache

Ответы:

36

Я слышал, что сжатие NTFS может снизить производительность из-за дополнительной загрузки ЦП, но я читал отчеты о том, что оно может фактически повысить производительность из-за уменьшения чтения с диска.

Верный. Предполагая, что ваш процессор, используя некоторый алгоритм сжатия, может сжимать со скоростью C MB / s и распаковывать со скоростью D MB / s, а ваш жесткий диск имеет скорость записи W и скорость чтения R. Пока C> W, вы получаете выигрыш в производительности, когда писать, и пока D> R, вы получаете прирост производительности при чтении. Это резкое предположение в случае записи, поскольку алгоритм Лемпеля-Зива (реализованный в программном обеспечении) имеет недетерминированную степень сжатия (хотя его можно ограничить ограниченным размером словаря).

Как именно сжатие NTFS влияет на производительность системы?

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

Это может быть связано с тем, что алгоритм Лемпеля-Зива замедляется по мере продолжения сжатия (поскольку словарь продолжает расти, требуя дополнительных сравнений по мере поступления битов). Декомпрессия почти всегда одинакова, независимо от размера файла, в алгоритме Лемпеля-Зива (поскольку к словарю можно обращаться только по схеме base + offset).

Сжатие также влияет на расположение файлов на диске . По умолчанию один «блок сжатия» в 16 раз больше размера кластера (поэтому большинству файловых систем NTFS кластера размером 4 КБ для хранения файлов требуется 64 КБ), но он не увеличивается больше 64 КБ. Однако это может повлиять на фрагментацию и требования к месту на диске.

И последнее замечание: задержка - еще одна интересная ценность обсуждения. Хотя фактическое время, необходимое для сжатия данных, приводит к задержке, когда тактовая частота процессора составляет гигагерц (т. Е. Каждый тактовый цикл меньше 1 нс), введенная задержка незначительна по сравнению с частотой поиска жесткого диска (которая находится на порядка миллисекунд или миллионов тактов).


Чтобы действительно увидеть, наберете ли вы скорость, есть несколько вещей, которые вы можете попробовать. Во-первых, для сравнения вашей системы с помощью алгоритма сжатия / распаковки на основе Lempel-Ziv. Если вы получите хорошие результаты (например, C> W и D> R), попробуйте включить сжатие на вашем диске.

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

TL, DR: сжатие может быть жизнеспособным для файловой системы, использующей много небольших файлов, требующих высокой пропускной способности и низкой задержки. Большие файлы (и должны быть) не затронуты из-за проблем с производительностью и задержкой.

Прорвать
источник
Можете ли вы связать какие-либо хорошие тесты на основе алгоритма сжатия / декомпрессии на основе Lempel-Ziv?
user1075375
Фрагментация, создаваемая сжатием NTFS (и добавляемая при изменении файла), легко устранит любое увеличение производительности. Если у вас есть очень сжимаемый набор данных, который не будет часто изменяться, и вы будете дефрагментировать после сжатия, это может быть чистым выигрышем. Модификация после сжатия вызовет неприятную фрагментацию. Re: отметки: даже медленные процессоры сегодня быстры в LZ. Проблема фрагментации - самая большая проблема на сегодняшний день. Это классический случай, когда оптимизация полезна только в ограниченных контекстах. Выбирайте, что к NTFS сжимать очень тщательно, и это будет общая победа.
Джоди Ли Брухон
1
А как насчет SSD?
Фиолетовый Жираф
Как я могу измерить C, D, W и R?
Джеремия
Буду признателен за некоторые практические типичные примеры для этих абстракций "C> W и D> R"? Например, полезно ли сжимать «Program Files» и / или «Windows» на 4-ядерном ноутбуке с жестким диском? а с SSD? Значительно ли повлияет потребление батареи?
KXR
7

У вас довольно медленный диск, поэтому ваш вопрос имеет свои достоинства. NTFS-сжатие интенсивно использует процессор и настроено на скорость, а не на эффективность сжатия.

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

Конечно, вы увидите, что операции записи будут выполняться медленнее из-за дополнительного сжатия.

Копирование файлов на этот же диск NTFS требует распаковки и сжатия, поэтому они пострадают больше всего.

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

Многие типы файлов, такие как изображения JPEG или видео или файлы .zip, в основном несжимаемые, поэтому эти файлы будут работать медленнее и без экономии места.

Файлы размером менее одного дискового кластера (обычно 4 КБ) не сжимаются, так как нет усиления. Однако при сжатии всего объема иногда рекомендуется использовать кластер еще меньшего размера.

Сжатие NTFS рекомендуется для относительно статических томов или файлов. Никогда не рекомендуется для системных файлов или папки «Пользователи».

Но поскольку аппаратная конфигурация варьируется от одной модели компьютера к другой, в зависимости от диска, шины, ОЗУ и ЦП, только тестирование покажет, какое именно влияние сжатия будет на модель вашего компьютера.

harrymc
источник
5

Я объяснил это здесь, в записи в Википедии для NTFS:


NTFS может сжимать файлы, используя алгоритм LZNT1 (вариант LZ77 [23]). Файлы сжимаются в 16-кластерные блоки. С кластерами 4 КБ файлы сжимаются в блоки по 64 КБ. Если при сжатии данных уменьшается 64 КБ до 60 КБ или менее, NTFS рассматривает ненужные страницы 4 КБ как пустые разреженные кластеры файлов - они не записываются. Это позволяет не чрезмерное время произвольного доступа. Однако большие сжимаемые файлы становятся сильно фрагментированными, так как каждый фрагмент размером 64 КБ становится меньшим фрагментом. [24] [25] Сжатие не рекомендуется Microsoft для файлов, размер которых превышает 30 МБ, из-за снижения производительности.

Лучше всего использовать сжатие для файлов, которые повторяются, пишутся редко, обычно к ним обращаются последовательно, а не сами по себе. Лог-файлы являются идеальным примером. Сжатие файлов размером менее 4 КБ или уже сжатых (например, .zip или .jpg или .avi) может сделать их больше и медленнее. [Цитата необходима] Пользователи должны избегать сжатия исполняемых файлов, таких как .exe и .dll (они могут быть выгружается в 4 кБ страницы). Сжатие системных файлов, используемых при загрузке, таких как драйверы, NTLDR, winload.exe или BOOTMGR, может помешать правильной загрузке системы. [26]

Хотя доступ для чтения-записи к сжатым файлам часто, но не всегда [27] прозрачен, Microsoft рекомендует избегать сжатия в серверных системах и / или сетевых ресурсах, содержащих перемещаемые профили, поскольку это создает значительную нагрузку на процессор. [28]

Однопользовательские системы с ограниченным пространством на жестком диске могут выиграть от сжатия NTFS для небольших файлов, от 4 до 64 КБ или более, в зависимости от сжимаемости. Файлы размером менее 900 байтов хранятся вместе с записью каталога в MFT. [29]

Самым медленным звеном в компьютере является не процессор, а скорость жесткого диска, поэтому сжатие NTFS позволяет лучше использовать ограниченное, медленное пространство хранения с точки зрения как места, так и (часто) скорости. [30] (Это предполагает, что сжатые фрагменты файла хранятся последовательно.)


Я рекомендую сжатие только для файлов, которые сжимают до 64 КБ или меньше (то есть 1 часть). В противном случае ваш файл будет состоять из множества 64K или менее фракций.

MyDefrag лучше справляется с дефрагментацией.

TomTrottier
источник
Мой опыт работы с UltraDefrag заключается в том, что он делает достойную работу, предоставляя более полную дефрагментацию, чем встроенный дефрагментатор Windows, но, насколько я знаю, он не такой умный, как MyDefrag. Я использую бета-версию 6, которая имеет несколько ошибок и невыполненных функций, но намного быстрее, чем предыдущие версии.
bwDraco
1

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

Канадский Люк ВОССТАНОВИТЬ МОНИКУ
источник
4
Я думаю, что вы пропустили всю суть вопроса. Существует компромисс между тем, что для сжатия / распаковки данных требуется больше времени, а для чтения данных с диска требуется меньше времени (благодаря меньшему количеству данных). Таким образом, ваше утверждение не гарантировано. Очевидный пример, где сжатие может быть легко выигрышным, - это когда вы читаете данные из сетевой файловой системы. С локальной файловой системой это менее понятно, но не гарантировано, что она пойдет в ту или иную сторону.
jjlin
@jjlin У вас есть примеры, когда это быстрее?
Канадский Люк ВОССТАНОВИТЕ МОНИКУ
@ Luke давайте предположим, что ваш процессор, используя некоторый алгоритм сжатия, может сжимать со скоростью C MB / s и распаковывать со скоростью D MB / s, а ваш жесткий диск имеет скорость записи W и скорость чтения R. Пока C> W, вы получаете прирост производительности при записи, и при условии, что D> R, вы получаете прирост производительности при чтении.
Прорыв
@ Лучше, если вы используете его на медленных дисках, таких как старые драйверы IDE или USB 1.0.
Кураст
-1

Любой, кто видит это сегодня, должен знать, что в случае видеоигр, да, даже регулярно исправляемых, включение сжатия на диске или папке может уменьшить время загрузки, даже на более медленных современных процессорах и даже на ssd (кроме самые быстрые из них, которых у большинства нет), хотя вам необходимо регулярно выполнять дефрагментацию, и я настоятельно рекомендую покупать идеальный диск, если вы используете его «Умную агрессивную» дефрагментацию, ПОСЛЕ сжатия, оставьте включенной функцию автоматического предотвращения франгментации, она будет следить на активность и автоматическую оптимизацию, чтобы избежать фрагментации, с минимальными или нулевыми ударами (testd это полностью назад к старым четверным поколениям первого поколения как amd, так и intel на современных окнах, недавно затронутых)

многие файлы игр сжимаются безумно хорошо, в некоторых играх есть файлы, которые занимают место на диске, несмотря на то, что они в основном пустые ... одна игра, которую я сжал некоторое время назад, выросла с 6 ГБ в одной из ее папок до менее 16 МБ ..... пошутил ... говорить о потраченном впустую пространстве и потраченном впустую вводе / выводе ....)

Некоторое время назад сжимал папку Steam приятеля, на сжатие потребовалось 4 дня (на диске объемом 4 ТБ, и он запустился на 3/4), когда это было сделано… он использовал около 1/3 общего объема диска, Дефрагментация заняла еще один день (но все началось с ужасной фрагментации, потому что он никогда не делал дефрагментацию, несмотря на это… несмотря на то, что на ней было много MMO… и куча игр Steam / Uplay / origin / etc…… )

НЕ сжимайте ваши папки с изображениями / изображениями, это не принесет пользы, а просто замедлит доступ к ним на медленных системах (хотя даже на 1/2 приличной установке не заметит ...)

Я сжимал свои диски в каждой системе, так как nt4, НО, выборочно, я на самом деле распаковываю папки, где сжатие приносит больше вреда, чем пользы, это «лучшие практики», которые мы придумали еще в те дни, когда играли, гики ». «ребята (раньше это был термин), и, если честно, это правда, я хотел бы, чтобы у них был более точно настроенный способ сжатия дисков / данных, был инструмент, который был не бесплатным, но доступным, который сделал вас намного лучше результаты сжатия без сжатия каких-либо данных, которые не должны быть сжаты ....

в любом случае, даже многие старые двухъядерные системы в целом выигрывают, если вы: 1. запустите ccleaner 2. запустите chkdsk / f из командной строки с повышенными правами (введите y, затем перезагрузите компьютер и дайте ему выполнить проверку) 3. сожмите диск. 4. Дефрагментируйте с помощью mydefrag или лучше, идеальный диск, это займет время. 5. Изобразите все папки, содержащие большие файлы или изображения / другой контент, который плохо сжимается / вообще, распакуйте папку или только файлы, мой опыт здесь то есть, вам редко приходится дефрагментировать после этой части процесса, но лучше проверить.

Я понимаю, почему некоторые люди против сжатия, но, протестировав его при правильном использовании, ssd или hdd, и особенно медленные старые hdd и ssd, сжатие при правильном использовании может серьезно помочь не только сэкономить место, но и производительность, даже большинству старых двойных Ядра могут справиться со средними циклами сжатия / распаковки быстрее, чем диск в этих системах может двигаться, проверив это, первое поколение и более дешевые ssd более старого дизайна, могут извлечь выгоду из сжатия, не так много, как медленнее жесткого диска в большинстве случаев, но приятель есть нетбук, который имеет ОЧЕНЬ медленный, трудно заменить ssd в нем, а также гораздо проще заменить простой в доступе ssd-слот, но глупая вещь НЕ МОЖЕТ загружаться с добавленного ssd без физического удаления другого ssd ... (ужасный биос, но ... для того, что устройство, на самом деле хороший, более мощный, чем кажется ...за пределами медленного ssd, установленного таким образом, чтобы разобраться с ним, нужно разобрать все это на части ...), сжав этот диск и просто имея окна и самые основные приложения (например, офисные) на медленном ssd на самом деле ускорил его, даже в режиме чтения / записи, потому что его процессор фактически заканчивает ожиданием проклятого ssd .. он делает ставку на более быстрый, который он установил ... я предложил просто установить загрузчик на внутренний ssd и операционную систему на добавленном, но ... он надеется в конечном итоге убить глупость, используя большую часть этого для файла подкачки .... (его 128 ГБ, но, черт возьми, медленно, как у меня есть флэш-накопители usb3, которые лучше пишут диски .... это стоило всего в продаже на Newegg / Amazon ...)сжатие этого диска и просто наличие окон и самых основных приложений (например, офисных) на медленном ssd фактически ускорило его, даже в режиме чтения / записи, потому что его процессор в конечном итоге ждет чертового ssd..it, чтобы ускорить тот, который он набросил ... я предложил просто положить загрузчик на внутренний ssd и ОС на добавленный, но ... он надеется в конечном итоге убить глупость, используя большую часть этого для файла подкачки .... (его 128 ГБ но, черт возьми, медленно, как у меня есть флешки usb3, у которых лучше записывать спиды .... которые стоят все в продаже на newegg / amazon ......)сжатие этого диска и просто наличие окон и самых основных приложений (например, офисных) на медленном ssd фактически ускорило его, даже в режиме чтения / записи, потому что его процессор в конечном итоге ждет чертового ssd..it, чтобы ускорить тот, который он набросил ... я предложил просто положить загрузчик на внутренний ssd и ОС на добавленный, но ... он надеется в конечном итоге убить глупость, используя большую часть этого для файла подкачки .... (его 128 ГБ но, черт возьми, медленно, как у меня есть флешки usb3, у которых лучше записывать спиды .... которые стоят все в продаже на newegg / amazon ......)он надеется в конечном итоге убить эту глупость, используя большую часть ее для файла подкачки .... (его 128 ГБ, но, черт возьми, медленный, как у меня есть флэш-накопители usb3, которые лучше записывают диски ..., которые стоят все в продаже на Newegg / амазонка ......)он надеется в конечном итоге убить эту глупость, используя большую часть ее для файла подкачки .... (его 128 ГБ, но, черт возьми, медленный, как у меня есть флэш-накопители usb3, которые лучше записывают диски ..., которые стоят все в продаже на Newegg / амазонка ......)

я настоятельно рекомендую сжать, по крайней мере, диск / папку с вашими играми ... Боже мой, который может работать даже на быстрых системах !!!

Уна Салус Виктис
источник
большинство игр уже сжимают свои данные, которые невозможно сжать дальше
М.Казем Ахгари
-2

Windows сжимает недавно использованные данные в ОЗУ, причем даже твердотельные накопители составляют небольшую долю скорости, и я думаю, что снижение производительности не является проблемой. Меня больше беспокоит сжатые блоки, которые развивают 1-2-битную ошибку и не могут восстановить некоторые или все данные ... или словарную ошибку в худшем случае. Все, что создает диск, который не читается в альтернативных ОС и потенциально снижает надежность, не стоит той дополнительной скорости, которую оно (возможно) может принести, ИМХО. Файлы текстурного пакета видеоигр и тому подобное обычно уже сжаты, поэтому я не вижу, как наложение другого набора сжатия улучшит ситуацию. Я хотел бы видеть ОС, которая поддерживает маркировку файлов как линейную разметку на геометрии диска, чтобы случайное ч / б не использовалось. Это ускоряет работу даже на SSD для определенных случаев использования. Моя другая проблема со сжатием состоит в том, что, поскольку изображения и фильмы уже сжаты, как и документы MS Office и множество других форматов, вы застряли, отметив файлы как сжимаемые и управляющие ими. Для дерева исходных текстов Linux или большого проекта с открытым исходным кодом это может очень помочь, так как сжатие обычно оптимально для текстовых файлов.

Guesty McGuesterson
источник
1
Чтобы прояснить линейную геометрию, в первую очередь помогут жесткие диски и файлы размером более 500 МБ или около того. Я работал с 500-гигабайтными TIFF-файлами до того, как это сильно улучшило бы загрузку Windows пытается сделать это, но это зависит от регулярной дефрагментации диска и правильного размера кластера, который может быть не оптимальным для других приложений. Чтобы обойти эту неразбериху, я использую SSD для загрузки, диск объемом 2 ТБ для проектов музыки / фильмов, еще 2 ТБ для файлов RAW из зеркальных камер и 4 ТБ, в котором хранится огромное количество исходного кода, который я могу сжать для довольно большого увеличения пространство.
Guesty McGuesterson
1
В идеале я хотел бы, чтобы второй SSD только для «программных файлов» ограничивал конфликт между системными файлами и файлами, но Windows имеет тенденцию прерывать попытки установить это через несколько недель. Я могу создать D: \ Program Files или что-то еще, но слишком много программ жестко запрограммированы, чтобы буквально повсеместно помещать дерьмо на системный диск.
Guesty McGuesterson
-2

Сжатие Microsoft Windows NTFS не должно использоваться ни для чего, кроме файлов журналов или, вообще говоря, текстовых файлов или других файлов с высокой степенью сжатия.

Учтите это: исторически я видел производительность сжатия файлов, которая зависала на 20-25 МБ / с. Это нормальная скорость для архивирования файла с одним процессором 2,4-3,0 ГГц. Сжатие NTFS не является многопоточным. Это огромная проблема!

Считайте, что приличная скорость для жесткого диска в настоящее время составляет 100 МБ / с. Если вы не получаете сжатие в 4-5 раз, вы теряете производительность как в чтении, так и в письме. Это то, что происходит.

Алессандро Зильяни
источник