Linux内核协议栈 NAT性能优化之FAST NAT
生活随笔
收集整理的這篇文章主要介紹了
Linux内核协议栈 NAT性能优化之FAST NAT
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
各位看官非常對(duì)不起,本文是用因?yàn)閷懙?#xff0c;如果多有不便敬請(qǐng)見諒 代碼是在商業(yè)公司編寫的,在商業(yè)產(chǎn)品中也不能開源,再次抱歉 This presentation will highlight our efforts on optimizing the Linux TCP/IP stack for providing networking in an OpenStack environment, as deployed at our industrial customers. ? ? Our primary goal is to provide a high-quality and highly performant TCP/IP stack. To achieve this, we have to identify the performance bottlenecks in the Linux TCP/IP stack for networking in OpenStack. We have performed a lot of Linux TCP/IP stack performance tuning, related to NIC, CPU cache hit rate, spin lock, memory alloc and others. However, we learned while measuring that conntrack NAT uses too much CPU such for instance for the ipt_do_table function. Linux conntrack is very good, but it is too heavy and many functions are not used. Instead, we implemented FAST NAT in the Linux TCP/IP stack. ? ? We will present our efforts on reducing the performance costs. First, FAST NAT uses spin lock instead of global connection table but the entry to greatly reduces the CPU waiting time, and user policies is instead stored as a hash table not a list. The connection table and user policy is per-NUMA, this would avoid CPU through QPI waste much time and increase delay. Second, FAST NAT does not record the TCP status, but only record a tuple with relevant connection formation for NAT forward. This can reduce much check for forwarding packet. Entry in the connection table can be set to expire on an absolute expiration time or relative expiration time basis. Relative expiration time will incresae by per forwarding packet. Global connection table don't synchronize for reducing lock's using. This may casue one TCP stream in per-NUMA connection table. If we use Intel Ixgbe NIC with Flow Director ATR mode, the incoming stream and outcoming stream will have same index for multiple queues. The mentioned limit above will disappear. ? Limitations of FAST NAT only TCP and UDP are supported. Although some limitations exist, our work has paid off and resulted in 15-20 percentage pps improvement.
?
轉(zhuǎn)載于:https://www.cnblogs.com/scottieyuyang/p/5816168.html
總結(jié)
以上是生活随笔為你收集整理的Linux内核协议栈 NAT性能优化之FAST NAT的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 梦到妈妈死去什么意思
- 下一篇: Linux Supervisor 守护进