- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能. 但是通过对 Cilium 不同模式的切换/功能的启用, 可以进一步提升 Cilium 的网络性能. 具体调优项包括不限于
CONFIG_PREEMPT_NONE=y
tuned-adm profile network-latency
或 network-throughput
irqbalance
,将网卡中断引脚指向特定 CPU 在网络/网卡设备/OS等条件满足的情况下, 我们尽可能多地启用这些调优选项, 相关优化项会在后续文章逐一更新. 敬请期待. 。
今天我们来调优 Cilium, 启用 Pod 的 BBR 拥塞控制, 以为互联网流量提供更高的带宽和更低的延迟. 。
Cilium 的带宽管理器提供的围绕 MQ/FQ 设置的基础架构还允许对 Pod 使用 TCP BBR 拥塞控制。当 Pod 被暴露在 Kubernetes 服务背后,面对来自互联网的外部客户端时,BBR 尤其适用。BBR 可为互联网流量提供更高的带宽和更低的延迟,例如,事实证明,BBR 的吞吐量可比目前最好的基于损耗的拥塞控制高出 2,700 倍,队列延迟可降低 25 倍.
为了让 BBR 在 Pod 上可靠运行,它需要 5.18 或更高版本的内核.
BBR 还需要 eBPF Host-Routing,以保留网络数据包的套接字关联,直到数据包进入主机命名空间物理设备上的 FQ 队列 discipline.
启用带宽管理器和 Pod 的 BBR:
helm upgrade cilium cilium/cilium --version 1.13.4 \
--namespace kube-system \
--reuse-values \
--set bandwidthManager.bbr=true
要验证您的安装是否使用 Pods 的 BBR 运行,请在任何 Cilium pod 中运行 cilium status ,并查找报告 "BandwidthManager" 状态的行,该行应显示 EDT with BPF 以及 [BBR] 。具体如下
$ kubectl -n kube-system exec ds/cilium -- cilium status | grep BandwidthManager
BandwidthManager: EDT with BPF [BBR] [eth0]
本文继续调优 Cilium, 启用 Pod 的 BBR 拥塞控制, 以为互联网流量提供更高的带宽和更低的延迟. 前提是 Kernel >= 5.18, 并启用带宽管理器和基于 eBPF 的主机路由. 。
至此,性能调优已完成实战验证:
三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写. 。
最后此篇关于Cilium系列-12-启用Pod的BBR拥塞控制的文章就讲到这里了,如果你想了解更多关于Cilium系列-12-启用Pod的BBR拥塞控制的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
可以使用以下命令在 linux 中启用 TCP BBR: net.core.default_qdisc=fq net.ipv4.tcp_congestion_control=bbr 解释为 here
我是一名优秀的程序员,十分优秀!