- /etc/default/grubのGRUB_CMDLINE_LINUXにisolcpus=XXX,XXX...を追加 (使うぶんだけ除外)
- 以下コマンドで設定値反映
sudo update-grub
sudo shutdown -h now
- /proc/interruptsを見て、割り込みされてないか確認
この辺 (主にコネクション数増やしたりバッファ増やしたりする
- net.core.somaxconn
- net.core.rmem_max
- net.core.wmem_max
- net.ipv4.tcp_rmem
- net.ipv4.tcp_wmem
- net.ipv4.tcp_syncookies
- net.ipv4.tcp_mem
- net.core.netdev_max_backlog
https://github.com/tranchiendang/linux-websocket-tuning/blob/master/README.md#kernel-tuning
- NICの1ポート目/2ポート目をループバック接続
- Cだったらsched.hのsched_setaffinity() などで使うコアを指定
- DPDKだったらこの辺が参考になりそう
- websocketだったら、サーバーはメッセージをエコーバックするように組む
- NICにもよるけど、ethtoolとか使えたらthroughputわかるかも