OpenWrtルーターでシングルコアでトラフィックを処理してしまう件
目次
何の話?
前回OpenWrtでルーターを作ってみたはいいが、シングルコアで全トラフィックを処理しているため、1コアあたりのCPU使用率が上限まで達してしまうとスループットが極端に低下する件への対応内容が見つかったという話。
結論
- irqbalanceをインストールして、割り込み処理をほかのコアで振り分けるように
以下で見つけました。
パケット処理のマルチコアスケールについて - Qiita
環境
前回から変わっておりません。
作業内容
- LuCIなどでログイン または sshでログインし、「irqbalance」をインストール
- LuCIにログイン または sshでログインし、「irqbalance」のスタートアップ有効化
その後iperf3などでトラフィックで負荷をかけてみつつ、ブロードバンドベンチマークで通信負荷をかけてみると
i5 Gen6だと、VLAN2<->VLAN3ですごい負荷を掛けている状態でも、VLAN1->WANへの通信に影響を与えないようになりました。
Pi4だと、CPUがどうしてもボトルネックになってしまうので(VLAN->WANがどうしてもUSB NICなので)見送り
最後に
これでガンガンVLAN側で通信してても気にしなくてよくなりました。
なかなか調べても出てこなかったのですがひょんなときにネットサーフィンしていたら見つかりました。