1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openeuler-gazelle

 / Детали:

[ксдп][ридиc] Тестирование параллельных операций set и get для больших пакетов, тестирование redis-benchmark по...

Предстоит сделать
Владелец
Создано  
10.03.2025

времени выполнения, тестирование простоя при получении (get)

1. Информация о дефекте

[Версия операционной системы] (например openEuler-22.03-LTS, команда "cat /etc/os-release")

openeulerversion=openEuler-22.03-LTS-SP4
compiletime=2025-01-15-15-05-32
gccversion=10.3.1-67.oe2203sp4
kernelversion=5.10.0-246.0.0.145.oe2203sp4
openjdkversion=1.8.0.432.b06-0.oe2203sp4

[Версия ядра]

5.10.0_JD_XDP

[Программное обеспечение и версия]

gazelle-1.0.2-83.aarch64
dpdk-21.11-83.aarch64

[Информация об окружении]

Двухканальное окружение с конфигурацией ipvlan

[Шаги воспроизведения проблемы]:

Опишите конкретные шаги выполнения
Запустить redis-server сервер LD_PRELOAD=/usr/lib64/liblstack.so GAZELLE_BIND_PROCNAME=redis-server /root/redis-server ./redis.conf --protected-mode no --bind 124.88.25.225 --save ""

dpdk_args=["--socket-mem", "1024,0,0,0", "--huge-dir", "/mnt/hugepages-lstack", "--proc-type", "primary", "--vdev", "net_af_xdp,iface=ipvlan0,queue_count=1", "-d", "librte_net_af_xdp.so"]

stack_thread_mode="run-to-wakeup"

# ltran mode requires adding "--map-perfect" and "--legacy-mem" in dpdk_args
use_ltran=0
kni_switch=0
flow_bifurcation=0

low_power_mode=0

# required mbuf count = tcp_conn_count * mbuf_count_per_conn
tcp_conn_count=1500
mbuf_count_per_conn=138

# send ring size, default is 32, maximum is 2048
# if udp packet length exceeds 45952 (32 * 1436) bytes, send_ring_size must be at least 64.
send_ring_size = 32

# receive ring size, default is 128, maximum is 2048
recv_ring_size = 128

# parameters for the protocol stack thread per loop
# read data from the protocol stack into recv_ring
read_connect_number = 4
# process RPC message number
rpc_number = 4
# read NIC packets number
nic_read_number = 128

nic_rxqueue_size = 4096
nic_txqueue_size = 2048

# each CPU core starts a protocol stack thread.
num_cpus="1"

# application worker thread binding to NUMA in epoll/poll.
app_bind_numa=1
# application main thread affinity set by DPDK.
main_thread_affinity=0

host_addr="124.88.25.225"
mask_addr="255.255.0.0"
gateway_addr="124.88.0.1"
devices="52:54:00:1b:fa:d2"
```# 0: использовать правило RSS
# 1: использовать правило кортежа TCP для указания пакета в очередь NIC
tuple_filter=0

# при tuple_filter=1, нижеуказанная конфигурация становится действительной
num_process=1
process_numa="0,1"
process_idx=0
```# при tuple_filter=0, конфигурация валидна
listen_shadow=0

# режим VLAN; поддерживаются значения от -1 до 4094, -1 — выключен
nic_vlan_mode=-1

# режим объединения; поддерживаются режимы объединения 4 и 6, -1 — выключен
bond_mode=-1
# MAC-адреса слейвов объединения, разделённые точкой с запятой, поддерживаются два MAC-адреса
# bond_slave_mac="aa:bb:cc:dd:ee:ff;gg:hh:ii:jj:kk:ll"

# максимальное количество пулов памяти RPC
rpc_msg_max=4096
send_cache_mode=1
stack_interrupt=1


  1. Клиент последовательно выполняет
    /root/redis-6.2.9/src/redis-benchmark -h 124.88.25.225 -p 6379 -c 10 -n 1000000000 -d 10800 -t get
    /root/redis-6.2.9/src/redis-benchmark -h 124.88.25.225 -p 6379 -c 10 -n 1000000000 -d 10800 -t set
    for i in $(seq 10000); do echo $i; pkg=$((RANDOM % 3000000 + 1500)); echo ${pkg}; /root/redis-6.2.9/src/redis-benchmark -h 124.88.25.225 -p 6379 -c 5000 -n 1000000 -d ${pkg} -t set,get --threads 20; done

**[Фактический результат]**, пожалуйста, опишите фактические результаты и влияние проблемы
После некоторого времени соединение с запросами GET с 10 клиентами прерывается, состояние сервера показывает наличие только семи активных соединений.

![Скриншот](https://foruda.gitee.com/images/1737700817490885268/1214e85d_11534493.png)

**[Ожидаемый результат]**, пожалуйста, опишите ожидаемые результаты и влияние
Соединение не должно прерываться.

Комментарий (0)

GitLife Service Account Задача создана
GitLife Service Account добавлено
 
sig/sig-high-perform
label.
Развернуть журнал операций

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/openeuler-gazelle.git
git@api.gitlife.ru:oschina-mirror/openeuler-gazelle.git
oschina-mirror
openeuler-gazelle
openeuler-gazelle