News-Feeds
Satelliten, Flugzeuge und Drohnen gegen Steuersünder
Briten haben gespaltene Haltung zu Atomwaffen
Zubrot für Ministerialbeamte
Französisches Gericht stoppt Endlager-Bau
Nicaragua: Präsident will Ehefrau als Vizepräsidentin
Das Wahlsystem als "kritische Infrastruktur"
Testing Docker multi-host network performance
In this post, I’ll review Docker multi-host network performance.
In a past post, I tested Docker network. The MySQL Server team provided their own results, which are in line with my observations.
For this set of tests, I wanted to focus more on Docker networking using multiple hosts. Mostly because when we set up a high availability (HA) environment (using Percona XtraDB Cluster, for example) the expectation is that instances are running on different hosts.
Another reason for this test is that Docker recently announced the 1.12 release, which supports Swarm Mode. Swarm Mode is quite interesting by itself — with this release, Docker targets going deeper on Orchestration deployments in order to compete with Kubernetes and Apache Mesos. I would say Swarm Mode is still rough around the edges (expected for a first release), but I am sure Docker will polish this feature in the next few releases.
Swarm Mode also expects that you run services on different physical hosts, and services are communicated over Docker network. I wanted to see how much of a performance hit we get when we run over Docker network on multiple hosts.
Network performance is especially important for clustering setups like Percona XtraDB Cluster and MySQL Group Replication (which just put out another Lab release).
For my setup, I used two physical servers connected over a 10GB network. Both servers use 56 cores total of Intel CPUs.
Sysbench setup: data fits into memory, and I will only use primary key lookups. Testing over the network gives the worst case scenario for network round trips, but it also gives a good visibility on performance impacts.
The following are options for Docker network:
- No Docker containers (marked as “direct” in the following results)
- Docker container uses “host” network (marked as “host”)
- Docker container uses “bridge” network, where service port exposed via port forwarding (marked as “bridge”)
- Docker container uses “overlay” network, both client and server are started in containers connected via overlay network (marked as “overlay” in the results). For “overlay” network it is possible to use third-party plugins, with different implementation of the network, the most known are:
- Calico network https://github.com/projectcalico/calico-containers
- Weave network https://github.com/weaveworks/weave
For multi-host networking setup, only “overlay” (and plugins implementations) are feasible. I used “direct”, “host” and “bridge” only for the reference and as a comparison to measure the overhead of overlay implementations.
The results I observed are:
Client Server Throughput, tps Ratio to “direct-direct” Direct Direct 282780 1.0 Direct Host 280622 0.99 Direct Bridge 250104 0.88 Bridge Bridge 235052 0.83 overlay overlay 120503 0.43 Calico overlay Calico overlay 246202 0.87 Weave overlay Weave overlay 11554 0.044Observations
- “Bridge” network added overhead, about 12%, which is in line with my previous benchmark. I wonder, however, if this is Docker overhead or just the Linux implementation of bridge networks. Docker should be using the setup that I described in Running Percona XtraDB Cluster nodes with Linux Network namespaces on the same host, and I suspect that the Linux network namespaces and bridges add overhead. I need to do more testing to verify.
- Native “Overlay” Docker network struggled from performance problems. I observed issues with ksoftirq using 100% of one CPU core, and I see similar reports. It seems that network interruptions in Docker “overlay” are not distributed properly across multiple CPUs. This is not the case with the “direct” and “bridge” configuration. I believe this is a problem with the Docker “overlay” network (hopefully, it will eventually be fixed).
- Weave network showed absolutely terrible results. I see a lot of CPU allocated to “weave” containers, so I think there are serious scalability issues in their implementation.
- Calico plugin showed the best result for multi-host containers, even better than “bridge-bridge” network setup
If you need to use Docker “overlay” network — which is a requirement if you are looking to deploy a multi-host environment or use Docker Swarm mode — I recommend you consider using the Calico network plugin for Docker. Native Docker “overlay” network can be used for prototype or quick testing cases, but at this moment it shows performance problems on high-end hardware.
Berichterstattung: Die "Wahrheit über Aleppo"
Hat der Kopftuchislam den Euro-Islam besiegt?
Türkei: Erdoğans Taschenspielertricks
Indien: Streik der "Unberührbaren"
Europas Juristen: Zurück zur Rechtsstaatlichkeit in der Türkei
Streit über die Flüchtlinge in Griechenland
Deutschlands Abkehr vom Klimaschutz
AfD Berlin: Marktradikale in der Armutshauptstadt
Erdogan: Der Westen unterstützt den Terrorismus
Take Percona’s One-Click Database Security Downtime Poll
Take Percona’s database security downtime poll.
As Peter Zaitsev mentioned recently in his blog post on database support, the data breach costs can hit both your business reputation and your bottom line. Costs vary depending on the company size and market, but recent studies estimate direct costs ranging in average from $1.6M to 7.01M. Everyone agrees leaving rising security risks and costs unchecked is a recipe for disaster.
Reducing security-based outages doesn’t have a simple answer, but can be a combination of internal and external monitoring, support contracts, enhanced security systems, and a better understanding of security configuration settings.
Please take a few seconds and answer the following poll. It will help the community get an idea of how security breaches can impact their critical database environments.
If you’ve faced specific issues, feel free to comment below. We’ll post a follow-up blog with the results!
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.You can see the results of our last blog poll on high availability here.
High Availability Poll Results
This blog reports the results of Percona’s high availability poll.
High availability (HA) is always a hot topic. The reality is that if your data is not available, your customers cannot do business with you. In fact, estimates show the average cost of downtime is about $5K per minute. With an average outage taking 40 minutes to correct, you could be looking at a potential cost of $200K if your MySQL instance goes down. Whether your database is on premise, or in public or private clouds, it is critical that your database deployment does not have a potentially devastating single point of failure.
The results from Percona’s high availability poll responses are in:
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.With over 700 unique participants and 844 different selections, MySQL replication was the clear frontrunner when it comes to high availability solutions.
Percona has HA solutions available, come find out more at our website.
If you’re using other solutions or have specific issues, feel free to comment below.
Check out the latest Percona one-click poll on database security here.