g00chyの技術ブログ

OpenWrtルーターでシングルコアでトラフィックを処理してしまう件

目次

何の話?

前回OpenWrtでルーターを作ってみたはいいが、シングルコアで全トラフィックを処理しているため、1コアあたりのCPU使用率が上限まで達してしまうとスループットが極端に低下する件への対応内容が見つかったという話。

結論

  • irqbalanceをインストールして、割り込み処理をほかのコアで振り分けるように

以下で見つけました。
パケット処理のマルチコアスケールについて - Qiita

環境

前回から変わっておりません。

作業内容

  • LuCIなどでログイン または sshでログインし、「irqbalance」をインストール
  • LuCIにログイン  または sshでログインし、「irqbalance」のスタートアップ有効化

その後iperf3などでトラフィックで負荷をかけてみつつ、ブロードバンドベンチマークで通信負荷をかけてみると

i5 Gen6だと、VLAN2<->VLAN3ですごい負荷を掛けている状態でも、VLAN1->WANへの通信に影響を与えないようになりました。 i5-htop
Pi4だと、CPUがどうしてもボトルネックになってしまうので(VLAN->WANがどうしてもUSB NICなので)見送り pi4-htop

最後に

これでガンガンVLAN側で通信してても気にしなくてよくなりました。
なかなか調べても出てこなかったのですがひょんなときにネットサーフィンしていたら見つかりました。


Share

comments powered by Disqus