0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Ubuntu で web3 サービスのホスティングで帯域制御したいメモ

Posted at

背景

arweave や Flux など, web3 なサービスを手元(ローカル)で動かしたい(つよつよ CPU, GPU, SSD が必要)
Solana validator https://qiita.com/syoyo/items/7f2ab6167c0d4311fcba とかも広範囲には web3 と言えるかも!? :thinking:

ただ帯域制限なくやると, 手元でのインターネット接続が遅くなる(or ほぼつながらなくなる)ため, 帯域制御したい.

ルーターや, proxy(VPS)経由で nginx などで制御するのも手かもであるが, もうちょっとぱぱっと楽にやりたい.

tc(traffic control)を使う?

ありがとうございます.

ただ, inbound も制御するには ifb を経由する必要があります

inbound も対応したい

ありがとうございます.

Ubuntu 20.04 を想定します.

ネットをあさると patch いれてカーネルビルドが必要...

みないなのがありますが, Ubuntu も最近(18.04 くらい?) は ifb は module でデフォルトで入っていますので特にセットアップは不要でした.
(/boot/config-*** で kernel が CONFIG_IFB=m でビルドされているのを確認してみましょう)

効果測定

↑のリンクにある帯域制限スクリプトで 50Mb/s に制限してみました.

speedtest (apt で入る)使ってみました.

iftop で見てみるのが楽でいいかも!

Screenshot from 2022-07-27 18-55-26.png

$ speedtest                                                                                                         │································
Retrieving speedtest.net configuration...                                                                                                  │································
Testing from NTT (153.246.208.245)...                                                                                                      │································
Retrieving speedtest.net server list...                                                                                                    │································
Selecting best server based on ping...                                                                                                     │································
Hosted by Rakuten Mobile, Inc (Tokyo) [1.80 km]: 8.989 ms                                                                                  │································
Testing download speed................................................................................                                     │································
Download: 47.52 Mbit/s                                                                                                                     │································
Testing upload speed......................................................................................................                 │································
Upload: 94.16 Mbit/s

Download は制御できたようですが Upload は限界突破していました... :sweat_smile: (帯域制御できていないのか, もしくはロスセス圧縮して見かけの速度がアップしているのか...)

その他

tcplim がありました. こちらは iptables 設定以外はユーザースペースのようですので柔軟性があるかも!

あとはプロセスをコンテナ実行して, コンテナランタイム側で帯域制限する手もあるかも!
(セキュリティ的にもそちらが理想かも(GPU とか SSD 使う場合はオーバヘッドの少ないコンテナサービス使うのがよさそう(Docker は Disk IO がボトルネックのままだったりするかしらん?))

TODO

  • ポート単位で制御する
  • 探せば golang とかで書かれた完全ユーザースペースで動くのもあるかも!
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?