22 Star 103 Fork 84

openEuler / gazelle

 / 详情

【混杂模式】单客户端用户态组播打流,服务端2打流一会之后出现断流

已完成
缺陷
创建于  
2024-05-14 11:47

【环境信息】
openeulerversion=openEuler-20.03-LTS-SP1
compiletime=2020-12-23-02-13-04
gccversion=7.3.0-20190804.35.oe1
kernelversion=4.19.90-2012.4.0.0053.oe1
openjdkversion=1.8.0.272.b10-7.oe1
gazelle version=gazelle-1.0.2-34.oe1.x86_64
dpdk version=dpdk-19.11-34.x86_64
客户端用户态,服务端内核态

【问题复现步骤】
客户端:

# Copyright (c) Huawei Technologies Co., Ltd. 2020-2021. All rights reserved.
# gazelle is licensed under the Mulan PSL v2.
# You can use this software according to the terms and conditions of the Mulan PSL v2.
# You may obtain a copy of Mulan PSL v2 at:
#     http://license.coscl.org.cn/MulanPSL2
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
# PURPOSE.
# See the Mulan PSL v2 for more details.

dpdk_args=["--socket-mem", "1024,0,0,0", "--huge-dir", "/mnt/hugepages-lstack", "--proc-type", "primary", "--legacy-mem", "--map-perfect"]

stack_thread_mode="run-to-wakeup"

use_ltran=0
kni_switch=0

low_power_mode=0
 
#needed mbuf count = tcp_conn_count * mbuf_count_per_conn
tcp_conn_count=1500
mbuf_count_per_conn=138

# send ring size, default is 32, max is 2048
send_ring_size = 32

#protocol stack thread per loop params
#read data form protocol stack into recv_ring
read_connect_number = 4
#process rpc msg number
rpc_number = 4
#read nic pkts number
nic_read_number = 128

nic_rxqueue_size = 4096
nic_txqueue_size = 2048

#each cpu core start a protocol stack thread.
num_cpus="2"

#app worker thread bind to numa in epoll/poll.
app_bind_numa=1
#app main thread affinity set by dpdk.
main_thread_affinity=0

host_addr="192.168.177.145"
mask_addr="255.255.255.0"
gateway_addr="192.168.177.1"
devices="52:54:00:d5:d8:ac"

#0: use rss rule
#1: use tcp tuple rule to specify packet to nic queue
tuple_filter=0

#tuple_filter=1, below cfg valid
num_process=1
process_numa="0,1"
process_idx=0

#tuple_filer=0, below cfg valid
listen_shadow=1

#vlan mode; only support -1~4094, -1 is disabled
nic_vlan_mode=-1

#bond mode; only support bond 4 or 6 mode ,-1 is disabled
bond_mode=-1

服务端1:
159: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 52:54:00:e5:d9:56 brd ff:ff:ff:ff:ff:ff
inet 192.168.177.188/16 scope global eth1
valid_lft forever preferred_lft forever
inet6 2003:1::1:6d5b/64 scope global
valid_lft forever preferred_lft forever

服务端2:
140: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 52:54:00:75:c1:eb brd ff:ff:ff:ff:ff:ff
inet 192.168.177.112/16 scope global eth1
valid_lft forever preferred_lft forever
inet6 2003:1::1:6e57/64 scope global
valid_lft forever preferred_lft forever

命令:
LD_PRELOAD=/usr/lib64/liblstack.so GAZELLE_BIND_PROCNAME=example ./example -a client -D tcp,udp -i 192.168.177.188,2003:1::1:6d5 -p 33333 -P 256 -t 5 -c 2 -A recvfromsendto -g 224.0.0.151,192.168.177.145

./example -a server -D tcp,udp -i 192.168.177.188,2003:1::1:6d5b -p 33333 -P 256 -t 1 -c 10 -A recvfromsendto -g 224.0.0.151,192.168.177.188 -m mum

./example -a server -D tcp,udp -i 192.168.177.112,2003:1::1:6e57 -p 33333 -P 256 -t 1 -c 10 -A recvfrom -g 224.0.0.151,192.168.177.112 -m mum

【实际结果】,请描述出问题的结果和影响
服务端2打流一会之后流量为0
输入图片说明

评论 (6)

qianchen123321 创建了缺陷

Hi qianchen123321, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: sig-high-performance-network, and any of the maintainers: @L.X. , @LemmyHuang , @sky , @李扬扬 , @jinag12 , @lilijun , @李辉松 , @compile_success

openeuler-ci-bot 添加了
 
sig/sig-high-perform
标签
qianchen123321 修改了标题
qianchen123321 修改了描述
qianchen123321 负责人设置为hantwofish
qianchen123321 修改了描述

当前进展:
双端用户态无此问题,
先前20.3 无此问题,后20.3 24.3 内核态服务端打流为0

修改server 端触发模式为水平触发后,无此现象。
输入图片说明

输入图片说明
内核态 Udp: receive buffer errors 持续增加,需要扩大 receive buffer的值

echo 1310720000 > /proc/sys/net/core/rmem_default
可稳定打流 5min 以上

对于UDP 组播多线程的情况,只有一个组播服务端fd 进行组播报文的回复。 !667:example: Create multicast sockets only on the first thread/files

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(3)
5329419 openeuler ci bot 1632792936
1
https://gitee.com/openeuler/gazelle.git
git@gitee.com:openeuler/gazelle.git
openeuler
gazelle
gazelle

搜索帮助