D'accord, commençons à zéro après une enquête approfondie. Voici ce que nous savons :
Hôte Ubuntu
15.04 sur i7 3820 (quad 3.6) et Samsung 850 pro SSD 512 Go SATA 6
$ docker info
Containers: 2
Images: 101
Storage Driver: overlay
Backing Filesystem: extfs
Execution Driver: native-0.2
Logging Driver: json-file
Version du noyau : 3.19.0-28-generic
Système d'exploitation : Ubuntu 15.04
CPUs : 8
Mémoire totale : 15,61 GiB
Nom : camacho
ID : ZOYN:QGDO:UGMJ:TDDM:WEEM:ZEHJ:4OKB:V5WR:RGCL:NOKG:F5W5:SDEL
ATTENTION : Pas de support de limite d'échange
Hôte OSX
10.10.5 sur i7 (quad 2.7) et Apple SSD 512 Go SD512E SATA 6 (2+ ans)
$ docker info
Containers: 3
Images: 185
Storage Driver: aufs
Repertoire Racine: /mnt/sda1/var/lib/docker/aufs
Backing Filesystem: extfs
Répertoires: 191
Prise en charge de Dirperm1 : vrai
Execution Driver: native-0.2
Logging Driver: json-file
Version du noyau : 4.0.9-boot2docker
Système d'exploitation : Boot2Docker 1.8.1 (TCL 6.3); master : 7f12e95 - jeu. 13 août 2015 03:24:56 UTC
CPUs : 8
Mémoire totale : 3,858 GiB
Nom : dinghy
ID : PNNP:PI3E:CRUK:27RI:IPHW:HROF:NQA2:XKV6:VGCZ:WT7B:BZ7R:USWD
Mode Débogage (serveur) : vrai
Descripteurs de fichiers : 21
Goroutines : 54
Heure système : 2015-09-24T19:16:01.715069994Z
Gestionnaires d'événements : 1
SHA1 d'initialisation :
Chemin d'initialisation : /usr/local/bin/docker
Répertoire racine Docker : /mnt/sda1/var/lib/docker
Étiquettes :
fournisseur=virtualbox
Observations
- rspec dockerisé fonctionne 2x plus rapidement sur OSX
- Les résultats io de sysbench sont médiocres sur Ubuntu
- Les résultats iozone dockerisés sont conformes aux attentes (Ubuntu légèrement plus rapide)
- Vérification du matériel terminée, l'hôte Ubuntu est sur un câble et un port SATA 6
Résultats iozone
docker run -it threadx/docker-ubuntu-iozone
$ iozone -R -l 5 -u 5 -r 4k -s 100m -F /home/f1 /home/f2 /home/f3 /home/f4 /home/f5 | tee -a /tmp/iozone_results.txt &
Résumé
Je dockerize notre processus de test car nous avons besoin de stabilité et de concurrence. Nous avons fait beaucoup de travail pour limiter les temps de test, et une augmentation de 2x des temps est un pas en arrière terrible.
Sysbench montre que l'hôte Ubuntu est 4x pire que OSX, et je n'en ai aucune compréhension. Les tests dd
et iozone
montrent que l'hôte Ubuntu se comporte comme prévu.
Question
Pourquoi les performances de mon rspec sont-elles pires sur l'hôte Ubuntu qui dispose de ressources plus rapides? Où devrais-je enquêter? Le test io sysbench est-il un indicateur ou une anomalie? Quelles sont les sources de mauvaises performances dans Ubuntu dockerisé?