web-dev-qa-db-fra.com

Performances XFS vs ext4

Selon ce blog ,

XFS est un ancien système de fichiers et fonctionne lentement avec de petits fichiers.

Ma première impression en lisant ceci était XFS n'était pas bonne.

Cependant, quelqu'un m'a dit que XFS rend le disque plus performant et cette référence n'a pas de sens.

enter image description here

J'ai donc fait plus de recherches à ce sujet et trouvé les faits suivants.

wikipedia dit que

XFS est un système de fichiers de journalisation 64 bits haute performance créé par Silicon Graphics, Inc (SGI) en 1993. Il s'agissait du système de fichiers par défaut du système d'exploitation IRIX de SGI à partir de sa version 5.3. XFS a été porté sur le noyau Linux en 2001; depuis juin 2014, XFS est pris en charge par la plupart des distributions Linux, dont certaines l'utilisent comme système de fichiers par défaut.

wikipedia encore ...

Historiquement, les opérations sur les métadonnées dans XFS ont été plus lentes qu'avec d'autres systèmes de fichiers, ce qui entraîne, par exemple, de mauvaises performances avec des opérations telles que la suppression d'un grand nombre de fichiers.

Et howtogeek dit que

XFS a de bonnes performances lorsqu'il s'agit de fichiers volumineux, mais a des performances inférieures à celles d'autres systèmes de fichiers lorsqu'il s'agit de nombreux petits fichiers. Il peut être utile pour certains types de serveurs qui doivent principalement traiter des fichiers volumineux.

Ces faits et la référence sont-ils corrects?

5
Sabrina

Un précédent Q/A XFS a mentionné cette page: Comment choisir votre système de fichiers Red Hat Enterprise Linux . Je pense que cela répondra à votre question sur les performances :-). Il s'agit de la base de connaissances officielle de Red Hat. Il serait inapproprié de copier la page entière. Voici un avant-goût:

Une autre façon de caractériser cela est que les variantes du système de fichiers Ext4 ont tendance à mieux fonctionner sur les systèmes qui ont une capacité d'E/S limitée. Ext3 et Ext4 fonctionnent mieux sur une bande passante limitée (<200 Mo/s) et jusqu'à ~ 1 000 IOPS. Pour tout ce qui a des capacités supérieures, XFS a tendance à être plus rapide. XFS consomme également environ deux fois le processeur par opération de métadonnées par rapport à Ext3 et Ext4, donc si vous avez une charge de travail liée au processeur avec peu de concurrence, les variantes Ext3 ou Ext4 seront plus rapides. En général, Ext3 ou Ext4 est préférable si une application utilise un seul thread de lecture/écriture et de petits fichiers, tandis que XFS brille lorsqu'une application utilise plusieurs threads de lecture/écriture et des fichiers plus gros.

Réponse précédente

Voici une version précédente de cette réponse. Je l'ai adapté et développé pour fournir un contexte et corroborer la source ci-dessus. Ce n'est pas une lecture essentielle.


Il n'est pas logique d'éviter que XFS soit ancien . Il existe de nombreuses similitudes entre XFS et ext2/ext3/ext4, y compris leur longue et vie active .

XFS est le principal système de fichiers pris en charge pour RedHat Enterprise Linux. Beaucoup d'efforts ont été déployés pour développer XFS au fil du temps, en particulier à partir de RHEL. Le nombre de fonctionnalités nouvelles et avancées est plus élevé dans XFS :-). Voir par exemple prise en charge du "reflink".

Les installations "Desktop Linux" - qui ciblent également les ordinateurs portables modernes - utilisent généralement ext4. ext4 fournit un environnement très familier et bien connu.

Sur un PC de bureau moyen, les avantages de XFS ne s'appliquent pas nécessairement. ext4 peut présenter des avantages, notamment des avantages en termes de performances. Bien que si vous prenez les chiffres ci-dessus à leur valeur nominale, ils suggèrent que XFS pourrait avoir un avantage sur les ordinateurs portables modernes et rapides!

Actuellement, le mainteneur ext4 est employé par Google. ext4 est utilisé dans Google Android OS. Donc ext4 est utilisé dans de nombreux téléphones et tablettes, qui ont un matériel moins puissant . [1][2]

Je trouve également ext4 pratique car vous pouvez réduire les partitions du système de fichiers. Ceci est potentiellement utile lorsque vous souhaitez gérer l'espace utilisé par différentes installations sur un seul disque. XFS ne prend pas en charge la réduction, mais seulement la croissance. (En principe, cela peut être résolu dans LVM, en utilisant le "provisionnement fin". Voir Stratis Storage, qui utilise XFS avec le provisionnement fin. Peut-être qu'à l'avenir Stratis décollera et toutes les distributions seront installables sur Stratis).

Dans certains cas , la conception ext4 a été décrite comme ancienne et désordonnée. XFS a clairement réussi un peu mieux ici: La simple copie (ou écriture) de fichiers provoque dix secondes + latence sur le système de fichiers Linux . MISE À JOUR: ce lien mentionne maintenant les correctifs qui ont été soumis pour améliorer ext4 ici, probablement pour la v5.3 du noyau Linux. Et il pourrait encore y avoir des améliorations significatives à l'avenir.

"Performances des petits fichiers" XFS

Les performances de XFS lors du traitement de nombreux petits fichiers étaient à l'origine une faiblesse majeure par rapport aux autres systèmes de fichiers. Des améliorations ont été apportées au fil du temps.

Un gros changement à prendre en compte est l'enregistrement différé, vers 2010-2012. C'est à dire. dans le cas où vous voyez des comparaisons de performances de petits fichiers antérieures à cette fonctionnalité, elles ne sont plus pertinentes. La conception de la journalisation différée était fortement basée sur la journalisation ext3 :-). Néanmoins, il y avait encore des différences de performances entre les deux dans des cas différents. Voir: https://lwn.net/Articles/476263/

(Avant cela, apparemment "le format de journal de la version 2 a été ajouté en 2002, ce qui a aidé à améliorer les performances des métadonnées". Mais cela n'aide probablement pas à répondre à cette question :-).

Il y a eu d'autres changements depuis lors. Par exemple. le document Red Hat peut ne pas refléter toutes les modifications les plus récentes. J'ai remarqué cette citation:

[...] arbres inode B + gratuits (finobt) pour de meilleures performances sur les systèmes de fichiers "anciens", et les types de fichiers sont désormais stockés par défaut dans le répertoire (ftype = 1), ce qui améliore considérablement les performances dans certains scénarios avec beaucoup de (généralement petits ) des dossiers.

- comment on Quel est le système de fichiers Linux le plus performant pour stocker beaucoup de petits fichiers (HDD, pas SSD)?

7
sourcejedi