51 Commits

Author SHA1 Message Date
Matt Stancliff
fdcadd16c6 Fix redis-benchmark abort output 2014-08-27 10:31:29 +02:00
Matt Stancliff
abe29c83e6 redis-benchmark: Remove unused buffer
This just deletes old code that didn't get removed when
logic changed.  We were setting offsets that never
got read anywhere.

Since clients are now just cloned, we don't need to track
per-client buffer offsets anywhere because they are all
the same from the original client.
2014-08-27 10:30:49 +02:00
CharSyam
8fcce90b25 redis-benchmark: add auth option
Closes #1097
2014-08-27 10:30:49 +02:00
antirez
65d47452f8 Remove warnings and improve integer sign correctness. 2014-08-27 10:29:26 +02:00
antirez
65dbb3546a redis-benchmark: abort when all clients are disconnected. 2014-07-09 20:01:18 +02:00
antirez
9546f7846b redis-benchmark: update help for new __rand_int__ form. 2013-10-28 18:14:11 +01:00
antirez
689829f2e1 redis-benchmark: changes to random arguments substitution.
Before this commit redis-benchmark supported random argumetns in the
form of :rand:000000000000. In every string of that form, the zeros were
replaced with a random number of 12 digits at every command invocation.

However this was far from perfect as did not allowed to generate simply
random numbers as arguments, there was always the :rand: prefix.

Now instead every argument in the form __rand_int__ is replaced with a
12 digits number. Note that "__rand_int__" is 12 characters itself.

In order to implement the new semantic, it was needed to change a few
thigns in the internals of redis-benchmark, as new clients are created
cloning old clients, so without a stable prefix such as ":rand:" the old
way of cloning the client was no longer able to understand, from the old
command line, what was the position of the random strings to substitute.

Now instead a client structure is passed as a reference for cloning, so
that we can directly clone the offsets inside the command line.
2013-08-08 16:47:18 +02:00
antirez
4fe67cc103 redis-benchmark: replace snprintf()+memcpy with faster code.
This change was profiler-driven, but the actual effect is hard to
measure in real-world redis benchmark runs.
2013-08-08 14:31:54 +02:00
antirez
a79862de2a redis-benchmark: fix memory leak introduced by 346256f 2013-08-07 16:09:13 +02:00
antirez
bcc7965931 redis-benchmark: max pipeline length hardcoded limit removed. 2013-08-07 16:09:09 +02:00
antirez
46c1bafeab redis-benchmark: fix db selection when :rand: feature is used. 2013-08-07 11:22:33 +02:00
antirez
151ad68540 redis-benchmark: ability to SELECT a specifid db number. 2013-08-07 11:22:28 +02:00
antirez
858b5576ac Fix overflow in mstime() in redis-cli and benchmark.
The problem does not exist in the Redis server implementation of mstime()
but is only limited to redis-cli and redis-benchmark.

Thix fixes issue #839.
2012-12-20 15:21:40 +01:00
antirez
2572bb13c6 redis-benchmark: seed the PRNG with time() at startup. 2012-11-30 17:13:25 +01:00
antirez
8ddb23b90c BSD license added to every C source and header file. 2012-11-08 18:34:04 +01:00
NanXiao
a03c32702b Update src/redis-benchmark.c
The code of current implementation:

if (c->pending == 0) clientDone(c);
In clientDone function, the c's memory has been freed, then the loop will continue: while(c->pending). The memory of c has been freed now, so c->pending is invalid (c is an invalid pointer now), and this will cause memory dump in some platforams(eg: Solaris).

So I think the code should be modified as:
if (c->pending == 0)
{
clientDone(c);
break;
}
and this will not lead to while(c->pending).
2012-10-18 11:05:47 +02:00
antirez
32095c4057 redis-benchmark: disable big buffer cleanup in hiredis context.
This new hiredis features allows us to reuse a previous context reader
buffer even if already very big in order to maximize performances with
big payloads (Usually hiredis re-creates buffers when they are too big
and unused in order to save memory).
2012-08-22 11:34:03 +02:00
Premysl Hruby
59132e4212 fix redis-benchmark memory leak 2012-02-26 10:01:27 +01:00
antirez
f6da155bde redis-benchmark: a few fixes to pipelining implementation. 2012-02-23 15:39:26 +01:00
antirez
b9474282f8 redis-benchmark: Initial support for pipelining. 2012-02-23 15:02:43 +01:00
antirez
b66e5add82 The hiredis lib shipped with Redis was updated to latest version. 2012-02-19 20:26:50 +01:00
antirez
8dd19d818f Fixed redis-benchmark --help output typo 2012-01-31 11:43:32 +01:00
antirez
e074416be4 Max limit to 10k clients removed, this implements feature request on issue #194 2011-12-15 11:42:40 +01:00
antirez
d9747b496e redis-benchmark: ability to run selected tests. Better help with examples. 2011-11-07 11:29:37 +01:00
antirez
7b86f5e6d5 csv output for redis-benchmark 2011-11-04 14:49:24 +01:00
antirez
410dfe90b2 PING / MSET benchmarks enabled again. 2011-11-04 11:20:19 +01:00
antirez
826b5beb9c further optimizations for the multi bulk protocol parsing code when big objects are transmitted to Redis. 2011-11-03 15:53:40 +01:00
Pieter Noordhuis
bdbf3acff5 Enforce upper bound for number of requests in redis-benchmark 2011-09-16 11:25:00 +02:00
Pieter Noordhuis
294cd536e0 There is no debug mode in benchmark tool 2011-06-01 09:22:19 -07:00
Pieter Noordhuis
39bf440243 Provide custom command to benchmark against via args 2011-06-01 09:22:19 -07:00
Pieter Noordhuis
fc05e8c850 More const's in redis-benchmark.c 2011-06-01 09:22:19 -07:00
antirez
9b45592c69 portability fix in redis benchmark, using zu format specified with size_t instead of lu 2011-01-24 10:05:42 +01:00
Pieter Noordhuis
2380388974 Randomize keys and set start time when first write event fires 2010-12-23 11:22:40 +01:00
Pieter Noordhuis
3c49070b35 Find substrings to randomize when the client is created 2010-12-23 11:04:44 +01:00
Pieter Noordhuis
d69a483556 Make the MSET benchmark *really* work with 10 keys 2010-12-22 18:39:52 +01:00
Pieter Noordhuis
f2f2424e00 Remove code duplication 2010-12-22 18:31:33 +01:00
Didier Spezia
f474a5bd4e Add wait states to deal with many connections. 2010-12-18 12:11:26 +01:00
Pieter Noordhuis
1cd3c1e08c Use multi-bulk protocol by default in redis-benchmark 2010-12-18 12:10:24 +01:00
Pieter Noordhuis
174df6fe49 Re-use variable data in redis-benchmark 2010-12-16 23:41:58 +01:00
Pieter Noordhuis
53f1d81712 Fix NULL-termination of variable data in redis-benchmark 2010-12-16 23:35:56 +01:00
Pieter Noordhuis
feecb608ed Use multi-bulk protocol in SET benchmark 2010-11-05 10:22:52 +01:00
Pieter Noordhuis
8146e31677 Microsecond latency resolution in redis-benchmark 2010-11-04 16:15:35 +01:00
Pieter Noordhuis
ec8f06675a Use hiredis from redis-benchmark 2010-11-04 13:37:05 +01:00
antirez
0a546fc017 Merge remote branch 'pietern/unixsocket' 2010-11-02 23:47:52 +01:00
Pieter Noordhuis
ea5b70924d Add benchmark for MSET 2010-10-15 18:17:06 +02:00
Pieter Noordhuis
1aa608fc68 Change protocol from bulk to inline in redis-benchmark 2010-10-15 17:34:20 +02:00
Pieter Noordhuis
b04ce2a35c Merge master with resolved conflict in src/redis-cli.c 2010-10-13 18:55:46 +02:00
Pieter Noordhuis
ed0dd55402 Show the current throughput while benchmarking 2010-08-30 11:25:02 +02:00
Pieter Noordhuis
36babc1e31 Refactor reply parsing code in redis-benchmark for efficiency 2010-08-30 11:14:54 +02:00
Pieter Noordhuis
c61e69257a Support for Redis to listen on a Unix socket 2010-08-01 22:55:24 +02:00