Bad performance of Redis on Windows

1,723 views
Skip to first unread message

Artur Biesiadowski

unread,
Mar 13, 2016, 3:42:26 AM3/13/16
to Redis DB
Hello,

I'm trying to do some local testing of Redis, but I have noticed quite bad performance on my windows 7 box. Running basic command

redis-benchmark.exe -t set,get
gives me numbers in range of 4700-5000. I'm using Redis 3.0.501 downloaded from https://github.com/MSOpenTech/redis/releases

For comparison, I have done same thing with virtual box version of redis running on linux, from https://github.com/ServiceStack/redis-windows. Running redis-benchmark on linux in VBox, against redis on VBox gives me numbers in range of 50000+, so 10 times bigger.

I have done cross-host checks, just for full picture and it is

REDIS   BENCH    SPEED
Win       Win          5.0k
Win       Lin            4.6k
Lin        Win           4.7k
Lin         Lin            51k

I know it is very basic benchmark (no pipeline etc), but any other variations I have tried show similar, order of magnitude difference in performance.

When looking on the net for the answers, I have found some issues from long time ago, but they were supposed to be fixed (or related to disk writes, which I have disabled for this test).

Is there any way to make windows redis running fast?

Regards,
Artur Biesiadowski

ddorian43

unread,
Mar 13, 2016, 4:06:23 AM3/13/16
to Redis DB
Redis-windows is developed outside of redis, so you should ask them. My advice: only use it for testing (actually use a virtual-machine for testing since the windows version is old)

Enrico Giordani

unread,
Mar 14, 2016, 12:16:53 PM3/14/16
to Redis DB
Hi Artur,
I'm the maintainer for Redis on Windows.
I tested "redis-benchmark.exe -t set,get" on a Windows Server 2012 R2 VMWare virtual machine, using 3.0.501 with the default configuration (there is no reason to disable the disk writes), these are the results:

====== SET ======
  100000 requests completed in 0.91 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

99.46% <= 1 milliseconds
100.00% <= 1 milliseconds
110253.59 requests per second

====== GET ======
  100000 requests completed in 0.83 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

99.52% <= 1 milliseconds
100.00% <= 1 milliseconds
120918.98 requests per second

On the same hardware, I run the same benchmark on a Ubuntu 64-bit VMWare  virtual machine, using the default configuration for Redis 3.0.7, the results:

====== SET ======
  100000 requests completed in 0.73 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

99.65% <= 1 milliseconds
99.91% <= 2 milliseconds
99.96% <= 3 milliseconds
100.00% <= 3 milliseconds
136239.78 requests per second

====== GET ======
  100000 requests completed in 0.76 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

99.79% <= 1 milliseconds
99.90% <= 2 milliseconds
99.95% <= 4 milliseconds
100.00% <= 4 milliseconds
131752.31 requests per second

There is a performance difference since the Windows version has an extra layer of code that simulates the POSIX enviroment, the difference is expected but not as significant as you experienced.

For Windows specific issues it's better to post in the issues section of our repository https://github.com/MSOpenTech/redis/issues
Thank you.

-Enrico



On Sunday, March 13, 2016 at 8:42:26 AM UTC+1, Artur Biesiadowski wrote:

Artur Biesiadowski

unread,
Mar 15, 2016, 6:07:31 AM3/15/16
to Redis DB
Thanks for the reply. I was indeed surprised to see such big difference. I do not have access to that particular machine for next 2 weeks, but I will try doing same test in other Windows environment and see if it repeats and prepare more detailed bug report to put into your tracker. It might be very well some horrible misconfiguration of my Windows networking stack (possibly caused by multiple installations and deinstallations of virtualbox which is messing around with network adapters or general Windows rust happening in 5-years old install of Windows 7).

Regards,
Artur Biesiadowski

Artur Biesiadowski

unread,
Mar 31, 2016, 2:51:57 PM3/31/16
to Redis DB
Just to let you know about my investigations. It was windows 7 versus windows 10. My horrible windows 10 tablet was getting 44k/s while super-beefed win 7 desktop at work around 7k. After updating my home PC to windows 10, I'm getting 100+k without a problem.

Seems that some kind of system call in windows 7 is slow enough to have 10-30x slowdown effect on Redis. Probably nothing which can be fixed from userspace, but you might want to add warning about windows 7 performance, so people won't get confused in future.

Thanks for help,
Artur Biesiadowski

Enrico Giordani

unread,
Mar 31, 2016, 3:22:27 PM3/31/16
to redi...@googlegroups.com
Artur,
our tests don't show any performance problem on Windows 7 Pro.
What you have experienced may be a problem specific to your machine configuration.
Thank you.

--
You received this message because you are subscribed to a topic in the Google Groups "Redis DB" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/redis-db/Z3emo_iImJw/unsubscribe.
To unsubscribe from this group and all its topics, send an email to redis-db+u...@googlegroups.com.
To post to this group, send email to redi...@googlegroups.com.
Visit this group at https://groups.google.com/group/redis-db.
For more options, visit https://groups.google.com/d/optout.



--

-Enrico

TPoise

unread,
Apr 28, 2016, 5:20:51 PM4/28/16
to Redis DB
It could be because Windows 10 (anything 8.1+) has the loopback performance improvements.  Shouldn't be that much of a difference though.
Reply all
Reply to author
Forward
0 new messages