Windows avec un meilleur système de fichiers

14

D'après mes observations en tant que développeur Java travaillant sur des postes de travail Windows, NTFS est lent par rapport aux systèmes de fichiers Linux. La question est, y a-t-il quelque chose dans le pilote NTFS qui peut être réglé manuellement, par exemple lui donner plus de mémoire pour le cache? Activer certains algorithmes expérimentaux? Si ce n'est pas disponible, existe-t-il peut-être un autre système de fichiers qui peut être utilisé sur Windows, peut-être même commercial, qui est plus rapide que NTFS?

Pour être clair, je ne cherche pas à améliorer les vitesses de compilation pour les projets Maven, je voudrais obtenir une amélioration globale pour le système d'exploitation. J'ai l'impression que NTFS est obsolète et lent depuis longtemps par rapport aux systèmes de fichiers Linux. Il me semble étrange que le système d'exploitation le plus populaire de la planète n'ait qu'un seul système de fichiers qui nécessite toujours une défragmentation manuelle. Peut-être est une solution de rechange?

Mise à jour: Voici ce qui est lent selon mes observations. Je suis en train de construire / empaqueter un projet, ce qui signifie beaucoup d'opérations de lecture / écriture sur le disque. Le système de construction est multiplateforme (Java, Maven), donc je peux effectuer exactement les mêmes actions lors du démarrage sur Ubuntu, par exemple.

Sous Linux, mes builds sont au moins 1/3 plus rapides. D'où la question du système de fichiers. Je suis désolé si c'est déplacé.

Yuri Ushakov
la source
7
De quelle manière NTFS est-il lent? Comment mesurez-vous sa vitesse pour savoir qu'il est plus lent que tout autre système de fichiers pour exactement les mêmes opérations? NTFS est le seul système de fichiers pris en charge nativement (à l'exception de FAT qui a des limitations) à partir duquel Windows lui-même peut démarrer, bien que je pense que vous pourrez peut-être obtenir un pilote de système de fichiers ext3 pour les partitions sans démarrage.
Mokubai
Oui, veuillez nous éclairer, comment est NTFS lent?
JL.
1
Mais quelle est la question ici? Est-ce la façon dont vous pouvez accélérer NTFS ou si Windows peut utiliser un système de fichiers différent?
Ivo Flipse
1
@ ivo-flipse: Je suis désolé d'avoir causé de la confusion ici, je suis intéressé à apprendre quelque chose sur les deux questions. Par exemple, n'y a-t-il pas d'alternative éprouvée à NTFS sous Windows? Et sinon, serait-il possible d'augmenter généralement les performances de NTFS, comme donner plus de mémoire à certains caches ou activer certains mécanismes expérimentaux?
Yuri Ushakov
1
@ sinni800 C'est juste des ordures, désolé. Bien que j'admette qu'en tant qu'OS de bureau, Linux est loin d'être parfait, en tant qu'OS de serveur, il est bien meilleur que Windows pour presque toutes les charges de travail. Il n'est pas question que 96,6% des 1 million de meilleurs sites Web utilisent un système d'exploitation de qualité bêta.
mjaggard

Réponses:

3

Alors que j'aimerais voir quelque chose comme ZFS disponible pour les hôtes Windows, NTFS n'est pas un horrible système de fichiers. Il prend en charge la plupart des fonctionnalités du système de fichiers "modernes" (attributs étendus, journalisation, ACL, vous l'appelez), mais il est gêné par Explorer et la plupart des autres applications ne prenant en charge aucune de ces fonctionnalités.

Une chose qui va absolument tuer ses performances est d'avoir "trop" d'entrées dans un répertoire. Une fois que vous avez transmis quelques milliers d'entrées dans un même répertoire, tout ralentit en une analyse. Littéralement, la machine entière cessera d'attendre que NTFS crée ou supprime des entrées lorsque cela se produit.

J'avais l'habitude de travailler avec une application qui générait des documents HTML pour les assemblages .NET; cela créerait un fichier par propriété, méthode, classe, espace de noms, etc. La machine passait quelques heures pendant la génération bloquée sur NTFS.

En théorie, Windows prend en charge les plugins de système de fichiers, ce qui rendrait possible ZFS, ext3 ou autre (même FUSE). En pratique, les API ne sont pas documentées, vous êtes donc complètement seul.

Maintenant, puisque vous faites du développement Java, pourriez-vous installer un système d'exploitation différent sur votre machine ou utiliser une machine virtuelle par-dessus Windows?

En outre, vous voudrez peut-être essayer des benchmarks de système de fichiers indépendants de la plate-forme (iozone, bonnie ... il y en a probablement plus modernes que je ne connais pas du haut de ma tête, peut-être même quelques-uns écrits en Java) pour voir si c'est en fait, le système de fichiers vous retient, ou si c'est autre chose. Optimisation prématurée et tout ça ...

chrish
la source
Le système de fichiers installable a été documenté au moins depuis 2000. Le manque de plugins était toujours dû à des difficultés et à un manque d'intérêt. C'est toujours difficile, mais FUSE et FSDK sont maintenant disponibles.
user165568
5
  • Désactiver l'heure du dernier accès
  • Désactiver les noms de fichiers courts
  • Désactiver la notification de suppression
  • Désactiver l'indexation
  • Désactiver la journalisation
  • Désactivez le cliché instantané et les versions et quotas précédents et les partages.
  • Activer la vérification du cheminement de contournement

Je suppose que la vraie solution serait de réécrire votre système de construction afin qu'il utilise l'API du système de fichiers Windows natif, au lieu de l'API Unix (fopen, etc.) elle-même sous le cadre de portabilité. Mais cela ne va pas se produire, donc fondamentalement, vous êtes coincé avec le niveau de performance qu'ils jugent acceptable.

Souvent, lorsque vous utilisez des systèmes non écrits à l'origine pour Windows, vous constatez que la traversée de répertoire a été très mal gérée, alors assurez-vous d'avoir une arborescence de répertoires très plate.

user165568
la source
1
Ce serait une meilleure réponse si elle donnait plus d'informations. 1. Une mesure du temps qui pourrait être économisé pour chacun et 2. Comment faire ces changements.
mjaggard
3

Il existe un système de fichiers pris en charge par le nouveau système d'exploitation Windows ET plus rapide que NTFS. C'est exFAT. Il est possible de l'utiliser pour le lecteur système. Mais on ne sait pas quelles complications cela pourrait avoir.

Vous pouvez certainement l'utiliser pour d'autres partitions. C'est plus rapide avec des opérations de lecture / écriture aléatoires. Parfait pour un SSD par exemple.

sinni800
la source
1
Je l'ai essayé tout à l'heure, et exFAT semble plus lent. Premier build sur NTFS: 36.083s, second: 19.884s. Premier build sur exFAT: 41.160s, second: 27.291s.
Yuri Ushakov
Huh. exFAT est le seul autre système de fichiers qui est maintenant pris en charge nativement par Windows et POURRAIT être utilisé comme lecteur système (les autorisations sont présentes). J'ai vu un test une fois, en ligne, et il a dit que exFAT était plus rapide avec des lectures aléatoires.
sinni800
La raison pour laquelle le test a déclaré que exFAT était plus rapide était probablement parce qu'ils ne l'avaient pas testé sur un répertoire contenant> 32 768 entrées. De plus, les nouvelles versions de Windows auraient pu ralentir davantage en raison de changements internes. Dieu (MS) sait ce qui se passe dans un opendir()appel (ou équivalent).
MattBianco
2

Avez-vous un programme antivirus en cours d'exécution qui vérifie l'accès / l'écriture pour votre dossier de projet?

La compilation implique la lecture et l'écriture de nombreux petits fichiers en succession rapide, ce qui peut submerger l'antivirus. Ajoutez votre dossier de projet à la liste des dossiers exclus et voyez si cela améliore la situation.

Sous Linux, vous n'avez (probablement) aucun logiciel anti-virus ....

ChrisF
la source
Defender est désactivé, AV est arrêté (ou complètement désinstallé, selon le cas).
Yuri Ushakov
@Yuri - eh bien.
ChrisF