web-dev-qa-db-fra.com

Pourquoi ecryptfs est-il si lent lors de l'exécution de du -s?

J'utilise le système de dossiers personnels chiffrés d'Ubuntu depuis un certain temps maintenant et je n'ai pas vraiment remarqué de ralentissements, sauf dans deux cas spécifiques.

  1. Quand je lance du -s dans mon dossier personnel, cela prend plusieurs fois plus de temps que lorsque vous le faites sur les mêmes données sur une partition non chiffrée.
  2. Lorsque vous entrez dans un dossier contenant> 1000 images dans Krusader, il faut 10 à 20 secondes avant que Krusader affiche les fichiers (il ne répond absolument pas pendant ce temps).

Les deux semblent avoir à voir avec l'accès à plusieurs milliers de fichiers sans vraiment lire aucune de leurs données, ce qui semble signifier que le système devra traverser beaucoup, beaucoup d'inodes. Je ne vois pas pourquoi cela serait plus lent sur ecryptfs que lorsque vous n'utilisez pas le cryptage, car cela devrait toujours être lié aux IO plutôt qu'au CPU, même si les inodes sont tous cryptés.

Quelqu'un a-t-il une idée?

4
Leo

Voici pourquoi, basé sur une explication par l'un des principaux développeurs canoniques:

  • Obtenir une liste de tous les noms de fichiers dans un répertoire nécessite le décodage, l'analyse et le décryptage des noms de fichiers inférieurs.

  • Les appels stat () de du cause une recherche, ce qui nécessite d'allouer un inode eCryptfs, de lire une partie des métadonnées de fichier inférieures, de vérifier qu'il s'agit bien d'un fichier eCryptfs, puis d'analyser la taille du fichier non crypté pour définir le champ i_size de l'inode eCryptfs . Gardez à l'esprit que la lecture des métadonnées à partir du système de fichiers inférieur implique la lecture d'une page dans le cache de pages du système de fichiers inférieur.

En termes simples, le problème n'est pas le taux d'E/S, mais les IOP - un grand nombre d'IOP!

eCryptFS s'améliore à mesure qu'il évolue: comparez les benchmarks Phoronix de 9.1 vs 11.1 .

Vous voudrez peut-être considérer dm-crypt, qui a été historiquement plus rapide et semble toujours avoir un Edge .

5
ish