greyltc / docker-owncloud

Arch linux based docker container with owncloud
111 stars 37 forks source link

Use Redis cache for file locking #114

Open jswetzen opened 7 years ago

jswetzen commented 7 years ago

I've been having issues with files locking up permanently, and there's an FAQ entry describing a workaround. The problem keeps coming up though and they suggest using a Redis cache for file locking instead of the default database method.

Maybe it's a good idea to install Redis and use it for file locking and even replace APCu to keep the dependencies to a minimum.

greyltc commented 7 years ago

Okay. Thanks for the heads up. I'll have a look at adding redis.

greyltc commented 7 years ago

I've got redis running in my container. On startup it spits out some warnings that don't make me feel too great about it:

[root@8e349f09b638 extra]# /usr/bin/redis-server /etc/redis.conf
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.2.6 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 234
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

234:M 27 Jan 19:28:47.282 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
234:M 27 Jan 19:28:47.283 # Server started, Redis version 3.2.6
234:M 27 Jan 19:28:47.283 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
234:M 27 Jan 19:28:47.283 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
234:M 27 Jan 19:28:47.283 * The server is now ready to accept connections on port 6379

I'll add the redis server to a :testing tag for the container and maybe you could test it out.

jswetzen commented 7 years ago

Thanks for the quick response! Those warnings are interesting. I just tried the official redis image and it's got the same ones. That makes me think it's not a big deal, but it may be worth fixing them as described here for example. I don't how those fixes might affect the rest of the system though. I'll try to do some testing with redis cache and locking in any case.