Is Unicorn configured to reconnect to Redis after forking its child
processes? As in
https://github.com/ezmobius/redis-rb/blob/master/examples/unicorn/unicorn.rb
> When the timeout errors occur, they affect both the Ruby and Java clients,
> and cause them both to raise socket-related exceptions.
Could it be that you're hitting an I/O bottleneck by saving or
rewriting the AOF?
When you have both Ruby (redis-rb) processes and Java (jedis)
processes timing out, I suspect your Redis server may be stalling at
some point. This can cause active connections to timeout when this
timeout is lower than the time the server stalls. You can monitor
latency with the `redis-stat` tool from the `redis-tools` repository.
This repository hasn't been updated for a while, but the latency
monitoring tool works fine. If you see any spikes here (monitored from
the machines that host the Redis clients) you'll know that it isn't
related to the client code. If you see spikes when monitored from the
same machine where the Redis server is running, you'll know that it
stalls for some other reason. This can be due to forking a child to
save the RDB or rewrite the AOF, or because of executing commands that
simply take a long time to run. If you run Redis 2.6, you'll have
access to the SLOWLOG command which can provide insight into commands
that take a long time to run.
Cheers,
Pieter
> --
> You received this message because you are subscribed to the Google Groups "Redis DB" group.
> To post to this group, send email to redi...@googlegroups.com.
> To unsubscribe from this group, send email to redis-db+u...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/redis-db?hl=en.
>
Cheers,
Pieter