Skip to content

Commit

Permalink
add benchmark code
Browse files Browse the repository at this point in the history
  • Loading branch information
idning committed Jul 4, 2014
1 parent 3064dc2 commit 9556a70
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 1 deletion.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# pyc
*.pyc

# Compiled Object files
*.lo
*.o
Expand Down
43 changes: 43 additions & 0 deletions scripts/benchmark-mget.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/usr/bin/env python
#coding: utf-8
#file : test_mget.py
#author : ning
#date : 2014-04-01 13:15:48

import os
import re
import commands

ports = [
4001, # before improve
4000, # after improve
2000 # redis
]

def system(cmd):
return commands.getoutput(cmd)

def extra(regex, text):
match = re.search(regex, text, re.DOTALL)
if match:
return match.group(1)

def testit():
for mget_size in [10, 100, 1000, 10000]:
for port in ports:
cnt = 100*1000 / mget_size
clients = 50
if mget_size == 10000:
clients = 2
cmd = 'cd /home/ning/xredis/deploy-srcs/redis-2.8.3/src && ./redis-benchmark.%d -n %d -p %d -t mget -r 1000000000 -c %d' % (mget_size, cnt, port, clients)
#print cmd
rst = system(cmd)

#100.00% <= 2 milliseconds
#28089.89 requests per second
rtime = extra('100.00% <= (\d+) milliseconds', rst)
qps = extra('([\.\d]+) requests per second', rst)

print 'mget_size=%d on %d: pqs: %s, rtime: %s' % (mget_size, port, qps, rtime)

testit()
22 changes: 21 additions & 1 deletion scripts/test_mget.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,28 @@ def test_mget(cnt=1000):
assert(None == vals[i])

def test_many_mget():
for i in range(1, 10000, 17):
for i in range(1, 1000, 17):
test_mget(i)
pass


def test_large_mget(cnt=5):
r = redis.StrictRedis(host, port)

kv = {}
for i in range(cnt):
kv['kkk-%s' % i] = os.urandom(1024*1024*8)

#insert
for i in range(cnt):
key = 'kkk-%s' % i
r.set(key, kv[key])

keys = ['kkk-%s' % i for i in range(cnt)]

#mget to check
vals = r.mget(keys)
for i in range(cnt):
key = 'kkk-%s' % i
assert(kv[key] == vals[i])

0 comments on commit 9556a70

Please sign in to comment.