2017-10-04 08:44:26 +02:00
# Performance
## Provision Time
2018-04-24 06:36:20 +02:00
Provisioning times vary based on the operating system and platform. Sampling the time to create (apply) and destroy clusters with 1 controller and 2 workers shows (roughly) what to expect.
2017-10-04 08:44:26 +02:00
| Platform | Apply | Destroy |
|---------------|-------|---------|
2017-11-07 06:19:11 +01:00
| AWS | 6 min | 5 min |
2018-08-27 08:39:41 +02:00
| Azure | 7 min | 7 min |
2018-04-24 06:36:20 +02:00
| Bare-Metal | 10-15 min | NA |
2017-10-04 09:07:48 +02:00
| Digital Ocean | 3 min 30 sec | 20 sec |
2018-08-27 08:39:41 +02:00
| Google Cloud | 7 min | 6 min |
2017-10-04 08:44:26 +02:00
Notes:
2017-11-07 06:19:11 +01:00
* SOA TTL and NXDOMAIN caching can have a large impact on provision time
2018-08-27 08:39:41 +02:00
* Platforms with auto-scaling take more time to provision (AWS, Azure, Google)
2017-11-07 06:19:11 +01:00
* Bare-metal POST times and network bandwidth will affect provision times
2017-10-04 08:44:26 +02:00
## Network Performance
2017-12-09 18:26:26 +01:00
Network performance varies based on the platform and CNI plugin. `iperf` was used to measure the bandwidth between different hosts and different pods. Host-to-host shows typical bandwidth between host machines. Pod-to-pod shows the bandwidth between two `iperf` containers.
2017-10-04 08:44:26 +02:00
| Platform / Plugin | Theory | Host to Host | Pod to Pod |
|----------------------------|-------:|-------------:|-------------:|
| AWS (flannel) | ? | 976 MB/s | 900-999 MB/s |
| AWS (calico, MTU 1480) | ? | 976 MB/s | 100-350 MB/s |
2018-06-12 03:11:50 +02:00
| AWS (calico, MTU 8981) | ? | 976 MB/s | 900-999 MB/s |
2018-08-27 08:39:41 +02:00
| Azure (flannel) | ? | 749 MB/s | 680 MB/s |
| Bare-Metal (flannel) | 1 GB/s | ~940 MB/s | 903 MB/s |
| Bare-Metal (calico) | 1 GB/s | ~940 MB/s | 931 MB/s |
2017-10-16 10:12:13 +02:00
| Bare-Metal (flannel, bond) | 3 GB/s | 2.3 GB/s | 1.17 GB/s |
2017-10-04 08:44:26 +02:00
| Bare-Metal (calico, bond) | 3 GB/s | 2.3 GB/s | 1.17 GB/s |
2018-08-27 08:39:41 +02:00
| Digital Ocean | ? | ~940 MB/s | 820-880 MB/s |
2017-10-04 08:44:26 +02:00
| Google Cloud (flannel) | ? | 1.94 GB/s | 1.76 GB/s |
| Google Cloud (calico) | ? | 1.94 GB/s | 1.81 GB/s |
Notes:
2017-12-09 18:26:26 +01:00
* Calico and Flannel have comparable performance. Platform and configuration differences dominate.
2018-08-27 08:39:41 +02:00
* AWS and Azure node bandwidth (i.e. upper bound) depends greatly on machine type
2017-10-04 08:44:26 +02:00
* Only [certain AWS EC2 instance types ](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/network_mtu.html#jumbo_frame_instances ) allow jumbo frames. This is why the default MTU on AWS must be 1480.
2018-08-27 08:39:41 +02:00
* Neither CNI provider seems to be able to leverage bonded NICs well (bare-metal)