Assez complexe. Il existe des différences significatives entre les systèmes de fichiers que vous mentionnez, et la détermination de l'impact de ces différences sur la vitesse est, à mon humble avis, non triviale et dépend des opérations qui seront effectuées.
Tout d'abord, écartons la possibilité d'installer votre système de fichiers racine sur une partition FAT ou NTFS. Ces systèmes de fichiers ne sont pas correctement compatibles avec le noyau Linux et les autorisations de système de fichiers Linux ne fonctionnent pas correctement sur eux, vous auriez donc beaucoup de problèmes intéressants.
Remarque : FAT32 est un bon choix pour les supports d'installation USB, et NTFS est un bon choix dans un scénario à double démarrage (avec Windows) pour les partitions où vous souhaitez utiliser pour stocker des données personnelles (comme votre bibliothèque multimédia par exemple) qui devraient être accessibles à la fois Ubuntu (ou tout autre système Linux) et Windows. Les systèmes Linux peuvent lire (et écrire) sur les partitions NTFS tant qu'elles ont été montées correctement, mais les partitions ext * ne sont pas facilement lisibles pour Windows (pour autant que je sache).
Les systèmes ext * ont été conçus pour être utilisés avec le noyau Linux. Utiliser ext2,3 ou 4 pour votre installation Ubuntu serait parfaitement sensé. Les plus grandes différences entre eux sont probablement
- ext2 est non journalisé
- ext3 est un journal, mais a des structures de données et des fonctionnalités similaires à ext2
- ext4 est un journal et possède certaines fonctionnalités améliorant les performances, notamment un algorithme plus rapide pour l'allocation de blocs par rapport aux systèmes ext * antérieurs, bien qu'il ait des structures de données similaires.
Il est important de noter, je pense, que la vitesse n'est pas la seule considération lors du choix d'un système de fichiers. Ext4 a moins de limitations que les versions précédentes, permettant un système de fichiers plus grand, des sous-répertoires illimités, etc. Ext3 est considéré par certains comme plus éprouvé, plus sûr et légèrement moins susceptible de perdre des données. Je vais essayer de me concentrer sur la vitesse ici, tout en ne mentionnant que les choses les plus marquantes en plus des performances.
Attends quoi? Journalisation? 1
Un système de fichiers de journalisation , en bref, conserve un journal des modifications qui n'ont pas encore été écrites dans la partie principale du système de fichiers. Ceci est fait de sorte qu'en cas de plantage, il est facile de vérifier la cohérence du système de fichiers en comparant le journal à ce qui a été écrit dans la zone principale du système de fichiers. Cela signifie que la vitesse de vérification du système de fichiers est beaucoup plus rapide avec ext3 et ext4. De plus, comme ext4 permet de marquer les blocs non alloués, leur vérification peut être ignorée, ce qui rend fsck
encore plus rapide.
Ext4 contrôle également le journal (ce qui permet d'attendre moins d'E / S lors de l'écriture), ce qui donne une légère augmentation globale de la vitesse par rapport à ext3.
La vérification de la cohérence du système de fichiers peut ne pas être nécessaire très souvent, et la journalisation a un prix - plus d'écritures sur disque. Non seulement cela est mauvais pour la durée de vie d'un SSD rapide, mais cela peut ralentir les performances (l'écriture prend du temps). Le consensus général semble cependant être que le journalisme en vaut le coût.
Fonctions améliorant les performances d'ext4
Ext4 prend en charge l' fallocate()
appel système pour pré-allouer de l'espace à un fichier. Le noyau alloue certains blocs et les marque comme initialisés sans y écrire, ce qui est beaucoup plus rapide que d'écrire des zéros dans l'espace comme cela était fait dans les anciens systèmes de fichiers.
Il utilise également l'allocation retardée (ou allocate-on-flush ) qui regroupe les allocations (plutôt que d'effectuer de nombreuses petites), ce qui tend à réduire l'utilisation du processeur et à éviter la fragmentation.
Ext4 est rétrocompatible avec ext2 et ext3, ce qui signifie que les systèmes de fichiers ext2 et 3 peuvent être montés en ext4 et bénéficier d'un avantage de performance modeste car certaines fonctionnalités comme le nouvel algorithme d'allocation de blocs peuvent être utilisées.
Autres systèmes de fichiers
Ext * ne sont pas les seuls systèmes de fichiers entièrement compatibles avec Linux, bien qu'ils soient les plus connus et les plus testés. D'autres systèmes de fichiers utilisent des alternatives au journalisation et ont des fonctionnalités innovantes qui peuvent affecter les performances. Btrfs , par exemple, utilise une copie sur écritureméthode de préservation de l'intégrité du système de fichiers au lieu d'un journal. Il a différentes structures de données pour les systèmes ext *. Pour autant que je sache, Btrfs n'est pas connu pour fournir des performances générales plus rapides que ext4, mais est considéré comme particulièrement bon pour le stockage d'archives de fichiers vidéo photo, car ils sont moins susceptibles de subir une dégradation. Il permet de vérifier et de nettoyer la cohérence du système de fichiers pendant son utilisation, ce qui peut gagner du temps en fonction de votre cas d'utilisation. À l'avenir, Btrfs ou un autre système de fichiers innovant pourrait être développé pour surpasser de manière convaincante ext4 sur la vitesse générale.
Conclusion
La plupart des utilisateurs d'Ubuntu à la recherche de bonnes performances voudront s'en tenir à ext4 pour l'instant ...
1 Ce concept de système de fichiers Linux et d'autres sont très bien expliqués dans Comprendre le noyau Linux .