Skip to content

Instantly share code, notes, and snippets.

@Hakkadaikon
Last active January 16, 2025 05:35
Show Gist options
  • Save Hakkadaikon/d837eeaeaeea888d97dda1977c873aa5 to your computer and use it in GitHub Desktop.
Save Hakkadaikon/d837eeaeaeea888d97dda1977c873aa5 to your computer and use it in GitHub Desktop.
つよつよサーバーを使ったWebSocket / Nostrリレーのパフォーマンス評価案

設定チューニング

アプリで使うCPUコアの割り込みを禁止

  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() などで使うコアを指定

テスト

iperf3やDPDKのpmd testで、ワイヤーレートが出るかテスト

websocketやnostrリレー (DB保存なし) のスループットをテスト

  • websocketだったら、サーバーはメッセージをエコーバックするように組む
  • NICにもよるけど、ethtoolとか使えたらthroughputわかるかも
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment