網路卡優化RPS/RFS

weixin_34293059發表於2018-01-24

網路卡優化

RSS receive side scaling,網路卡多佇列,需要硬體支援。網路卡接收到網路資料包後,要傳送一個硬體中斷,通知CPU取資料包。預設配置,都是由CPU0去做。

RPS receive packet steering,向某個CPU傳送一個軟中斷,來接收資料包,並遞交給應用程式。

RFS receive flow streering,維護兩種hash表,實現將軟中斷分散到多顆CPU上去處理。

 

1.選擇支援msi-x中斷方式的網路卡型別

#lspci –v

2.網路卡需要支援多佇列

#lspci –vvv

如果有MSI-X && Enable+ && TabSize > 1,則該網路卡是多佇列網路卡

3.2.6.35 以後的核心版本都支援google的RPS/RFS補丁,RHEL6.1以後。這個功能預設關閉需要手工開啟

開啟RPS(兩顆4c的CPU)

#echo ff > /sys/class/net/eth0/queues/rx-0/rps_cpus

開啟RFS(記憶體大的機器可以設定大於4096)

#echo 4096 > /sys/class/net/eth0/queues/rx-0/rps_flow_cnt

4096*N(N網路卡佇列數# cat /proc/interrupts | grep eth0)

#echo 32768 > /proc/sys/net/core/rps_sock_flow_entries

 

http://blog.netzhou.net/?p=181

http://blog.csdn.net/turkeyzhou/article/details/7528182

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/index.html

相關文章