Redis 설치
성능 향상을 위해 Redis를 Docker로 설치하고 Nextcloud를 연결하도록 하겠습니다.
먼저 Redis의 "data" volume을 Mapping할 디렉토리를 생성 합니다.
제 경우 "/volume1/docker/redis/data"에 디렉토리를 생성하였습니다.
아래와 같이 docker 명령어를 실행 합니다.
# docker run --name redis \
-p 6379:6379 \
-v /volume1/docker/redis/data:/data \
-e TZ=Asia/Seoul \
-d redis:latest redis-server --appendonly yes
설치한 Redis를 "home_network"에 연결해 줍니다.
# docker network connect home_network redis
Redis Container에 접속하여 "Memory overcommit"을 활성화 합니다.
[방법 1]
# nano /etc/sysctl.conf 으로 vm.overcommit_memory = 1 추가
[방법2]
# sysctl vm.overcommit_memory=1
[Trouble Shooting] AOF 관련 오류 및 504 timeout 시
Asynchronous AOF fsync is taking too long (disk is busy?).Writing the AOF buffer without waiting for fsync to complete, this may slow down Redis.
디스크가 SSD가 아닌 경우 AOF 쓰기작업 디스크가 느려서 발생 하며, 주로 발생되는 증상은 한꺼번에 많은 파일을 동기화하는 과정에서 504 timeout이 나오는 증상이 발생 합니다.
# docker run --name redis \ -p 6379:6379 \ -v /volume1/docker/redis/data:/data \ -e TZ=Asia/Seoul \ -d redis:latest redis-server --appendonly yes --appendfsync no
이 경우 Redis Container 설치 시 "--appendfsync no" 옵션을 넣어 줍니다.