ここでは、トラフィックジェネレータTRexを性能測定ツールとして使用し、Simple PFCP ClientをPFCPシミュレータとして使用して、GTP-U処理方式の異なるオープンソースの5G UPFの簡単な性能測定について説明します。これは、Proxmox VE上のVMで測定したものです。詳細はGithubの記事に書きましたので、こちらを参照して下さい。
なお、測定結果は、測定条件に大きく依存します。これらの結果は、特定の測定条件での測定例に過ぎません。また、単純な測定であり、このコメントによると、VM間で測定してもあまり意味が無いかもしれませんが、実際のデバイスで測定する場合の構成の参考になれば幸いです。
5G UPF性能測定の簡単な概要
測定した環境は以下の通りです。各UPFのN3、N6インターフェースに対して、UpLink(N3→UPF→N6)とDownLink(N6→UPF→N3)をそれぞれ測定します。

VM | SW & Role | IP address | OS | CPU | Mem | HDD |
---|---|---|---|---|---|---|
VM1 | Simple PFCP Client | 192.168.0.111 /24 |
Ubuntu 24.04 | 1 | 1GB | 10GB |
VM-TG | TRex Traffic Generator |
192.168.0.131 /24 |
Ubuntu 22.04 | 3 | 8GB | 20GB |
VM-DUT | each UPF DUT (Device Under Test) |
192.168.0.151 /24 |
Ubuntu 24.04 or 22.04 |
2 | 8GB | 20GB |
このための、Cisco TRexとSimple PFCP Clientの詳細なインストール手順については、以下を参照して下さい。
TRexについては、最新のv3.06の通常のインストールではGTP-U Headerの機能が不足するため、若干手を加えています。また、Simple PFCP Clientについては、こちらも最新のScapy v2.6.1のPFCP機能が不足しているため、Scapyのpfcp.pyに手を加えて作成しました。
念のため補足しますと、Simple PFCP Clientの役割は、SMFによるPFCPを介したUPFのGTP-U処理に関する設定を、5G C-Planeを持ち出さずに、PFCPのみシミュレートして実現することにあります。Pythonスクリプトです。
測定したオープンソース5G UPFの特徴
今回、性能測定したオープンソース5G UPFは、GTP-U処理方式の観点で以下の通り異なるUPFになります。
# | UPF | GTP-U処理方式の特徴 |
---|---|---|
a | Open5GS v2.7.2 (2025.01.12) | user space |
b | free5GC UPF (go-upf) v1.2.4 (2025.01.02) | kernel module |
c | UPG-VPP v1.13.0 (2024.03.25) | VPP/DPDK |
d | eUPF v0.6.4 (2024.12.23) | eBPF/XDP |
測定結果
# | UPF | UpLink Gbps |
Kpps |
CPU% |
DownLink Gbps |
Kpps |
CPU% |
---|---|---|---|---|---|---|---|
a1 | Open5GS UPF (TUN) |
Tx:1.79 Rx:1.08 |
Tx:150.07 Rx:93.65 |
1.68 | Tx:1.74 Rx:1.33 |
Tx:150.36 Rx:111.87 |
1.89 |
a2 | Open5GS UPF (TAP) |
Tx:1.79 Rx:1.16 |
Tx:150.14 Rx:100.07 |
1.56 | Tx:1.74 Rx:1.17 |
Tx:150.11 Rx:98.55 |
1.51 |
b | free5GC UPF | Tx:5.96 Rx:4.8 |
Tx:500.31 Rx:414.59 |
5.39 | Tx:4.05 Rx:3.03 |
Tx:350.09 Rx:254.98 |
4.23 |
c | UPG-VPP | Tx:9.42 Rx:6.87 |
Tx:790.31 Rx:593.79 |
12.54 | Tx:10.31 Rx:6.94 |
Tx:891.25 Rx:585.1 |
12.13 |
d | eUPF | Tx:11.67 Rx:9.42 |
Tx:978.83 Rx:814.75 |
48.75 | Tx:11.24 Rx:9.77 |
Tx:971.56 Rx:819.85 |
44.25 |
CPU%(負荷) - TRex VM (VM-TG)のコア毎。この場合、使用されるコアは1つだけです。
a1. Open5GS UPF (TUN)の測定ログ
UpLink measurement
start -f stl/gtp_1pkt_simple.py -p 0 -m 150kpps -d 60
Global Statistics
connection : localhost, Port 4501 total_tx_L2 : 1.79 Gbps
version : STL @ v3.06 total_tx_L1 : 1.81 Gbps
cpu_util. : 1.68% @ 1 cores (1 per dual port) total_rx : 1.08 Gbps
rx_cpu_util. : 0.18% / 93.65 Kpps total_pps : 150.07 Kpps
async_util. : 0% / 4.79 bps drop_rate : 705.53 Mbps
total_cps. : 0 cps queue_full : 12,034 pkts
Port Statistics
port | 0 | 1 | total
-----------+-------------------+-------------------+------------------
owner | root | root |
link | UP | UP |
state | TRANSMITTING | IDLE |
speed | 200 Gb/s | 200 Gb/s |
CPU util. | 1.68% | 0.0% |
-- | | |
Tx bps L2 | 1.79 Gbps | 0.09 bps | 1.79 Gbps
Tx bps L1 | 1.81 Gbps | 0.13 bps | 1.81 Gbps
Tx pps | 150.07 Kpps | 0 pps | 150.07 Kpps
Line Util. | 0.91 % | 0 % |
--- | | |
Rx bps | 0 bps | 1.08 Gbps | 1.08 Gbps
Rx pps | 0 pps | 93.65 Kpps | 93.65 Kpps
---- | | |
opackets | 2687829 | 1 | 2687830
ipackets | 0 | 1739130 | 1739130
obytes | 4004865210 | 46 | 4004865256
ibytes | 0 | 2514780580 | 2514780580
tx-pkts | 2.69 Mpkts | 1 pkts | 2.69 Mpkts
rx-pkts | 0 pkts | 1.74 Mpkts | 1.74 Mpkts
tx-bytes | 4 GB | 46 B | 4 GB
rx-bytes | 0 B | 2.51 GB | 2.51 GB
----- | | |
oerrors | 0 | 0 | 0
ierrors | 0 | 0 | 0
status: |
Press 'ESC' for navigation panel...
status:
tui>
DownLink measurement
start -f stl/udp_1pkt_simple.py -p 1 -m 150kpps -d 60
Global Statistics
connection : localhost, Port 4501 total_tx_L2 : 1.74 Gbps
version : STL @ v3.06 total_tx_L1 : 1.76 Gbps
cpu_util. : 1.89% @ 1 cores (1 per dual port) total_rx : 1.33 Gbps
rx_cpu_util. : 0.21% / 111.87 Kpps total_pps : 150.36 Kpps
async_util. : 0% / 9.02 bps drop_rate : 413.05 Mbps
total_cps. : 0 cps queue_full : 3,817 pkts
Port Statistics
port | 0 | 1 | total
-----------+-------------------+-------------------+------------------
owner | root | root |
link | UP | UP |
state | IDLE | TRANSMITTING |
speed | 200 Gb/s | 200 Gb/s |
CPU util. | 0.0% | 1.89% |
-- | | |
Tx bps L2 | 1.41 bps | 1.74 Gbps | 1.74 Gbps
Tx bps L1 | 2.02 bps | 1.76 Gbps | 1.76 Gbps
Tx pps | 0 pps | 150.36 Kpps | 150.36 Kpps
Line Util. | 0 % | 0.88 % |
--- | | |
Rx bps | 1.33 Gbps | 0 bps | 1.33 Gbps
Rx pps | 111.87 Kpps | 0 pps | 111.87 Kpps
---- | | |
opackets | 1 | 2007396 | 2007397
ipackets | 1304349 | 0 | 1304349
obytes | 46 | 2902694616 | 2902694662
ibytes | 1933043782 | 0 | 1933043782
tx-pkts | 1 pkts | 2.01 Mpkts | 2.01 Mpkts
rx-pkts | 1.3 Mpkts | 0 pkts | 1.3 Mpkts
tx-bytes | 46 B | 2.9 GB | 2.9 GB
rx-bytes | 1.93 GB | 0 B | 1.93 GB
----- | | |
oerrors | 0 | 0 | 0
ierrors | 0 | 0 | 0
status: |
Press 'ESC' for navigation panel...
status:
tui>
a2. Open5GS UPF (TAP)の測定ログ
UpLink measurement
start -f stl/gtp_1pkt_simple.py -p 0 -m 150kpps -d 60
Global Statistics
connection : localhost, Port 4501 total_tx_L2 : 1.79 Gbps
version : STL @ v3.06 total_tx_L1 : 1.81 Gbps
cpu_util. : 1.56% @ 1 cores (1 per dual port) total_rx : 1.16 Gbps
rx_cpu_util. : 0.1% / 100.07 Kpps total_pps : 150.14 Kpps
async_util. : 0% / 7.67 bps drop_rate : 632.05 Mbps
total_cps. : 0 cps queue_full : 5,803 pkts
Port Statistics
port | 0 | 1 | total
-----------+-------------------+-------------------+------------------
owner | root | root |
link | UP | UP |
state | TRANSMITTING | IDLE |
speed | 200 Gb/s | 200 Gb/s |
CPU util. | 1.56% | 0.0% |
-- | | |
Tx bps L2 | 1.79 Gbps | 2.85 bps | 1.79 Gbps
Tx bps L1 | 1.81 Gbps | 4.08 bps | 1.81 Gbps
Tx pps | 150.14 Kpps | 0.01 pps | 150.14 Kpps
Line Util. | 0.91 % | 0 % |
--- | | |
Rx bps | 0 bps | 1.16 Gbps | 1.16 Gbps
Rx pps | 0 pps | 100.07 Kpps | 100.07 Kpps
---- | | |
opackets | 1867650 | 1 | 1867651
ipackets | 0 | 1268363 | 1268363
obytes | 2782798500 | 46 | 2782798546
ibytes | 0 | 1834051498 | 1834051498
tx-pkts | 1.87 Mpkts | 1 pkts | 1.87 Mpkts
rx-pkts | 0 pkts | 1.27 Mpkts | 1.27 Mpkts
tx-bytes | 2.78 GB | 46 B | 2.78 GB
rx-bytes | 0 B | 1.83 GB | 1.83 GB
----- | | |
oerrors | 0 | 0 | 0
ierrors | 0 | 0 | 0
status: -
Press 'ESC' for navigation panel...
status:
tui>
DownLink measurement
start -f stl/udp_1pkt_simple.py -p 1 -m 150kpps -d 60
Global Statistics
connection : localhost, Port 4501 total_tx_L2 : 1.74 Gbps
version : STL @ v3.06 total_tx_L1 : 1.76 Gbps
cpu_util. : 1.51% @ 1 cores (1 per dual port) total_rx : 1.17 Gbps
rx_cpu_util. : 0.08% / 98.55 Kpps total_pps : 150.11 Kpps
async_util. : 0% / 7.77 bps drop_rate : 568.03 Mbps
total_cps. : 0 cps queue_full : 4,638 pkts
Port Statistics
port | 0 | 1 | total
-----------+-------------------+-------------------+------------------
owner | root | root |
link | UP | UP |
state | IDLE | TRANSMITTING |
speed | 200 Gb/s | 200 Gb/s |
CPU util. | 0.0% | 1.51% |
-- | | |
Tx bps L2 | 11.27 bps | 1.74 Gbps | 1.74 Gbps
Tx bps L1 | 16.18 bps | 1.76 Gbps | 1.76 Gbps
Tx pps | 0.03 pps | 150.11 Kpps | 150.11 Kpps
Line Util. | 0 % | 0.88 % |
--- | | |
Rx bps | 1.17 Gbps | 0 bps | 1.17 Gbps
Rx pps | 98.55 Kpps | 0 pps | 98.55 Kpps
---- | | |
opackets | 1 | 1574528 | 1574529
ipackets | 1009552 | 0 | 1009552
obytes | 46 | 2276767488 | 2276767534
ibytes | 1496154628 | 0 | 1496154628
tx-pkts | 1 pkts | 1.57 Mpkts | 1.57 Mpkts
rx-pkts | 1.01 Mpkts | 0 pkts | 1.01 Mpkts
tx-bytes | 46 B | 2.28 GB | 2.28 GB
rx-bytes | 1.5 GB | 0 B | 1.5 GB
----- | | |
oerrors | 0 | 0 | 0
ierrors | 0 | 0 | 0
status: -
Press 'ESC' for navigation panel...
status:
tui>
b. free5GC UPFの測定ログ
UpLink measurement
start -f stl/gtp_1pkt_simple.py -p 0 -m 500kpps -d 60
Global Statistics
connection : localhost, Port 4501 total_tx_L2 : 5.96 Gbps
version : STL @ v3.06 total_tx_L1 : 6.04 Gbps
cpu_util. : 5.39% @ 1 cores (1 per dual port) total_rx : 4.8 Gbps
rx_cpu_util. : 0.23% / 414.59 Kpps total_pps : 500.31 Kpps
async_util. : 0% / 8.98 bps drop_rate : 1.17 Gbps
total_cps. : 0 cps queue_full : 27,815 pkts
Port Statistics
port | 0 | 1 | total
-----------+-------------------+-------------------+------------------
owner | root | root |
link | UP | UP |
state | TRANSMITTING | IDLE |
speed | 200 Gb/s | 200 Gb/s |
CPU util. | 5.39% | 0.0% |
-- | | |
Tx bps L2 | 5.96 Gbps | 2.82 bps | 5.96 Gbps
Tx bps L1 | 6.04 Gbps | 4.04 bps | 6.04 Gbps
Tx pps | 500.31 Kpps | 0.01 pps | 500.31 Kpps
Line Util. | 3.02 % | 0 % |
--- | | |
Rx bps | 0 bps | 4.8 Gbps | 4.8 Gbps
Rx pps | 0 pps | 414.59 Kpps | 414.59 Kpps
---- | | |
opackets | 6304949 | 1 | 6304950
ipackets | 0 | 5255842 | 5255842
obytes | 9394374010 | 46 | 9394374056
ibytes | 0 | 7599946132 | 7599946132
tx-pkts | 6.3 Mpkts | 1 pkts | 6.3 Mpkts
rx-pkts | 0 pkts | 5.26 Mpkts | 5.26 Mpkts
tx-bytes | 9.39 GB | 46 B | 9.39 GB
rx-bytes | 0 B | 7.6 GB | 7.6 GB
----- | | |
oerrors | 0 | 0 | 0
ierrors | 0 | 0 | 0
status: -
Press 'ESC' for navigation panel...
status:
tui>
DownLink measurement
start -f stl/udp_1pkt_simple.py -p 1 -m 350kpps -d 60
Global Statistics
connection : localhost, Port 4501 total_tx_L2 : 4.05 Gbps
version : STL @ v3.06 total_tx_L1 : 4.11 Gbps
cpu_util. : 4.23% @ 1 cores (1 per dual port) total_rx : 3.03 Gbps
rx_cpu_util. : 0.33% / 254.98 Kpps total_pps : 350.09 Kpps
async_util. : 0% / 7.52 bps drop_rate : 1.02 Gbps
total_cps. : 0 cps queue_full : 55,554 pkts
Port Statistics
port | 0 | 1 | total
-----------+-------------------+-------------------+------------------
owner | root | root |
link | UP | UP |
state | IDLE | TRANSMITTING |
speed | 200 Gb/s | 200 Gb/s |
CPU util. | 0.0% | 4.23% |
-- | | |
Tx bps L2 | 45.1 bps | 4.05 Gbps | 4.05 Gbps
Tx bps L1 | 64.71 bps | 4.11 Gbps | 4.11 Gbps
Tx pps | 0.12 pps | 350.09 Kpps | 350.09 Kpps
Line Util. | 0 % | 2.05 % |
--- | | |
Rx bps | 3.03 Gbps | 0 bps | 3.03 Gbps
Rx pps | 254.98 Kpps | 0 pps | 254.98 Kpps
---- | | |
opackets | 1 | 5821201 | 5821202
ipackets | 4250168 | 0 | 4250168
obytes | 46 | 8417456646 | 8417456692
ibytes | 6315748208 | 0 | 6315748208
tx-pkts | 1 pkts | 5.82 Mpkts | 5.82 Mpkts
rx-pkts | 4.25 Mpkts | 0 pkts | 4.25 Mpkts
tx-bytes | 46 B | 8.42 GB | 8.42 GB
rx-bytes | 6.32 GB | 0 B | 6.32 GB
----- | | |
oerrors | 0 | 0 | 0
ierrors | 0 | 0 | 0
status: -
Press 'ESC' for navigation panel...
status:
tui>
c. UPG-VPPの測定ログ
UpLink measurement
start -f stl/gtp_1pkt_simple.py -p 0 -m 800kpps -d 60
Global Statistics
connection : localhost, Port 4501 total_tx_L2 : 9.42 Gbps
version : STL @ v3.06 total_tx_L1 : 9.55 Gbps
cpu_util. : 12.54% @ 1 cores (1 per dual port) total_rx : 6.87 Gbps
rx_cpu_util. : 0.72% / 593.79 Kpps total_pps : 790.31 Kpps
async_util. : 0% / 9.16 bps drop_rate : 2.55 Gbps
total_cps. : 0 cps queue_full : 1,064,989 pkts
Port Statistics
port | 0 | 1 | total
-----------+-------------------+-------------------+------------------
owner | root | root |
link | UP | UP |
state | TRANSMITTING | IDLE |
speed | 200 Gb/s | 200 Gb/s |
CPU util. | 12.54% | 0.0% |
-- | | |
Tx bps L2 | 9.42 Gbps | 0 bps | 9.42 Gbps
Tx bps L1 | 9.55 Gbps | 0 bps | 9.55 Gbps
Tx pps | 790.31 Kpps | 0 pps | 790.31 Kpps
Line Util. | 4.77 % | 0 % |
--- | | |
Rx bps | 0 bps | 6.87 Gbps | 6.87 Gbps
Rx pps | 0 pps | 593.79 Kpps | 593.79 Kpps
---- | | |
opackets | 21316353 | 0 | 21316353
ipackets | 0 | 18084576 | 18084576
obytes | 31761365970 | 0 | 31761365970
ibytes | 0 | 26150296896 | 26150296896
tx-pkts | 21.32 Mpkts | 0 pkts | 21.32 Mpkts
rx-pkts | 0 pkts | 18.08 Mpkts | 18.08 Mpkts
tx-bytes | 31.76 GB | 0 B | 31.76 GB
rx-bytes | 0 B | 26.15 GB | 26.15 GB
----- | | |
oerrors | 0 | 0 | 0
ierrors | 0 | 0 | 0
status: \
Press 'ESC' for navigation panel...
status:
tui>
DownLink measurement
start -f stl/udp_1pkt_simple.py -p 1 -m 900kpps -d 60
Global Statistics
connection : localhost, Port 4501 total_tx_L2 : 10.31 Gbps
version : STL @ v3.06 total_tx_L1 : 10.45 Gbps
cpu_util. : 12.13% @ 1 cores (1 per dual port) total_rx : 6.94 Gbps
rx_cpu_util. : 0.67% / 585.1 Kpps total_pps : 891.25 Kpps
async_util. : 0% / 7.3 bps drop_rate : 3.37 Gbps
total_cps. : 0 cps queue_full : 746,833 pkts
Port Statistics
port | 0 | 1 | total
-----------+-------------------+-------------------+------------------
owner | root | root |
link | UP | UP |
state | IDLE | TRANSMITTING |
speed | 200 Gb/s | 200 Gb/s |
CPU util. | 0.0% | 12.13% |
-- | | |
Tx bps L2 | 0 bps | 10.31 Gbps | 10.31 Gbps
Tx bps L1 | 0 bps | 10.45 Gbps | 10.45 Gbps
Tx pps | 0 pps | 891.25 Kpps | 891.25 Kpps
Line Util. | 0 % | 5.23 % |
--- | | |
Rx bps | 6.94 Gbps | 0 bps | 6.94 Gbps
Rx pps | 585.1 Kpps | 0 pps | 585.1 Kpps
---- | | |
opackets | 0 | 15047421 | 15047421
ipackets | 10585316 | 0 | 10585316
obytes | 0 | 21758570766 | 21758570766
ibytes | 15700294072 | 0 | 15700294072
tx-pkts | 0 pkts | 15.05 Mpkts | 15.05 Mpkts
rx-pkts | 10.59 Mpkts | 0 pkts | 10.59 Mpkts
tx-bytes | 0 B | 21.76 GB | 21.76 GB
rx-bytes | 15.7 GB | 0 B | 15.7 GB
----- | | |
oerrors | 0 | 0 | 0
ierrors | 0 | 0 | 0
status: \
Press 'ESC' for navigation panel...
status:
tui>
d. eUPFの測定ログ
UpLink measurement
start -f stl/gtp_1pkt_simple.py -p 0 -m 1000kpps -d 60
Global Statistics
connection : localhost, Port 4501 total_tx_L2 : 11.67 Gbps
version : STL @ v3.06 total_tx_L1 : 11.82 Gbps
cpu_util. : 48.75% @ 1 cores (1 per dual port) total_rx : 9.42 Gbps
rx_cpu_util. : 2.56% / 814.75 Kpps total_pps : 978.83 Kpps
async_util. : 0% / 7.05 bps drop_rate : 2.24 Gbps
total_cps. : 0 cps queue_full : 6,151,050 pkts
Port Statistics
port | 0 | 1 | total
-----------+-------------------+-------------------+------------------
owner | root | root |
link | UP | UP |
state | TRANSMITTING | IDLE |
speed | 200 Gb/s | 200 Gb/s |
CPU util. | 48.75% | 0.0% |
-- | | |
Tx bps L2 | 11.67 Gbps | 0 bps | 11.67 Gbps
Tx bps L1 | 11.82 Gbps | 0 bps | 11.82 Gbps
Tx pps | 978.83 Kpps | 0 pps | 978.83 Kpps
Line Util. | 5.91 % | 0 % |
--- | | |
Rx bps | 0 bps | 9.42 Gbps | 9.42 Gbps
Rx pps | 0 pps | 814.75 Kpps | 814.75 Kpps
---- | | |
opackets | 15615464 | 0 | 15615464
ipackets | 0 | 12287777 | 12287777
obytes | 23267041360 | 0 | 23267041360
ibytes | 0 | 17768125542 | 17768125542
tx-pkts | 15.62 Mpkts | 0 pkts | 15.62 Mpkts
rx-pkts | 0 pkts | 12.29 Mpkts | 12.29 Mpkts
tx-bytes | 23.27 GB | 0 B | 23.27 GB
rx-bytes | 0 B | 17.77 GB | 17.77 GB
----- | | |
oerrors | 0 | 0 | 0
ierrors | 0 | 0 | 0
status: /
Press 'ESC' for navigation panel...
status:
tui>
DownLink measurement
start -f stl/udp_1pkt_simple.py -p 1 -m 1000kpps -d 60
Global Statistics
connection : localhost, Port 4501 total_tx_L2 : 11.24 Gbps
version : STL @ v3.06 total_tx_L1 : 11.39 Gbps
cpu_util. : 44.25% @ 1 cores (1 per dual port) total_rx : 9.77 Gbps
rx_cpu_util. : 2.31% / 819.85 Kpps total_pps : 971.56 Kpps
async_util. : 0% / 8.27 bps drop_rate : 1.47 Gbps
total_cps. : 0 cps queue_full : 5,394,209 pkts
Port Statistics
port | 0 | 1 | total
-----------+-------------------+-------------------+------------------
owner | root | root |
link | UP | UP |
state | IDLE | TRANSMITTING |
speed | 200 Gb/s | 200 Gb/s |
CPU util. | 0.0% | 44.25% |
-- | | |
Tx bps L2 | 0 bps | 11.24 Gbps | 11.24 Gbps
Tx bps L1 | 0 bps | 11.39 Gbps | 11.39 Gbps
Tx pps | 0 pps | 971.56 Kpps | 971.56 Kpps
Line Util. | 0 % | 5.7 % |
--- | | |
Rx bps | 9.77 Gbps | 0 bps | 9.77 Gbps
Rx pps | 819.85 Kpps | 0 pps | 819.85 Kpps
---- | | |
opackets | 0 | 13702224 | 13702224
ipackets | 11439568 | 0 | 11439568
obytes | 0 | 19813415904 | 19813415904
ibytes | 17044956320 | 0 | 17044956320
tx-pkts | 0 pkts | 13.7 Mpkts | 13.7 Mpkts
rx-pkts | 11.44 Mpkts | 0 pkts | 11.44 Mpkts
tx-bytes | 0 B | 19.81 GB | 19.81 GB
rx-bytes | 17.04 GB | 0 B | 17.04 GB
----- | | |
oerrors | 0 | 0 | 0
ierrors | 0 | 0 | 0
status: /
Press 'ESC' for navigation panel...
status:
tui>
まとめ
今回の測定結果から、eUPFはProxmox VE VM上でも比較的優れた性能を発揮していることがわかります。また、Open5GS は srsRAN で測定すると大幅に高い性能を示しています。これは、測定環境、条件、ツールが測定結果に大きく影響することを示唆しています。
仮想マシンで測定する場合は、Proxmox VEなどのハイパーバイザー上のVMで測定する方が良いと思います。また、UPFの性能を測定したいのに、ネットワークが測定のボトルネックになっては残念なので、ネットワークのフレームワークには VirtIO を選択すると良いです。VirtIOを選択すると、稼働環境の性能次第で、200Gbpsまで負荷を掛けられるようなので。
今回のような仮想マシン間で測定する場合、HWの性能限界を出す観点では、適切ではないかもしれませんが、GTP-U処理方式の違いによるUPFの相対的な性能を比較するときには役立つかもしれません。オープンソース 5G UPFに限らず、商用UPFの性能測定でも参考になるかもしれません。実機で測定する場合の構成例として参考にして頂ければ幸いです。
最後に、他の測定ツールを用いたオープンソース5G UPFの性能比較については、こちらを参照して下さい。
主な変更履歴
- [2025.02.17] 初版。