Read more

How to fix parallel_tests with Redis on powerful machines

Daniel Straßner
March 21, 2019Software engineer at makandra GmbH

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)
Illustration money motivation

Opscomplete powered by makandra brand

Save money by migrating from AWS to our fully managed hosting in Germany.

  • Trusted by over 100 customers
  • Ready to use with Ruby, Node.js, PHP
  • Proactive management by operations experts
Read more Show archive.org snapshot

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`
    
Posted by Daniel Straßner to makandra dev (2019-03-21 13:18)