38 网络参数 #
网络调优对于在电信工作负载中实现最佳性能至关重要。performance-settings.sh 脚本包含一个 configure_network_tuning 函数,该函数设置各种内核网络参数以优化缓冲区大小、数据包处理和 UDP 性能。
所提供的网络调优值是经过测试和验证的示例。但是,应根据您的具体用例、工作负载要求和硬件配置进行调整。
脚本配置了以下网络参数:
38.1 核心网络参数 #
net.core.rmem_max(1342177280 字节):最大接收套接字缓冲区大小。此参数设置可为任何套接字上的数据接收分配的最大内存量。net.core.wmem_max(516777216 字节):最大发送套接字缓冲区大小。此参数设置可为任何套接字上的数据发送分配的最大内存量。net.core.rmem_default(10000000 字节):默认接收套接字缓冲区大小。这是在新套接字上接收数据的初始缓冲区大小。net.core.wmem_default(10000000 字节):默认发送套接字缓冲区大小。这是在新套接字上发送数据的初始缓冲区大小。net.core.netdev_max_backlog(416384 包):当接口接收数据包的速度快于内核处理速度时,输入端排队的最大数据包数。增加此值有助于防止流量突发期间的数据包丢失。net.core.optmem_max(25165824 字节):每个套接字允许的最大辅助缓冲区大小。这会影响选项内存缓冲区的大小。net.core.netdev_budget(1024 包):在一次软中断运行中可以处理的最大数据包数。这有助于控制数据包处理期间的处理器利用率。
38.2 UDP 特定参数 #
net.ipv4.udp_mem(11416320 15221760 22832640 页面):控制 UDP 使用的内存量(以页面为单位)。这三个值分别代表:最小阈值:低于此值时,UDP 不会受到压力
压力阈值:UDP 开始施加内存压力
最大阈值:UDP 的最大内存页数
net.ipv4.udp_rmem_min(16384 字节):UDP 套接字的最小接收缓冲区大小。确保 UDP 接收的基准缓冲区大小。net.ipv4.udp_wmem_min(16384 字节):UDP 套接字的最小发送缓冲区大小。确保 UDP 传输的基准缓冲区大小。
38.3 实时调度 #
kernel.sched_rt_runtime_us(-1):禁用实时节流机制。将其设置为 -1 可允许实时任务使用无限的处理器时间,这对于需要确定性延迟的电信工作负载至关重要。
当使用 SUSE Telco Cloud Examples 储存库中的 performance-settings.sh 脚本时,这些参数会自动配置。该脚本应集成到您的镜像构建过程中,如 自动化部署 (第 VII 部分 “全自动定向网络配置”) 部分所述。