먼저 시작은 redis의 필요성일것 같습니다.

redis는 필수인가?

예 필요합니다.
라즈베리파이 4에서 30초 걸리던 로딩이 3초로 줄어들었습니다.

APCu가 redis보다 빠르지 않은가?

저는 이전에 wordpress의 성능 향상을 위해 캐시 기술을 여러가지를 알아봤습니다.
APCu가 가장 성능이 좋지요.

wordpress의 W3 Total Cache에 따르면 하나의 캐시에 대해서 redis와 APCu가 공존할 수 없습니다.
그렇기에 nextcloud도 당연히 같이 사용할 수 없을 것이라고 생각했고,
가장 성능 좋다는 APCu로도 이 정도이니 redis는 더 느릴 것이라고 생각했습니다.

그래서 Nextcloud에도 APCu로 해두었죠.
하지만 성능이 느렸고, 당연히 라즈베리파이의 성능의 한계 때문이라고 생각했습니다.

생각해보면 opcache는 redis와 APCu가 함께 사용될 수는 없지만
opcache, db cache, object cache는 서로 다르게 할 수 있었는데 왜 그렇게 생각 못했는지 모르겠네요.

Nextcloud 공식 자료에서 redis와 APCu를 모두 사용하도록 설정

하지만 이 글(Memory caching – Nextcloud configuration)을 보면 redis와 APCu를 동시에 사용하고 있습니다.

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'redis' => [
     'host'     => '/run/redis/redis-server.sock',
     'port'     => 0,
     'dbindex'  => 0,
     'password' => 'secret',
     'timeout'  => 1.5,
],

memcache.localmemcache.distributed의 차이는 잘 모르겠지만,
두가지가 동시에 사용될 수 있지 않을까? 생각하게 되었고,
Nextcloud의 메모리 캐시 설정 페이지에서는 저의 고민을 날려주는 문구가 적혀있었습니다.

Additional notes for Redis vs. APCu on memory caching
APCu is faster at local caching than Redis. If you have enough memory, use APCu for Memory Caching and Redis for File Locking. If you are low on memory, use Redis for both.

그제서야 wordpress의 W3 Total Cache도 다르게 가능했다는 것을 알게 되었습니다.

redis 구축하기

Nextcloud 설정하기

그래서 저는 다음과 같이 설정했습니다.
<Nextcloud 디렉토리>/config/config.php를 편집해야 합니다.
array (
아래에 다음을 추가합니다.

  'memcache.local' => '\\OC\\Memcache\\APCu',
  'memcache.locking' => '\OC\Memcache\Redis',
//  'memcache.distributed' => '\OC\Memcache\Redis',
  'redis' => [
    'host' => '',
    'port' => 6379,
  ],

distributed는 주석으로 해두고,
locking에 대해서만 redis를 사용하도록 했어요.

이제 redis 컨테이너를 올려봅시다.

독커로 redis 컨테이너 구동하기

이번에도 docker compose를 사용할 것입니다.

  redis:
    image: redis:alpine
    container_name: container-name
    environment:
      - PUID=4261
      - PGID=100
      - TZ=Asia/Seoul
      - UMASK=002
    volumes:
      - ./redis.conf:/redis.conf
      - ./redis_data:/data
    command: redis-server /redis.conf
#    ports:
#      - 6379:6379
    restart: always

redis 설정하기

그리고 가장 중요한, config 파일입니다.
redis에서 가장 중요한 AOF, appendonly file입니다.

Redis configuration file example
저는 여기에 있는 파일을 그대로 긁어와서
docker-compose.yml이 있는 폴더에 redis.conf라는 파일을 만들고 넣어버렸습니다.

그리고 수정해야 하는 부분이 있습니다.

# appendonly no
appendonly yes

마무리

이제 dcupd로 독커를 실행하고, nextcloud 독커도 다시 시작해주면 끝!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다


Ads Blocker Image Powered by Code Help Pro

광고 차단 감지됨!

닫기를 누르면 이용하실 수 있지만, 광고 차단은 해제해주시면 좋겠습니다.
Powered By
100% Free SEO Tools - Tool Kits PRO