-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Memcached Benchmark
Dor Laor edited this page Feb 19, 2015
·
12 revisions
The following describe the details of the Memcached benchmark making it reproducible. Let us know if you find anything is missing.
CPU | Seastar Memcached with DPDK | Stock Memcached (multi process) | Stock memcached (multi threaded) |
---|---|---|---|
2 | 553,175 | 350,844 | 321,287 |
4 | 1,021,918 | 615,270 | 573,149 |
6 | 1,703,790 | 857,428 | 709,502 |
8 | 2,149,162 | 1,102,417 | 741,356 |
10 | 2,629,885 | 1,335,069 | 608,014 |
12 | 2,870,919 | 1,528,598 | 608,968 |
14 | 3,217,044 | 1,726,642 | 440,658 |
16 | 3,460,167 | 1,887,060 | 603,479 |
18 | 4,049,397 | 2,167,573 | 902,192 |
20 | 4,426,457 | 2,281,064 | 1,128,469 |
- Server 1: Memcache server
- Server 2: Memcache Client - memaslap
- Memcached version 1.4.17
- One, single threaded, Memcached process per CPU
- Fetch dpdk from upstream (support for i40e is not sufficient in 1.8.0)
- update config/common_linuxapp
- update CONFIG_RTE_MBUF_REFCNT to 'n'
- update CONFIG_RTE_MAX_MEMSEG=4096
- follow instructions from Seastar readme on DPDK installation for 1.8.0
- hugepages define 2048,2048 pages
- compile seastar
- sudo build/release/apps/memcached/memcached --network-stack native --dpdk-pmd --dhcp 0 --host-ipv4-addr $seastar_ip --netmask-ipv4-addr 255.255.255.0 --collectd 0 --smp $cpu
- memaslap from libmemcached-1.0.18
- Disable irqbalance
- Fix the irq smp_affinity of the 40Gb card to invoke each interrupt on a single cpu
for $cpu < 6
for ((i = 0; i < 12; ++i)); do taskset -c $i memaslap -s $seastar_ip:11211 -t 60s -T 1 -c 60 -X 64 & done
for $cpu >= 6
for ((i = 0; i < 52; ++i)); do taskset -c $i memaslap -s $seastar_ip:11211 -t 60s -T 1 -c 60 -X 64 & done
- verify there are no misses in each test - restart memcached for each test
Same as HTTPD Test