5 ms·
It is important to note that in the many years since this post, while redis has remained single-threaded - it also removed the entire concept of VM, and now wor
by dvirsky 10y ago
It is important to note that in the many years since this post, while redis has remained single-threaded - it also removed the entire concept of VM, and now works only fully in memory.
- baotiao 10y agoHowever, redis transfer these works to jemalloc. Now jemalloc control the entire VM
- dvirsky 10y agoIn the past you could tune redis to hold a dataset larger than the memory you had, and it would swap pages on its own. About a year after this 2010 post, antirez decided to remove this completely (in redis 2.6 or 2.8, I don't remember) and focus entirely on fully in-memory situations. VM in the redis sense used to be redis itself swapping stuff to disk with multiple threads. Here are the redis configuration notes on VM from redis 2.2: # Virtual Memory allows Redis to work with datasets bigger than the actual # amount of RAM needed to hold the whole dataset in memory. # In order to do so very used keys are taken in memory while the other keys # are swapped into a swap file, similarly to what operating systems do # with memory pages. .... # vm-max-memory configures the VM to use at max the specified amount of # RAM. Everything that deos not fit will be swapped on disk if possible, that # is, if there is still enough contiguous space in the swap file. ... # Redis swap files is split into pages. An object can be saved using multiple # contiguous pages, but pages can't be shared between different objects. # So if your page is too big, small objects swapped out on disk will waste # a lot of space. If you page is too small, there is less space in the swap # file (assuming you configured the same number of total swap file pages). # If you use a lot of small objects, use a page size of 64 or 32 bytes. .... # Max number of VM I/O threads running at the same time. # This threads are used to read/write data from/to swap file, since they # also encode and decode objects from disk to memory or the reverse, a bigger # number of threads can help with big objects even if they can't help with # I/O itself as the physical device may not be able to couple with many reads/writes operations at the same time. # The special value of 0 turn off threaded I/O and enables the blocking Virtual Memory implementation. vm-max-threads 4
- baotiao 10y agoget it, thank you