3 ms·
Very interesting experiment, but somewhat this is the proof that Redis and any other memory intensive application where memory bandwidth can be one of the most
by antirez 16y ago
Very interesting experiment, but somewhat this is the proof that Redis and any other memory intensive application where memory bandwidth can be one of the most important factors (MySQL is another example, and in general most database systems) are penalized running inside VMs compared to real hardware. 10-20% improvements are small compared to the order of magnitude of difference between real hardware and virtualized hardware.
This does not mean virtualization is in general not a good fit for Redis and other DBs. Actually it is already and with the introduction of Redis Cluster to take many small VMs with 1 or 2 GB each and running a cluster will be the way to go for most users probably (every instance will serve a subset of the queries, and there are cheap VMs with a good amount of memory).
But still, Redis in the most basic of the real-hardware Linux boxes will deliver 100k operations per second per core, while with a small virtualized instance it is an order of magnitude slower. Something to take in mind for deployments.
- liuliu 16y agoHi, antirez, I am really curious about upcoming Redis Cluster. Can we upgrade to Redis Cluster seamlessly from old Redis db?
- antirez 16y agoYes, but with a big conditional ;) That is: if you are not using multi-keys operations, or your multi-key operations have great locality so that you can use "hash tags" (http://antirez.com/post/Sorting-in-key-value-data-model.html http://antirez.com/post/Sorting-in-key-value-data-model.html), then it is an easy upgrade. We should release ASAP guidelines to make sure current users are designing schemas that can run into Redis Cluster with little efforts.
- listic 16y agoAre you sure there's an order of magnitude of difference between real and virtualized hardware? Does redis actually deliver 100k operations _per core_? (I thought it is supposed to be per machine, because memory bandwidth is a bottleneck or something) Can you point to the relevant benchmarks, please. I am interested to know how big of a difference there is. Maybe redis on Xen performs not bad after all, considering that 2.2 GHz Athlon 64 3700+ (single core CPU, circa 2005) is lower powered than what is considered server box today.
- antirez 16y agoYes I'm sure. from 100k to 140k operations per second in any new computer (not server or special hardware) you can buy today as a desktop everywhere. Check the Redis benchmark page on google code to see this numbers, but I want to show you how Redis performs in an EEE PC 701: PING: 7942.81 requests per second PING (multi bulk): 7861.64 requests per second MSET (10 keys, multi bulk): 6435.01 requests per second SET: 5698.01 requests per second GET: 8183.31 requests per second INCR: 9074.41 requests per second LPUSH: 8710.80 requests per second LPOP: 8583.69 requests per second SADD: 8396.31 requests per second SPOP: 8123.48 requests per second cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 13 model name : Intel(R) Celeron(R) M processor 900MHz stepping : 8 cpu MHz : 630.029 cache size : 512 KB Note that it is clocked at 630 Mhz. I don't know exactly but the PC you mention can not deliver less than 50k operations per second.