Mes 50 cents,
Oui de base le networking de docker est slow. Cela concerne le mode "bridge+NAT" (défaut). De mémoire de mes tests c'est un débit divisé par 2.5 et une latence augmenté à 170% de la latence de base (sans docker).
En utilisant le networking de l'host avec --host par exemple, on est très proche des performances natives.
Le support de technologie comme vxlan permet également de retrouver des perfs quasi natives.
Bonne nouvelle, ces technologies sont applicable dans l'univers coreos (avec flannel) : plus d'infos dans l'article http://www.generictestdomain.net/docker/weave/networking/stupidity/2015/04/0....
Cordialement Tycho Le 4 août 2015 23:10, "Baptiste" bedis9@gmail.com a écrit :
2015-08-04 21:22 GMT+02:00 Benoit Garcia benoit.garcia@gmail.com:
Bonjour,
2015-08-04 16:19 GMT+02:00 Stephane Martin <stephane.martin@vesperal.eu :
Je ne suis pas certain de voir l'intérêt de mettre une base de données dans un container.
Perf DB = CPU * IO * RAM
Typiquement le genre d'objets qu'on ne virtualise pas.
C'était peut-être vrai avant, mais je pense que si même Oracle se met à
la
virtualisation ( http://aws.amazon.com/fr/rds/oracle/ ) on doit pouvoir
dire
que c'est du passé, non?
D'autant que Docker (et les conteneurs en général) n'est pas de la virtualisation au sens traditionnel (ie virtualisation de matériel) mais
de
la virtualisation d'environnement.
En ce qui concerne les performances, IBM avait publié une étude sur le
sujet
l'été dernier. Le résultat est disponible en pdf ici:
http://domino.research.ibm.com/library/cyberdig.nsf/papers/0929052195DD819C8...
Je vous laisse vous faire votre avis mais pour ma part, je trouve que
Docker
s'en sort plutôt bien. Si les questions de la connectivité (réseau et stockage) étaient réglés,
il
y a belle lurette que mes bases de données seraient dans des conteneurs.
Au passage après Microsoft, Oracle aussi se met à Docker. Autant sur
Linux (
https://blogs.oracle.com/linux/entry/oracle_linux_images_for_docker )
que
sur Solaris (
https://www.oracle.com/corporate/pressrelease/docker-gets-in-the-zone-with-o...
). Peut-être est-il encore temps de s'y mettre?
Mais s'il faut absolument la mettre dans un container, j'irais plutôt la mettre dans un container LXC persistent, ou même juste dans un cgroups pour faire du contrôle de ressources.
Si c'est pour "sécuriser", voir firejail par example: https://l3net.wordpress.com/projects/firejail/
Cordialement, Stéphane
-- Cordialement, Benoit
Sans vouloir balancer sur docker, produit que j'apprécie et utilise assez régulièrement pour toute sorte de tests, niveau perf réseau, c'est pas encore ça...
Quand je bench HAProxy en natif sur mon laptop, j'ai plus de 35000 conn HTTP/s (1 requete HTTP par connection TCP, acceptée et forwardée vers un serveur, ce qui génère pleins de tout petits paquets) et je "tombe" à 6000 pour le même HAProxy dans un docker, sur la même machine. J'ai un process docker qui tourne à 100% de CPU alors que mon process HAProxy se trimbale à environ 15%...
My 2 cents,
Baptiste _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/