1
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?

オープンソース5G UPFをCisco TRexで性能評価する

Last updated at Posted at 2025-02-17

ここでは、トラフィックジェネレータ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)をそれぞれ測定します。

network-overview.png
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] 初版。
1
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
1
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?