10 Star 4 Fork 30

src-openEuler / gazelle

 / 详情

【22.03SP2】【redis】在redis-benchmark测试 5000并发时,会出现call_alloc_fail

已验收
缺陷
创建于  
2023-10-31 11:51

【环境信息】
双端物理机,并在其中一个物理机上创建ovs+dpdk组网的vm
openeulerversion=openEuler-22.03-LTS-SP2
compiletime=2023-06-29-19-26-48
gccversion=10.3.1-37.oe2203sp2
kernelversion=5.10.0-153.12.0.92.oe2203sp2
openjdkversion=1.8.0.372.b07-1.oe2203sp2
[root@openEuler mysql]# rpm -q gazelle
gazelle-1.0.2-7.aarch64
[root@openEuler ~]# rpm -q dpdk
dpdk-21.11-50.oe2203sp2.aarch64

【问题复现步骤】,请描述具体的操作步骤
在vm端,启动redis-server LD_PRELOAD=/usr/lib64/liblstack.so GAZELLE_BIND_PROCNAME=redis-server /root/redis-server ${redis_conf}
gazelle配置如下

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

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=238

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

# 0: when send ring full, send return
# 1: when send ring full, alloc mbuf from mempool to send data
expand_send_ring = 0
 
#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

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

#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.33.33"
mask_addr="255.255.255.0"
gateway_addr="192.168.33.1"
devices="52:54:00:5a:fc:ed"

#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=0
udp_enable=0

在物理机客户端使用redis-benchemark测试5000并发的set性能
./redis-benchmark -h 192.168.33.33 -p 6379 -c 5000 -n 10000000 -r 100000 -t set
之后再测试
./redis-benchmark -h 192.168.33.33 -p 6379 -c 5000 -n 10000000 -r 10000000 -t get
清除数据库
redis-cli -h 192.168.33.33 -p 6379 -e "FLUSHDB";
再测试12线程的set和get性能
./redis-benchmark -h 192.168.33.33 -p 6379 -c 5000 -n 10000000 -r 100000 -t set --threads 12
./redis-benchmark -h 192.168.33.33 -p 6379 -c 5000 -n 10000000 -r 10000000 -t get --threads 12

【实际结果】,请描述出问题的结果和影响
gazelle会打印如下信息
输入图片说明
输入图片说明

评论 (3)

chenshijuan3 创建了缺陷

Hi chenshijuan3, 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 , @李辉松 , @kircher

openeuler-ci-bot 添加了
 
sig/sig-high-perform
标签

rpc消息池为空,对功能和性能均无影响,以下PR将会移除打印
https://gitee.com/openeuler/gazelle/pulls/438

jinag12 通过openeuler/gazelle Pull Request !438任务状态待办的 修改为已完成
chenshijuan3 任务状态已完成 修改为已验收

前端已去除对应的日志打印,lstack show 中call_alloc_fail还是会出现但不影响功能使用。

登录 后才可以发表评论

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

搜索帮助

53164aa7 5694891 3bd8fe86 5694891