2016-04-05 7 views
0

Beim Erstellen eines Andock-Containers wählen wir einen Container aus, von dem er erbt, der oft ein Linux-Betriebssystem ist (wie ubuntu, debian oder boot2docker). Hat es Auswirkungen auf die Leistung, wenn mehrere Container, die auf demselben Host ausgeführt werden, die gleiche übergeordnete OS-Box verwenden?Gibt es einen Leistungseinfluss auf Docker-Container mit verschiedenen OS-Basisboxen?

[Eine große Antwort würde erklären, warum die Antwort der Fall ist, ob Elemente des OS zwischen getrennten Behältern und allen Best Practices gemeinsam genutzt werden um die Wahl, was zu verwenden, Abhängigkeiten, wenn Docker-Container zu bauen.]

Antwort

0

Kurze Antwort: Ja für Speicherplatz, vielleicht für RAM.

Docker verwendet ein Union-Dateisystem, mit dem Container, die auf denselben Bildern basieren, Dateien gemeinsam nutzen können, bis eine Datei geändert wird, an der sie dupliziert wird. (Dies wird copy-on-write genannt.) Wenn Sie also dieselben Basisbilder verwenden, sparen Sie Speicherplatz. Natürlich ist der Speicherplatz heutzutage kaum ein limitierender Faktor, daher würde ich das normalerweise nicht als "Performance Impact" bezeichnen.

einige der Docker-Speichertreiber-aufs und OverlayFS, aber nicht btrfs und devicemapper-führen zu bestimmten gemeinsam genutzten Bibliotheken im RAM freigegeben. Wenn Sie also mehrere Container auf der Grundlage des gleichen Bildes haben, laden sie keine doppelten Kopien von z. libc im RAM, die, wenn Sie viele und viele Container haben, einen Unterschied machen könnten. (Quelle: http://permalink.gmane.org/gmane.comp.sysutils.docker.devel/1385)