Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Redis Performance Issue #288

Open
Luo-Liang opened this issue Oct 16, 2018 · 0 comments
Open

Redis Performance Issue #288

Luo-Liang opened this issue Oct 16, 2018 · 0 comments

Comments

@Luo-Liang
Copy link

Hi! I'm further testing f-stack, but I have trouble getting good result from Redis.
I use 1 Machine to run f-stack/app/redis and original redis, and another machine a redis-benchmark that just keep issuing GET commands.

Here is the result:
f-stack redis latency: 200us vs stock redis latency: 112us.

The client is the same, and does not use dpdk.

F-stack is 2x slower than stock redis. I am wondering if I set anything wrong. The command I used:

sudo ./redis-server --conf config.ini --proc-type=primary --proc-id=0 ../redis.conf,

and config.ini looks like this:

[dpdk]
## Hexadecimal bitmask of cores to run on.
lcore_mask=0x7
channel=4
promiscuous=1
numa_on=1
## TCP segment offload, default: disabled.
tso=0
## HW vlan strip, default: enabled.
vlan_strip=1

# enabled port list
#
# EBNF grammar:
#
#    exp      ::= num_list {"," num_list}
#    num_list ::= <num> | <range>
#    range    ::= <num>"-"<num>
#    num      ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
#
# examples
#    0-3       ports 0, 1,2,3 are enabled
#    1-3,4,7   ports 1,2,3,4,7 are enabled
port_list=0

## Port config section
## Correspond to dpdk.port_list's index: port0, port1...
[port0]
addr=172.31.9.164
netmask=255.255.240.0
broadcast=172.31.15.255
gateway=172.31.0.1

## lcore list used to handle this port
## the format is same as port_list
# lcore_list= 0

## Packet capture path, this will hurt performance
#pcap=./a.pcap

## Kni config: if enabled and method=reject,
## all packets that do not belong to the following tcp_port and udp_port
## will transmit to kernel; if method=accept, all packets that belong to
## the following tcp_port and udp_port will transmit to kernel.
#[kni]
#enable=1
#method=reject
## The format is same as port_list
#tcp_port=80,443
#udp_port=53

## FreeBSD network performance tuning configurations.
## Most native FreeBSD configurations are supported.
[freebsd.boot]
hz=100

## Block out a range of descriptors to avoid overlap
## with the kernel's descriptor space.
## You can increase this value according to your app.
fd_reserve=1024

kern.ipc.maxsockets=262144

net.inet.tcp.syncache.hashsize=4096
net.inet.tcp.syncache.bucketlimit=100

net.inet.tcp.tcbhashsize=65536

kern.ncallout=262144

[freebsd.sysctl]
kern.ipc.somaxconn=32768
kern.ipc.maxsockbuf=16777216

net.link.ether.inet.maxhold=5

net.inet.tcp.fast_finwait2_recycle=1
net.inet.tcp.sendspace=16384
net.inet.tcp.recvspace=8192
net.inet.tcp.nolocaltimewait=1
net.inet.tcp.cc.algorithm=cubic
net.inet.tcp.sendbuf_max=16777216
net.inet.tcp.recvbuf_max=16777216
net.inet.tcp.sendbuf_auto=1
net.inet.tcp.recvbuf_auto=1
net.inet.tcp.sendbuf_inc=16384
net.inet.tcp.recvbuf_inc=524288
net.inet.tcp.sack.enable=1
net.inet.tcp.blackhole=1
net.inet.tcp.msl=2000
net.inet.tcp.delayed_ack=1

net.inet.udp.blackhole=1
net.inet.ip.redirect=0

Any advice on this? Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant