網路卡優化
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