How to fix parallel_tests with Redis on powerful machines

Updated . Posted . Visible to the public.

When you have a powerful machine with many CPU cores, you might run into an error like

ERR DB index is out of range (Redis::CommandError)

This is because Redis defaults to at most 16 databases (0 to 15) and running tests in parallel might exceed that (your tests might run on databases 1..n or 2..(n+1)).

You can increase that limit:

  1. Get number of CPUs of your machine.

    nproc --all
    
  2. Open up Redis configuration file.

    sudo vim /etc/redis/redis.conf
    
  3. Find databases row and increase it, e.g. set to CPU count + 2:

    databases 18
    
  4. Save and close config file, then restart Redis:

    sudo service redis-server restart
    
  5. Confirm your configuration has been updated. The following command should return "OK".

    redis-cli select `nproc --all`
    
Daniel Straßner
Last edit
Arne Hartherz
License
Source code in this card is licensed under the MIT License.
Posted by Daniel Straßner to makandra dev (2019-03-21 12:18)