linux网络包转发性能优化与分析

一.如果用linux系统做网关类数据转发功能,则需要对linux系统做很多网络优化,才能使转发包性能达到最优 一.如果用linux系统做网关类数据转发功能,则需要对linux系统做很多网络优化,才能使转发包性能达到最优
二.可以从如下几个方面着手处理 二.可以从如下几个方面着手处理
1.iptables规则,tc规则 1.iptables规则,tc规则
2.ecmp流量打散 2.ecmp流量打散
3.contrack 3.contrack
连接跟踪(CONNTRACK),跟踪并且记录连接状态。Linux为每一个经过网络堆栈的数据包,生成一个新的连接记录项 (Connection entry)。 连接跟踪(CONNTRACK),跟踪并且记录连接状态。Linux为每一个经过网络堆栈的数据包,生成一个新的连接记录项 (Connection entry)。
4.RPS (Receive Packet Steering) 4.RPS (Receive Packet Steering)
他把收到的packet依据一定的hash规则给hash到不同的CPU上去,以达到各个CPU负载均衡的目的。 他把收到的packet依据一定的hash规则给hash到不同的CPU上去,以达到各个CPU负载均衡的目的。
5.网卡性能调优,修改系统参数 5.网卡性能调优,修改系统参数
net.core.netdev_budget net.core.netdev_budget
在软中断中还要用到一个全局变量netdev_budget,这个变量表示一次软中断所能接收的最大报文数,默认值为300 在软中断中还要用到一个全局变量netdev_budget,这个变量表示一次软中断所能接收的最大报文数,默认值为300
net.core.netdev_max_backlog net.core.netdev_max_backlog
每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目 每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
6.系统层面,如dpdk,硬件方面,如P4 6.系统层面,如dpdk,硬件方面,如P4
欢迎一起留言讨论. 欢迎一起留言讨论.
经验分享 程序员 微信小程序 职场和发展