Skip to content

Commit

Permalink
Merge pull request #2651 from spidernet-io/pr/welan/per
Browse files Browse the repository at this point in the history
add performance figures
  • Loading branch information
weizhoublue authored Nov 23, 2023
2 parents d8e42e9 + 2f5b0c6 commit 5d34577
Show file tree
Hide file tree
Showing 19 changed files with 40 additions and 12 deletions.
6 changes: 5 additions & 1 deletion README-zh_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Spiderpool 是一个 kubernetes 的 underlay 网络解决方案,它增强了 [

* 基于 CRD 的双栈 IPAM 能力

提供了独享、共享的 IP 地址池,支持设置各种亲和性,为中间件等有状态应用和 kubevirt 等固定 IP 地址值,为无状态应用固定 IP 地址范围,自动化管理独享的 IP 池,优秀的 IP 回收避免 IP 泄露等。
提供了独享、共享的 IP 地址池,支持设置各种亲和性,为中间件等有状态应用和 kubevirt 等固定 IP 地址值,为无状态应用固定 IP 地址范围,自动化管理独享的 IP 池,优秀的 IP 回收避免 IP 泄露等。并且,具备优秀的 [IPAM 分配性能](./docs/concepts/ipam-performance-zh_CN.md)

* Pod 接入多网卡

Expand All @@ -70,6 +70,10 @@ Spiderpool 是一个 kubernetes 的 underlay 网络解决方案,它增强了 [

Spiderpool 组件和其提供的所有功能,支持 ipv4-only、ipv6-only、dual-stack 场景。

* 优秀的网络延时和吞吐量性能

Spiderpool 在网络延时和吞吐量方面表现出色,超过了 overlay CNI,可参考 [性能报告](./docs/concepts/io-performance-zh_CN.md)

* 指标

**Spiderpool 可应用在哪些场景?**
Expand Down
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Spiderpool is a Kubernetes underlay network solution that enhances the capabilit

* CRD-based dual-stack IPAM capability

Spiderpool provides exclusive and shared IP address pools, supporting various affinity settings. It allows configuring specific IP addresses for stateful applications like middleware and kubevirt, while enabling fixed IP address ranges for stateless ones. Spiderpool automates the management of exclusive IP pools, ensuring excellent IP reclamation to avoid IP leakage.
Spiderpool provides exclusive and shared IP address pools, supporting various affinity settings. It allows configuring specific IP addresses for stateful applications like middleware and kubevirt, while enabling fixed IP address ranges for stateless ones. Spiderpool automates the management of exclusive IP pools, ensuring excellent IP reclamation to avoid IP leakage. In additions, it owns [wonderful IPAM performance](./concepts/ipam-performance.md) .

* Multiple network interface access for Pods

Expand All @@ -62,7 +62,7 @@ Spiderpool is a Kubernetes underlay network solution that enhances the capabilit

* eBPF enhancements

The eBPF-based kube-proxy replacement significantly accelerates service access, while socket short-circuiting technology improves local Pod communication efficiency within the same node.
The eBPF-based kube-proxy replacement significantly accelerates service access, while socket short-circuiting technology improves local Pod communication efficiency within the same node. Compared with kube-proxy manner, the improvement of the performance is Up to 25% on network delay, up to 50% on network throughput.

* RDMA support

Expand All @@ -72,6 +72,10 @@ Spiderpool is a Kubernetes underlay network solution that enhances the capabilit

Spiderpool supports IPv4-only, IPv6-only, and dual-stack environments.

* Good network performance of latency and throughput

Spiderpool performs better than overlay CNI on network latency and throughput, referring to [performance report](./docs/concepts/io-performance.md)

* Metrics

**Which scenarios can Spiderpool be applied in?**
Expand Down
6 changes: 5 additions & 1 deletion docs/README-zh_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Spiderpool 是一个 kubernetes 的 underlay 网络解决方案,它增强了 [

* 基于 CRD 的双栈 IPAM 能力

提供了独享、共享的 IP 地址池,支持设置各种亲和性,为中间件等有状态应用和 kubevirt 等固定 IP 地址值,为无状态应用固定 IP 地址范围,自动化管理独享的 IP 池,优秀的 IP 回收避免 IP 泄露等。
提供了独享、共享的 IP 地址池,支持设置各种亲和性,为中间件等有状态应用和 kubevirt 等固定 IP 地址值,为无状态应用固定 IP 地址范围,自动化管理独享的 IP 池,优秀的 IP 回收避免 IP 泄露等。并且,具备优秀的 [IPAM 分配性能](./concepts/ipam-performance-zh_CN.md)

* Pod 接入多网卡

Expand All @@ -70,6 +70,10 @@ Spiderpool 是一个 kubernetes 的 underlay 网络解决方案,它增强了 [

Spiderpool 组件和其提供的所有功能,支持 ipv4-only、ipv6-only、dual-stack 场景。

* 优秀的网络延时和吞吐量性能

Spiderpool 在网络延时和吞吐量方面表现出色,超过了 overlay CNI,可参考 [性能报告](./concepts/io-performance-zh_CN.md)

* 指标

**Spiderpool 可应用在哪些场景?**
Expand Down
6 changes: 5 additions & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Spiderpool is a Kubernetes underlay network solution that enhances the capabilit

* CRD-based dual-stack IPAM capability

Spiderpool provides exclusive and shared IP address pools, supporting various affinity settings. It allows configuring specific IP addresses for stateful applications like middleware and kubevirt, while enabling fixed IP address ranges for stateless ones. Spiderpool automates the management of exclusive IP pools, ensuring excellent IP reclamation to avoid IP leakage.
Spiderpool provides exclusive and shared IP address pools, supporting various affinity settings. It allows configuring specific IP addresses for stateful applications like middleware and kubevirt, while enabling fixed IP address ranges for stateless ones. Spiderpool automates the management of exclusive IP pools, ensuring excellent IP reclamation to avoid IP leakage. In additions, it owns [wonderful IPAM performance](./concepts/ipam-performance.md).

* Multiple network interface access for Pods

Expand All @@ -72,6 +72,10 @@ Spiderpool is a Kubernetes underlay network solution that enhances the capabilit

Spiderpool supports IPv4-only, IPv6-only, and dual-stack environments.

* Good network performance of latency and throughput

Spiderpool performs better than overlay CNI on network latency and throughput, referring to [performance report](./concepts/io-performance.md)

* Metrics

**Which scenarios can Spiderpool be applied in?**
Expand Down
4 changes: 4 additions & 0 deletions docs/concepts/io-performance-zh_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,8 @@ netperf 是一种广泛使用的网络性能测试工具,可让您测量网络
| 基于 macvlan 的同子网且全量 eBPF 加速的 Spiderpool Pod | 18992.9 rps |
| 节点到节点 | 47560.5 rps |

![performance](../images/performance-sockperf.png)

## iperf 网络性能测试

iperf 是一种流行的网络性能测试工具,可让您测量两个端点之间的网络带宽。它广泛用于评估网络连接的带宽和性能。在本章节中,我们通过它分别来测试 Pod 跨节点访问 Pod 和 Service。其中测试访问 Service 的 cluster IP 时,分为 `kube-proxy` 或者 `cilium + kube-proxy replacement` 两种场景。
Expand Down Expand Up @@ -139,6 +141,8 @@ redis-benchmark 旨在通过模拟多个客户端并执行各种 Redis 命令来
| 基于 macvlan 的同子网和 kube-proxy 的 Spiderpool Pod | 45578.85 rps | 46274.87 rps |
| 基于 macvlan 的同子网且全量 eBPF 加速的 Spiderpool Pod | 63211.12 rps | 64061.50 rps |

![performance](../images/performance-redis.png)

## 总结

Spiderpool 做为 Underlay 网络解决方案时,其 IO 性能在大部分场景下都领先于 Calico、Cilium。
4 changes: 4 additions & 0 deletions docs/concepts/io-performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ Sockperf is a network benchmarking tool that can be used to measure network late
| Spiderpool Pod based on macvlan on the same subnet and fully eBPF accelerated | 27.7 usec |
| node to node | 32.2 usec |

![performance](../images/performance-sockperf.png)

## netperf performance test

netperf is a widely used network performance testing tool that allows you to measure various aspects of network performance, such as throughput. We can use netperf to test Pod's cross-node access to Pod and Service respectively. When testing access to Service's cluster IP, there are two scenarios: `kube-proxy` or `cilium + kube-proxy replacement`.
Expand Down Expand Up @@ -139,6 +141,8 @@ redis-benchmark is designed to measure the performance and throughput of a Redis
| Spiderpool Pod based on macvlan on the same subnet and kube-proxy | 45578.85 rps | 46274.87 rps |
| Spiderpool Pod based on macvlan on the same subnet and fully eBPF accelerated | 63211.12 rps | 64061.50 rps |

![performance](../images/performance-redis.png)

## Summary

When Spiderpool is used as an underlay network solution, its IO performance is ahead of Calico and Cilium in most scenarios.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# IPAM

**简体中文** | [**English**](./ipam.md)
**简体中文** | [**English**](./ipam-des.md)

## Underlay 网络和 Overlay 网络的 IPAM

Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/ipam.md → docs/concepts/ipam-des.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# IPAM

**English** | [**简体中文**](./ipam-zh_CN.md)
**English** | [**简体中文**](./ipam-des-zh_CN.md)

## IPAM for Underlay and overlay network solutions

Expand Down
2 changes: 2 additions & 0 deletions docs/concepts/ipam-performance-zh_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@

## 分析

![performance](../images/ipam-performance.png)

Spiderpool 的 IPAM 分配原理,是整个集群节点的所有 Pod 都从同一个 CIDR 中分配 IP,所以 IP 分配和释放需要面临激烈的竞争,IP 分配性能的挑战会更大;Whereabouts 和 Calico 、Cilium的 IPAM 分配原理,是每个节点都有一个小的 IP 集合,所以 IP 分配的竞争比较小,IP 分配性能的挑战会小。但从上述实验数据上看,虽然 Spdierpool 的 IPAM 原理是 "吃亏" 的,但是分配 IP 的性能却是很好的。

在测试过程中,遇到如下现象:
Expand Down
2 changes: 2 additions & 0 deletions docs/concepts/ipam-performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ The following shows the results of the IPAM performance test, which includes two

## analyze

![performance](../images/ipam-performance.png)

Spiderpool allocate IP addresses from the same CIDR range to all Pods in the whole cluster. Consequently, IP allocation and release face intense competition, presenting larger challenges in terms of IP allocation performance. By comparison, Whereabouts, Calico, and Cilium adopt an IPAM allocation principle where each node has a small IP address pool. This reduces the competition for IP allocation and mitigates the associated performance challenges. However, experimental data shows that despite Spiderpool's "lossy" IPAM principle, its IP allocation performance is actually quite good.

During testing, the following phenomenon was encountered:
Expand Down
Binary file modified docs/images/arch.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/ipam-performance.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/performance-redis.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/performance-sockperf.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ nav:
- FAQ: usage/debug.md
- Concepts:
- Architecture: concepts/arch.md
- IPAM: concepts/ipam.md
- IPAM: concepts/ipam-des.md
- IPAM Performance: concepts/ipam-performance.md
- Plugin coordinator: concepts/coordinator.md
- I/O Performance: concepts/io-performance.md
Expand Down
2 changes: 1 addition & 1 deletion docs/usage/readme-zh_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@

- 分配和释放 IP 地址的高效性能,可参考[报告](../concepts/ipam-performance-zh_CN.md)。

- 合理的 IP 回收机制设计,使得集群或应用在故障恢复过程中,能够及时分配到 IP 地址。可参考[例子](../concepts/ipam-zh_CN.md)。
- 合理的 IP 回收机制设计,使得集群或应用在故障恢复过程中,能够及时分配到 IP 地址。可参考[例子](../concepts/ipam-des-zh_CN.md)。

### 多网卡功能

Expand Down
2 changes: 1 addition & 1 deletion docs/usage/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ For instructions on how to upgrade Spiderpool, please refer to the [upgrade guid
- Efficient performance in IP address allocation and release is ensured. Refer to the [report](../concepts/ipam-performance.md) for details..
- Well-designed IP reclamation mechanisms promptly allocate IP addresses during cluster or application recovery processes. Refer to the [example](../concepts/ipam.md) for details.
- Well-designed IP reclamation mechanisms promptly allocate IP addresses during cluster or application recovery processes. Refer to the [example](../concepts/ipam-des.md) for details.
### Multiple Network Interfaces Features
Expand Down
2 changes: 1 addition & 1 deletion docs/usage/spider-ippool-zh_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ spec:
### 指定 IPPool 为应用分配 IP 地址
> 对于以下指定使用 SpiderIPPool 规则的优先级,请参考 [IP 候选池规则](./../concepts/ipam-zh_CN.md#获取候选池)
> 对于以下指定使用 SpiderIPPool 规则的优先级,请参考 [IP 候选池规则](./../concepts/ipam-des-zh_CN.md#获取候选池)
#### 使用 Pod Annotation 指定使用 IP 池
Expand Down
2 changes: 1 addition & 1 deletion docs/usage/spider-ippool.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ spec:
### Specify IPPool to Allocate IP Addresses to Applications
> For the priority rules when specifying the SpiderIPPool, refer to the [Candidate Pool Acquisition](../concepts/ipam.md#candidate-pool-acquisition).
> For the priority rules when specifying the SpiderIPPool, refer to the [Candidate Pool Acquisition](../concepts/ipam-des.md#candidate-pool-acquisition).
#### Use Pod Annotation to Specify IP Pool
Expand Down

0 comments on commit 5d34577

Please sign in to comment.