/ redis

Resolving Sidekiq and Redis issues on dedicated servers or VPS

(Please note that the below mentioned steps and troubleshooting is not for Heroku. These are specifically for dedicated servers, VPS etc.)

Following are the steps to debug, troubleshoot and fix commonly faced Sidekiq and Redis related issues in RoR app.

1. Firstly, make sure Sidekiq URL is working.

URL - http://staging.app.com/sidekiq

In case if the app has restricted access to Sidekiq web url then we need to login as admin user to view sidekiq web administrator page.

2. If this url shows you "Internal Server Error" then make sure "redis" is working properly on server.

Check if its latest version of redis is present and that its supported properly by Sidekiq.
Commands as follows (path could be specific based on your server conf.)

/opt/redis/bin/redis-server  --version

Output of this command if redis is installed -->

Redis server v=2.8.5 sha=00000000:0 malloc=jemalloc-3.2.0 bits=64 build=5a96806625c34309

If redis is not installed then please install it using following commands

wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make

Start redis server using command

 redis-server 

3. Make sure sidekiq is running and working properly.

ps -ef | grep sidekiq

Output

28521 24322  3 08:21 pts/2    00:00:27 sidekiq 2.9.0 [0 of 25 busy]

4. If step-3 above shows that sidekiq is not running then use the following commands to run sidekiq. Make sure to run it from app\_path

nohup bundle exec sidekiq -e staging  -C config/sidekiq.yml -P tmp/pids/sidekiq.pid >> log/sidekiq.log 2>&1 &

5. Now check sidekiq.log file for any errors.

Tail it using command

tail -500 log/sidekiq.log

6. If step 5 above i.e. log shows errors then try troubleshoot using following steps

  • Check redis.conf file (Path = /etc/redis/redis.conf) and ensure that everything is set for redis and sidekiq configuration to run smoothly.

  • This section in redis.conf file is important

For default save/load DB in/from the working directory.
Note that you must specify a directory not a file name.
dir /var/lib/redis
  • If folder /var/lib/redis does not exists then create one using following commands
sudo su -
mkdir /var/lib/redis
  • Make sure that folder /var/lib/redis has proper read and write access for redis user
chown -R redis:redis /var/lib/redis
  • Kill any earlier running version of redis and restart redis to read configuration again.

  • Test sidekiq now by queuing some tasks to perform. (Email, Others etc.)

  • Check url http://staging.app.com/sidekiq and it should now show "Processed" section with counts.

Rohan Daxini

Rohan Daxini

Founder at Kiprosh | Ruby, Elixir, JS & C lover | Life Long Learner | Books | Technology | Mindfulness | Gratitude

Read More