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 млн, що використовують операційну систему бета-якості.
mjaggard

Відповіді:


3

Хоча я хотів би бачити щось на зразок ZFS, доступного для хостів Windows, NTFS - це не жахлива файлова система. Він підтримує більшість "сучасних" функцій файлової системи (розширені атрибути, журнал, ACL, ви їх називаєте), але це перешкоджає Провіднику та більшості інших додатків, які не підтримують жодну з них.

Одне, що абсолютно знищить його продуктивність, - це те, що в каталозі "занадто багато" записів. Після того, як ви передасте кілька тисяч записів в одному каталозі, все сповільнюється до сканування. Буквально вся машина зупинить очікування, коли NTFS створить або видалить записи, коли це відбувається.

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

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

Тепер, оскільки ви займаєтесь розробкою Java, чи могли б ви встановити іншу ОС на свій комп'ютер або використовувати VM поверх Windows?

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


Файлова система, що встановлюється, документально підтверджується щонайменше з 2000 року. Відсутність плагінів завжди зводилася до труднощів та відсутності інтересу. Це все ще важко, але тепер доступні FUSE та FSDK.
користувач165568

5
  • Вимкніть час останнього доступу
  • Вимкніть короткі імена файлів
  • Вимкнути Видалити сповіщення
  • Вимкніть індексацію
  • Вимкнути подорож
  • Вимкнути тіньову копію та попередні версони та квоти та акції.
  • Увімкнути перевірку проходження обходу

Я думаю, що справжнім рішенням було б переписати систему складання, щоб вона використовувала нативну API файлової системи Windows, а не сам API Unix (fopen тощо) під рамкою портативності. Але цього не відбудеться, тому в основному ви застрягли в тому, який рівень продуктивності ви вважали прийнятним.

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


1
Це було б кращою відповіддю, якби вона дала ще трохи інформації. 1. Деякий показник того, скільки часу може бути збережено для кожного і 2. Як зробити ці зміни.
міджард

3

Є одна файлова система, яка підтримується новою ОС Windows AND швидше, ніж NTFS. Це exFAT. Існує можливість використовувати його для системного диска. Але невідомо, які ускладнення це може мати.

Ви, звичайно, можете використовувати його для інших розділів. Це швидше з випадковими операціями читання / запису. Ідеально підходить для SSD, наприклад.


1
Спробував це тільки зараз, і exFAT здається повільнішим. Перша побудова на NTFS: 36.083s, друга: 19.884s. Перша побудова на exFAT: 41.160s, друга: 27.291s.
Юрій Ушаков

Ага. exFAT є єдиною іншою файловою системою, яка в даний час підтримується Windows, і COULD може використовуватися в якості системного диска (права доступу є). Я бачив тест один раз, в Інтернеті, і він сказав, що exFAT був швидшим при випадкових зчитуваннях.
sinni800

Причина того, що тест сказав, що exFAT був швидшим, ймовірно, тому, що вони не перевіряли його в каталозі, що містить> 32768 записів. Крім того, новіші версії Windows могли б уповільнитись із-за внутрішніх змін. Бог (MS) знає, що відбувається в opendir()(або еквівалентному) дзвінку.
MattBianco

2

У вас працює антивірусна програма, яка робить доступ до перевірки доступу / запису для папки вашого проекту?

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

У Linux у вас (ймовірно) немає жодного антивірусного програмного забезпечення ....


Захисник вимкнено, вимкнено AV (або видалено повністю, залежно від випадку).
Юрій Ушаков

@Юрі - добре.
ChrisF
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.