こんにちは、GMOインターネットグループ株式会社 ネットワークソリューション部の梅崎です
今回はローカル5G案件でfree5GCを物理サーバー上で動かし
どれだけのトラフィックをさばけるのか試しました
目次
free5GCを試してみた -Vol.01
構成
- free5GC の全コンポーネントを入れた物理サーバー(10Gbps接続✕2)を一台
- UERANSIM の UE & gNB 相乗りの VM を5台ずつ、3台の物理サーバー(10Gbps接続)へ
- MEC見立ての物理サーバー(iperfの対向役)を一台
主に使ったもの
5Gコア | free5GC この時点のもの リンク1 リンク2 |
5Gアンテナ/端末シミュレーター | UERANSIM v3.2.6 リンク |
OS | Ubuntu 22.04.1 LTS |
トラフィック生成ツール | iperf version 2.1.5 |
free5GC 側のサーバー | CPU: Intel(R) Xeon(R) CPU E5-2660 v3 × 2ソケット(計20コア/40スレッド) メモリー: 128GB |
UERANSIM 側の物理サーバー | CPU: Intel(R) Xeon(R) CPU E5-2670 v3 × 2ソケット(計24コア/48スレッド) メモリー: 128GB or CPU: Intel(R) Xeon(R) CPU E5-2660 v3 × 2ソケット(計20コア/40スレッド) メモリー: 128GB |
UERANSIM の VM | CPU: 8個 メモリー: 1GB |
MEC見立ての物理サーバー | CPU: Intel(R) Xeon(R) CPU E5-2660 v3 × 2ソケット(計20コア/40スレッド) メモリー: 128GB |
トラフィック印加試験
1台のVMのみ
# MECへUEごとにのトラフィックを流す
#出す側
iperf -i 1 -t 3600 -b 100M -c ${受け側のIP} -P 1 -u
#受け側
iperf -s -i 1 -u
100Mbpsのときは問題ないですが
600Mbpsのときはそもそも、UERANSIMのVMからパケットが500Mbps前後しか出ない状態でした
色々試したところ400Mbpsのトラフィック一本ならパケロス等も無いようで
今回の構成のUE一台ごとの上限は400Mbpsのようです
15台のVM(UDP)
# MECへUEごとにトラフィックを流す
#出す側
iperf -i 1 -t 3600 -b 100M -c ${受け側のIP} -P 1 -u
#受け側
iperf -s -i 1 -u
100Mbpsを15台分は特に問題なく
100Mbps * 2本が15台分は一瞬3Gbpsになるもののすぐに
セッションが切断されてしまいました
15台のVM(TCP)
次にTCPでも同様なことを試してみました
# MECへUEごとにトラフィックを流す
#出す側
iperf -i 1 -t 3600 -b 300M -c ${受け側のIP} -P 2
#受け側
iperf -s -i 1
UDPをTCPにするとアップロード側が合計で最大7Gbps程度になり
正直TCPよりUDPの方がスピードが出そうだと思っていたのですが
TCPの方が圧倒的に多くのトラフィックを捌けていて驚いています……
15台のVM(UDP、チューニングをしてみる)
ちょっとTCP側と違いあまりチューニング方法が出てこなかったのですが
一つそれらしいコマンドを見つけたので試そうと思います
# UDPはソケットバッファを増やすとパフォーマンスが良くなるとのこと
sysctl -w net.core.rmem_max=4194304
sysctl -w net.core.wmem_max=4194304
# MECへUEごとにトラフィックを流す
#出す側
iperf -i 1 -t 3600 -b 100M -c ${受け側のIP} -P 1 -u
#受け側
iperf -s -i 1 -u
100Mbps*2を15台の動作はあまり変わらないという結果でした
ここで気がついたのですが合計トラフィックが3Gbpsを超えたところで
パケットがMEC役のサーバーへ届かなくなり
その後、しばらくしfree5GCのサーバーへ来るトラフィックが3Gbpsを割り始めると
パケットがMEC役のサーバーへ到達するようになりました
15台のVM(TCP、 UL/DL双方向)
ちょっとUDPは挙動が怪しいですが、これ以上はチューニングを頑張らないとならなさそうなので
一旦TCPの方を試していきます
ここまではUEからみてUL方向のトラフィックのみだったので
今度はTCPUL/DL双方向にしたところ
# MECへUEごと、UL/DL双方向にトラフィックを流す
#出す側
iperf -i 1 -t 3600 -b 500M -c ${受け側のIP} -d
#受け側
iperf -s -i 1
ULが4.5Gbpsほど、DLが3.5Gbpsほどになりました
ただ、ULのみのときと同じく数分放置しているとセッションが切れてしまうUEが数台出てくる状態です
15台のVM(TCP、DL方向)
次にUEからみてDL方向のトラフィックをテストしてみます
# MECへUEごと、UL/DL双方向にトラフィックを流す
#出す側
iperf -i 1 -t 3600 -b 500M -c ${受け側のIP} -r
#受け側
iperf -s -i 1
DL方向のトラフィックも7Gbps程度はでるようでした
こちらも数分放置しているとセッションが切れてしまうUEが数台出ていました
15台のVM(TCP、UL方向、7Gbps以下)
最後に今までの上限トラフィックより少ないトラフィックだと
UEのセッションが切れないようになってくれるか試してみます
# MECへUEごと、UL/DL双方向にトラフィックを流す
#出す側
iperf -i 1 -t 3600 -b 400M -c ${受け側のIP}
#受け側
iperf -s -i 1
最初は問題なく400Mbps*15台の6Gbpsほどを処理できています
ただ、こちらも一時間放置したところ
いくつかのUEのセッションが切れてping届かなくなっていました
まとめ
free5GCを物理サーバー上に構築したところ
今回のサーバースペックだとTCPがUL/DL合計7~8Gbps程度、UDPがULで3Gbps程度出るようですが
トラフィックを流し続けているとUEのセッションが不安定になってしまうという結果でした
ただし、この不安定さの原因がUERANSIM側なのかfree5GC側なのか、はたまた相性の問題なのかが不明なので
今後はUE/coreの別実装でもテストする必要があるかなと思います
最後に
安定性はさておくと現状のローカル5G環境として利用する分には
捌けるトラフィックは十分かなと感じています
次回は実際のRANをfree5GCにつなげてみて
安定性等々を試していこうかと思います
ブログの著者欄
採用情報
関連記事
KEYWORD
CATEGORY
-
技術情報(418)
-
イベント(156)
-
カルチャー(35)
-
デザイン(17)
TAG
- 5G
- Adam byGMO
- AI
- AWX
- BIT VALLEY
- blockchain
- ChatGPT
- cloudnative
- CloudStack
- CM
- CNDO
- CNDT
- CODEGYM Academy
- ConoHa
- CS
- CSS
- CTF
- DC
- Designship
- DevSecOpsThon
- Docker
- DTF
- GitLab
- GMO Developers Day
- GMO Developers Night
- GMO GPUクラウド
- GMO Hacking Night
- GMO kitaQ
- GMO SONIC
- GMOアドパートナーズ
- GMOアドマーケティング
- GMOイエラエ
- GMOグローバルサイン
- GMOデジキッズ
- GMOペイメントゲートウェイ
- GMOペパボ
- GMOリサーチ
- Go
- GTB
- Hardning
- Harvester
- HCI
- iOS
- IoT
- ISUCON
- JapanDrone
- Java
- JJUG
- K8s
- Kids VALLEY
- LLM
- MetaMask
- MySQL
- NFT
- NVIDIA
- OpenStack
- Perl
- PHP
- PHPcon
- PHPerKaigi
- QUIC
- Rancher
- RPA
- Ruby
- Selenium
- splunk
- SRE
- SSL
- Terraform
- TLS
- TypeScript
- UI/UX
- VLAN
- VS Code
- インターンシップ
- オブジェクト指向
- オンボーディング
- お名前.com
- カルチャー
- コンテナ
- スクラム
- スペシャリスト
- ソフトウェアテスト
- チームビルディング
- ドローン
- ネットワーク
- プログラミング教育
- ブロックチェーン
- ゆめみらいワーク
- リモートワーク
- 基礎
- 多拠点開発
- 大学授業
- 宮崎オフィス
- 応用
- 技育プロジェクト
- 新卒
- 暗号
- 機械学習
- 決済
PICKUP