RSS

マルチキューNIC読み込むとデフォルトで有効になる感じ. ならなかったら https://sfujiwara.hatenablog.com/entry/20121221/1356084456

無効化

irqのCPU割り当て(affinity mask)を編集して, 一つのコアにしか割り込まないようにした

echo 2 > /proc/irq/{irq_num}/smp_affinity

割り込みの確認

cat /proc/interrupts

参考
https://sfujiwara.hatenablog.com/entry/20121221/1356084456 https://diary.atzm.org/20111027.html

※ダメだった方法※
ここら辺の記事の内容
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/performance_tuning_guide/sect-red_hat_enterprise_linux-performance_tuning_guide-networking-configuration_tools#sect-Red_Hat_Enterprise_Linux-Performance_Tuning_Guide-Configuration_tools-Configuring_Receive_Side_Scaling_RSS https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/performance_tuning_guide/network-rss

modprobe ixgbe RSS=1 と modprobe ixgbe RSS=0 //多分0が正しいんだけど..
modprobe uxgbe MQ=0

モジュールパラメータ RSSとMQ(とNode)合わせて指定もしたけどうまくいかん https://stackoverflow.com/questions/23730268/ixgbe-setting-the-number-of-rx-tx-queues
https://www.nic.ad.jp/ja/materials/iw/2011/proceedings/s09/s09-01.pdf

ハードウェアオフローディング

sudo ethtool -K eth5 rx off

Large Receive Offload and Generic Receive Offload

分割されたTCPパケットをNICで結合してOSに渡す. GROはそれのソフトウェア実装

ethtool -K eth5 lro on/off
ethtool -K eth5 gro on/off