knot DNS 02 Tips - XDP

本文介绍KnotXDP(AF_XDP)的配置方法及性能优化策略,包括内核版本要求、支持的网卡类型、配置参数详解及限制条件等。通过调整CPU工作模式、启用UDP RRS Hash等功能实现高性能DNS解析。
部署运行你感兴趣的模型镜像

Knot XDP & optimizations

Kernel: Knot XDP (AF_XDP) 高性能模式, 需升级内核到 4.18.x(推荐使用 5.x 内核).
version: 3.x
网卡: 建议使用Intel系列多队列支持 XDP 网卡(700系列(i40e),500系列(ixgbe)),

configure

listen-xdp:
配置 xdp, 格式为 interface@port:

server:
    rundir: "/var/run/knot"
    user: knot:knot
    listen: [ 127.0.0.1@53, ::1@53 ]
    listen-xdp: enp5s0f1@53

Optimizations

DEVNAME=enp5s0f1
# 调整CPU为性能模式
for file in `find  /sys/devices/system/cpu/ -name scaling_governor`; do echo performance > $file; done
# 启用 UDP RSS HASH
ethtool -N $DEVNAME rx-flow-hash udp4 sdfn
ethtool -N $DEVNAME rx-flow-hash udp6 sdfn
# 设置网卡 RX/TX channels(queue)
ethtool -L $DEVNAME combined 64
# 设置网卡 RX/TX 硬件描叙符数量
ethtool -G $DEVNAME rx 1024 tx 2048
# 
renice -n 19 -p $(pgrep '^ksoftirqd/[0-9]*$')

Limitations

  1. XDP 只处理UDP请求;
  2. 不支持 VLAN;
  3. 不支持 Dynamic DNS;
  4. MTU 限制 1792 长度;
  5. 不支持UDP Checksum校验;
  6. 一个网卡不支持多个BPF filters;
  7. BPF filter 不支持自动卸载, 需手动执行ip link set dev <ETH> xdp off;
  8. big-endian字节序平台需重新编译;
  9. Symmetrical routing is required (要求 源/目的 MAC/IP 一致, 有点类似对称哈希, 具体作用不太清楚, 可能是用于XDP TX与RX使用同一个queue id);

kxdpgun

kxdpgun 是 Knot 基于XDP开发的dns性能测试工具, 使用很简单:

Usage: kxdpgun [-t duration] [-Q qps] [-b batch_size] [-r] [-p port] [-F cpu_affinity] [-I interface] -i queries_file dest_ip

-I interface: knot 3.1 version
-i queries_file 格式:

abc6.example.com. AAAA
a.example.com. NS E
ab.example.com. A D
abcd.example.com. DS D

示例:

./kxdpgun -i name.txt -I enp5s0f1 172.16.41.170 -t 30 -Q 8000000 -F 0xffff 

在本地测试环境, CPU E5-2670 X 2 单个域名请求可达到 8Mpps %100 无丢失:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Reference

Knot Mode XDP

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值