Windows с лучшей файловой системой

14

Судя по моим наблюдениям как разработчика Java, работающего на рабочих станциях Windows, NTFS медленна по сравнению с файловыми системами Linux. Вопрос в том, есть ли что-нибудь в драйвере NTFS, которое можно настроить вручную, например, дать ему больше памяти для кеша? Включить некоторые экспериментальные алгоритмы? Если это не доступно, возможно, есть другая файловая система, которая может использоваться в Windows, может быть, даже коммерческая, это быстрее, чем NTFS?

Чтобы быть ясным, я не стремлюсь улучшить скорость компиляции для проектов Maven, я хотел бы получить общее улучшение для ОС. У меня такое ощущение, что NTFS давно устарела и медленна по сравнению с файловыми системами Linux. Мне кажется странным, что самая популярная ОС на планете имеет только одну файловую систему, которая все еще требует ручной дефрагментации. Возможно, это альтернатива?

Обновление: вот что медленно по моим наблюдениям. Я собираю / упаковываю проект, что означает много операций чтения / записи на диске. Система сборки кроссплатформенная (Java, Maven), поэтому я могу выполнять точно такие же действия, например, при загрузке в Ubuntu.

В Linux мои сборки как минимум на 1/3 быстрее. Отсюда вопрос о файловой системе. Извините, если это неуместно.

Юрий Ушаков
источник
7
Каким образом NTFS работает медленно? Как вы измеряете его скорость, чтобы знать, что она медленнее, чем любая другая файловая система для точно таких же операций? NTFS - единственная изначально поддерживаемая файловая система (кроме FAT, которая имеет ограничения), с которой может загружаться сама Windows, хотя я полагаю, что вы можете получить драйвер файловой системы ext3 для незагрузочных разделов.
Мокубай
Да, пожалуйста, просветите нас, как медленно работает NTFS?
JL.
1
Но что здесь за вопрос? Это как вы можете ускорить NTFS или Windows может использовать другую файловую систему?
Иво Флипс
1
@ ivo-flipse: я извиняюсь за то, что здесь возникает путаница, мне интересно узнать кое-что по обоим вопросам. Мол, нет ли проверенной альтернативы NTFS в Windows? И если нет, можно ли вообще повысить производительность NTFS, например, выделить больше памяти для некоторых кешей или включить некоторые экспериментальные механизмы?
Юрий Ушаков
1
@ sinni800 Это просто мусор, извини. Хотя я признаю, что как настольная ОС, Linux далека от совершенства, как серверная ОС, она намного лучше, чем Windows, почти для всех рабочих нагрузок. Нет сомнений в том, что 96,6% топ-1 миллиона сайтов используют операционную систему бета-качества.
Мьяггард

Ответы:

3

Хотя я бы хотел видеть что-то вроде ZFS доступным для хостов Windows, NTFS не ужасная файловая система. Он поддерживает большинство «современных» функций файловой системы (расширенные атрибуты, ведение журналов, списки ACL, вы называете это), но ему мешает Explorer и большинство других приложений, не поддерживающих ни одного из них.

Одна вещь, которая абсолютно убьет его производительность - это наличие «слишком большого количества» записей в каталоге. После того, как вы передадите пару тысяч записей в один каталог, все замедлится. Буквально вся машина остановится в ожидании NTFS для создания или удаления записей, когда это происходит.

Раньше я работал с приложением, которое генерировало документы на основе HTML для сборок .NET; это создаст один файл для каждого свойства, метода, класса, пространства имен и т. д. Для более крупных сборок мы увидим 20 + k файлов, все из которых будут выгружены в один каталог. Машина будет тратить пару часов во время сборки, заблокированной в NTFS.

Теоретически, Windows поддерживает плагины файловой системы, которые делают возможным использование ZFS, ext3 или чего-либо еще (даже FUSE). На практике API недокументированы, так что вы полностью самостоятельно.

Теперь, так как вы занимаетесь разработкой Java, можете ли вы установить другую ОС на свою машину или использовать виртуальную машину поверх Windows?

Кроме того, вы можете попробовать некоторые независимые от платформы бенчмарки файловой системы (iozone, bonnie ... возможно, есть более современные, которые я не знаю, на мой взгляд, даже некоторые из них написаны на Java), чтобы увидеть, если это на самом деле файловая система сдерживает вас, или, если это что-то еще. Преждевременная оптимизация и все такое ...

chrish
источник
Устанавливаемая файловая система была задокументирована, по крайней мере, с 2000 года. Отсутствие плагинов всегда было связано с трудностями и отсутствием интереса. Это все еще сложно, но FUSE и FSDK теперь доступны.
user165568
5
  • Отключить время последнего доступа
  • Отключить короткие имена файлов
  • Отключить удаление уведомлений
  • Отключить индексирование
  • Отключить журналирование
  • Отключить теневое копирование и предыдущие версии, квоты и акции.
  • Включить обход обхода

Я полагаю, что реальным решением было бы переписать вашу систему сборки так, чтобы она использовала собственный API файловой системы Windows вместо самого Unix API (fopen и т. Д.) Под структурой переносимости. Но этого не произойдет, поэтому в основном вы застряли на том уровне производительности, который они считали приемлемым.

Часто при использовании систем, изначально не написанных для Windows, вы обнаруживаете, что обратный путь в каталогах был обработан очень плохо, поэтому убедитесь, что у вас очень плоское дерево каталогов.

user165568
источник
1
Это был бы лучший ответ, если бы он дал больше информации. 1. Некоторая мера того, сколько времени может быть сэкономлено для каждого и 2. Как сделать эти изменения.
Мгггард
3

Существует одна файловая система, которая поддерживается новой ОС Windows и работает быстрее, чем NTFS. Это exFAT. Есть возможность использовать его для системного диска. Но неизвестно, какие осложнения это может иметь.

Вы, конечно, можете использовать его для других разделов. Это быстрее со случайными операциями чтения / записи. Идеально подходит для SSD, например.

sinni800
источник
1
Попробовал только сейчас, и exFAT кажется медленнее. Первая сборка на NTFS: 36.083, вторая: 19.884. Первая сборка на exFAT: 41.160 с, вторая: 27.291 с.
Юрий Ушаков
Да. exFAT - единственная другая файловая система, которая в настоящее время изначально поддерживается Windows и МОЖЕТ использоваться в качестве системного диска (разрешения имеются). Я видел тест один раз в Интернете, и он сказал, что exFAT был быстрее со случайным чтением.
sinni800
Причина, по которой тест сказал, что exFAT был быстрее, вероятно, заключалась в том, что они не тестировали его в каталоге, содержащем> 32768 записей. Кроме того, более новые версии Windows могли замедлиться из-за внутренних изменений. Бог (МС) знает, что происходит в opendir()(или эквивалентном) вызове.
MattBianco
2

Есть ли у вас антивирусная программа, выполняющая проверку доступа / записи для папки вашего проекта?

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

В Linux у вас (вероятно) нет антивирусного программного обеспечения ....

ChrisF
источник
Защитник выключен, AV выключен (или удален полностью, в зависимости от обстоятельств).
Юрий Ушаков
@Yuri - да ладно.
ChrisF