
Я слышал, что сжатие NTFS может снизить производительность из-за дополнительной загрузки ЦП, но я читал отчеты, что оно может на самом деле повысить производительность из-за сокращения чтения диска. Как именно сжатие NTFS влияет на производительность системы?
Примечания:
- У меня ноутбук с жестким диском на 5400 об/мин, и многие из действий, которые я на нем выполняю, связаны с вводом/выводом.
- Процессор — AMD Phenom II с четырьмя ядрами, работающими на частоте 2,0 ГГц.
- Система регулярно дефрагментируется с помощьюУльтрадефрагментация.
- Рабочая нагрузка представляет собой смешанную нагрузку чтения-записи, при этом операции чтения происходят несколько чаще, чем записи.
- Файлы, которые будут сжаты, включают в себя выбранный подмножество личных документов (не всю домашнюю папку) и программ, в том числе несколько (менее требовательных) игр и Visual Studio (которая, как правило, чаще всего связана с вводом-выводом).
решение1
Я слышал, что сжатие NTFS может снизить производительность из-за дополнительной загрузки ЦП, но я читал отчеты о том, что на самом деле оно может повысить производительность из-за сокращения числа операций чтения с диска.
Правильно. Предположим, что ваш процессор, используя какой-то алгоритм сжатия, может сжимать со скоростью C МБ/с и распаковывать со скоростью D МБ/с, а ваш жесткий диск имеет скорость записи W и скорость чтения R. Пока C > W, вы получаете прирост производительности при записи, и пока D > R, вы получаете прирост производительности при чтении. Это радикальное предположение в случае записи, поскольку алгоритм Лемпеля-Зива (реализованный программно) имеет недетерминированную скорость сжатия (хотя ее можно ограничить ограниченным размером словаря).
Как именно сжатие NTFS влияет на производительность системы?
Ну, это именно так, полагаясь на приведенные выше неравенства. Пока ваш процессор может поддерживать скорость сжатия/распаковки выше скорости записи вашего жесткого диска, вы должны получить прирост скорости. Однако это влияет на большие файлы, которые могут испытывать сильную фрагментацию (из-за алгоритма), илине сжиматься вообще.
Это может быть связано с тем, что алгоритм Лемпеля-Зива замедляется по мере сжатия (поскольку словарь продолжает расти, требуя больше сравнений по мере поступления битов). Распаковка почти всегда происходит с той же скоростью, независимо от размера файла, в алгоритме Лемпеля-Зива (поскольку к словарю можно просто обратиться с помощью схемы база + смещение).
Сжатие также влияет на то, как файлывыложенный на диске. По умолчанию один "блок сжатия" в 16 раз больше размера кластера (поэтому большинству файловых систем NTFS с кластером 4 КБ для хранения файлов потребуются блоки по 64 КБ), но не превышает 64 КБ. Однако это может повлиять на фрагментацию и требования к пространству на диске.
В заключение, задержка — еще одно интересное значение для обсуждения. Хотя фактическое время, необходимое для сжатия данных, действительно вносит задержку, когда тактовая частота процессора измеряется в гигагерцах (т.е. каждый тактовый цикл составляет менее 1 нс), вносимая задержка пренебрежимо мала по сравнению со скоростью поиска жесткого диска (которая составляет порядка миллисекунд или миллионов тактовых циклов).
Чтобы на самом деле увидеть, почувствуете ли вы прирост скорости, есть несколько вещей, которые вы можете попробовать. Первое — протестировать вашу систему с помощью алгоритма сжатия/распаковки на основе Лемпела-Зива. Если вы получите хорошие результаты (то есть C > W и D > R), то вам следует попробовать включить сжатие на вашем диске.
Отсюда вы, возможно, захотите провести больше тестов производительности жесткого диска. Действительно важным тестом (в вашем случае) будет проверка того, насколько быстро загружаются ваши игры, и проверка того, насколько быстро компилируются ваши проекты Visual Studio.
TL,DR: Сжатиемощьбыть жизнеспособным для файловой системы, использующей много маленьких файлов, требующих высокой пропускной способности и низкой задержки. Большие файлы не затронуты (и не должны быть затронуты) из-за проблем с производительностью и задержкой.
решение2
Я объяснил это здесь, в статье Википедии о 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 часть). В противном случае ваш файл будет состоять из множества фракций по 64 КБ или меньше.
MyDefrag лучше справляется с дефрагментацией.
решение3
У вас довольно медленный диск, поэтому ваш вопрос имеет смысл. Сжатие NTFS интенсивно использует процессор и настроено на скорость, а не на эффективность сжатия.
Я ожидаю, что вы увидите (очень) небольшое улучшение для операций чтения. Однако при доступе к файлу, находящемуся в системном кэше, вы столкнетесь с падением производительности, поскольку его придется распаковывать заново при каждом доступе.
Конечно, вы увидите, что операции записи будут выполняться медленнее из-за дополнительного сжатия.
Копирование файлов на тот же диск NTFS требует распаковки и сжатия, поэтому они пострадают больше всего.
Сжатие NTFS также может значительно увеличить фрагментацию, но это не является проблемой для большинства «типичных» компьютеров при «типичных» рабочих нагрузках.
Многие типы файлов, такие как изображения JPEG, видео или файлы .zip, по сути, не поддаются сжатию, поэтому такие файлы будут использоваться медленнее и не будут экономить место.
Файлы размером меньше одного кластера диска (обычно 4К) не сжимаются, так как нет выигрыша. Однако иногда рекомендуется использовать даже меньший размер кластера при сжатии всего тома.
Сжатие NTFS рекомендуется для относительно статичных томов или файлов. Оно никогда не рекомендуется для системных файлов или папки Users.
Но поскольку конфигурация оборудования различается в зависимости от модели компьютера, диска, шины, оперативной памяти и процессора, только тестирование покажет, какой именно эффект сжатия будет иметь на вашей модели компьютера.
решение4
Каждый, кто видит это сегодня, должен знать, что в случае видеоигр, даже регулярно обновляемых, включение сжатия на диске или в папке может сократить время загрузки, даже на самых медленных современных процессорах и даже на SSD (кроме самых быстрых, которых у большинства людей нет), вам нужно регулярно проводить дефрагментацию, и я настоятельно рекомендую купить Perfect Disk, после того как вы используете его «умную агрессивную» дефрагментацию, ПОСЛЕ сжатия оставьте его функцию автоматического предотвращения фрагментации включенной, он будет следить за активностью и автоматически оптимизироваться, чтобы избежать фрагментации, при очень небольшом или нулевом влиянии на производительность (недавно тестировал это еще на старых четырехъядерных процессорах первого поколения как AMD, так и Intel на современных Windows, на самом деле).
многие игровые файлы сжимаются невероятно хорошо, в некоторых играх есть файлы, которые занимают место на диске, несмотря на то, что они в основном пустые... одна игра, которую я сжал некоторое время назад, увеличилась с 6 ГБ в одной из ее папок до менее чем 16 МБ... (жаль, что я не пошутил... речь о потерянном пространстве и потерянном вводе-выводе...)
Некоторое время назад он сжал папку Steam своего приятеля, на это ушло 4 дня (она находилась на диске объемом 4 ТБ и изначально была заполнена на 3/4), когда сжатие было завершено... он использовал около 1/3 всего диска, дефрагментация заняла еще один день (но изначально она была ужасно фрагментированной, потому что он никогда не делал на ней дефрагментацию, несмотря на то, что на ней было много многопользовательских онлайн-игр... и куча игр Steam/Uplay/Origin и т. д. на ней...)
НЕ сжимайте папки с картинками/изображениями, это не принесет никакой пользы и только замедлит доступ к ним на медленных системах (хотя на более-менее приличной машине вы этого даже не заметите...)
Я сжимал свои диски на каждой системе, начиная с nt4, НО выборочно я распаковываю папки, где сжатие приносит больше вреда, чем пользы. Это «лучшие практики», которые мы придумали еще в те времена, будучи геймерами, гиками, «айтишниками» (до того, как появился этот термин), и, честно говоря, это так и осталось. Хотелось бы, чтобы у них был более совершенный способ сжатия дисков/данных. Раньше был инструмент, который был платным, но доступным по цене, который давал гораздо лучшие результаты сжатия, не сжимая данные, которые не должны были сжиматься...
в любом случае, даже многие старые двухъядерные системы на самом деле выигрывают в целом, если вы 1. запускаете ccleaner 2. запускаете chkdsk /f из командной строки с повышенными привилегиями (введите y, затем перезапустите и дайте ему выполнить проверку) 3. сжимаете диск. 4. дефрагментируете с помощью mydefrag или лучше, perfect disk, это займет время. 5. очищаете все папки, содержащие большие файлы или изображения/другой контент, который плохо/вообще не сжимается, распаковываете папку или только файлы, мой опыт здесь таков, что вам редко приходится дефрагментировать после этой части процесса, но лучше проверить.
Я понимаю, почему некоторые люди против сжатия, но, протестировав его, при правильном использовании, SSD или HDD, и особенно медленные старые HDD и SSD, сжатие при правильном использовании может серьезно помочь не только сэкономить место, но и производительность, даже большинство старых двухъядерных процессоров могут справляться со средними циклами сжатия/распаковки быстрее, чем диск в этих системах может перемещаться, протестировав это, SSD первого поколения и более дешевые старые конструкции могут выиграть от сжатия, не так сильно, как более медленные HDD в большинстве случаев, но, у приятеля есть нетбук, в котором установлен ОЧЕНЬ медленный, трудно заменяемый SSD, а также гораздо более простой в замене и легкодоступный слот SSD, но, эта дурацкая штука НЕ МОЖЕТ загрузиться с добавленного SSD, не извлекая другой физически... (ужасный BIOS, но... для того, что это за устройство, оно на самом деле хорошее, более мощное, чем кажется.. за исключением медленного SSD, который установлен таким образом, что вам придется разбирать все, чтобы добраться до он......), сжатие этого диска и просто размещение Windows и самых базовых приложений (вроде Office) на медленном SSD на самом деле ускорило его, даже при чтении/записи, потому что его процессор фактически в конечном итоге ждет чертов SSD... он не ждет более быстрый, который он установил... я предложил просто поместить загрузчик на внутренний SSD, а ОС на дополнительный, но... он надеется в конечном итоге убить эту дурацкую штуку, используя большую его часть для файла подкачки... (он 128 ГБ, но ужасно медленный, как у меня есть флэш-накопители USB3 с лучшей скоростью записи... которые стоят все это на распродаже на newegg/amazon......)
Я НАСТОЯТЕЛЬНО рекомендую сжать хотя бы диск/папку с игрой... Боже, какую разницу можно создать даже на быстрых системах!!!