Mémo de problème lent d'accès aux fichiers Docker pour Mac récent (2020/08)
Résumez ce que vous avez étudié.
- Depuis l'Antiquité, le problème de l'accès lent aux fichiers entre l'hôte et le conteneur a été discuté dans Docker pour Mac.
- https://github.com/docker/for-mac/issues/77
- https://forums.docker.com/t/file-access-in-mounted-volumes-extremely-slow-cpu-bound/8076
- Pourquoi est-il lent sur macOS? ↓ Il semble que c'est écrit ici (mais je ne l'ai pas lu)
- https://web.archive.org/web/20201007205306/https://docs.docker.com/docker-for-mac/osxfs/#performance-issues-solutions-and-roadmap
- En 2017, les indicateurs «mis en cache» et «délégué» ont été ajoutés à l'option des volumes pour résoudre ce problème. Il accélère l'accès aux fichiers au détriment d'une certaine cohérence. La cohérence est plus élevée dans l'ordre de «cohérent» (par défaut)> «mis en cache»> «délégué».
- https://www.docker.com/blog/user-guided-caching-in-docker-for-mac/
- https://web.archive.org/web/20200611082225/https://docs.docker.com/docker-for-mac/osxfs-caching/
- https://github.com/docker/for-mac/issues/1592
- Dans les benchmarks suivants, «mis en cache» et «délégué» sont 2 à 3 fois plus rapides que cohérents (par défaut).
- https://www.amazee.io/blog/post/docker-on-mac-performance-docker-machine-vs-docker-for-mac
- Cependant, il est toujours plus lent que Linux, etc., et il existe des moyens non officiels de le rendre plus rapide.
- https://www.jeffgeerling.com/blog/2020/revisiting-docker-macs-performance-nfs-volumes
- Voici divers paramètres manuels et méthodes de montage NFS, un joyau appelé docker-sync, bg-sync Un conteneur appelé / docker-bg-sync) est introduit avec le benchmark. Les deux sont deux fois ou plus plus rapides que l'indicateur «délégué».
- D'autre part, dans Docker official, un outil (?) Appelé Mutagen a été introduit dans la version Edge v2.3.1.0 (2020-05-20). Il semble que des performances proches du natif sortiront.
- https://docs.docker.com/docker-for-mac/edge-release-notes/#docker-desktop-community-2310
- https://docs.docker.com/docker-for-mac/mutagen/
- Benchmark https://github.com/docker/for-mac/issues/1592#issuecomment-634960996
- Cependant, bien que cela ait quelques améliorations de performances, il présente des problèmes et a été supprimé dans Edge v2.3.5.0.
- https://docs.docker.com/docker-for-mac/edge-release-notes/#docker-desktop-community-2350
- La raison est expliquée dans ↓. Il semble que le cache peut ne pas rattraper ou il y a un problème que le sous-répertoire n'est pas mis en cache (je ne sais pas en détail donc je l'ai peut-être mal lu)
* https://github.com/docker/for-mac/issues/1592#issuecomment-678397258
- Au lieu de cela, un système de fichiers appelé gRPC-FUSE a été introduit dans le même Edge v2.3.5.0.
- https://docs.docker.com/docker-for-mac/edge-release-notes/#docker-desktop-community-2350
- Dit officiellement "Cela a un partage de fichiers beaucoup plus rapide et utilise beaucoup moins de CPU que osxfs" (le système de fichiers (actuel) où osxfs est ancien), mais ce n'était pas du tout plus rapide dans le benchmark publié dans le numéro ci-dessus.
- https://github.com/docker/for-mac/issues/1592#issuecomment-678411517
- Dans le numéro ci-dessus, le développeur de Mutagen dit quelque chose comme "Mutagen lui-même peut être utilisé même si Docker pour Mac n'est pas installé, alors essayez-le".
- https://github.com/docker/for-mac/issues/1592#issuecomment-678489727
- Comment utiliser https://mutagen.io/documentation/orchestration/compose
- De nombreuses personnes ne sont pas satisfaites de l'élimination du mutagène et ont commenté le problème, par exemple: "Je continuerai à utiliser la version de libération Edge avec le mutagène."
- Le mutagène a été supprimé au moment d'Edge, et il n'est pas prévu d'entrer stable pour le moment (bien qu'il y ait une possibilité de repenser et de reconcevoir). gRPC-FUSE sera stable en septembre. Il est par défaut gRPC-FUSE, mais vous pouvez passer à l'ancien (osxfs) dans les paramètres.
- Docker pour Mac 2.4.0.0 avec gRPC-FUSE est sorti le 30/09/2020
- https://docs.docker.com/docker-for-mac/release-notes/#docker-desktop-community-2400