복붙노트

[REDIS] 레디 스를 실행할 때 경고를 수정하는 방법 : 고산 도커 이미지

REDIS

레디 스를 실행할 때 경고를 수정하는 방법 : 고산 도커 이미지

나는 레디 스를 실행하는 경우 : 고산 도커 이미지를 명령을 사용하여

docker run redis:alpine

나는 몇 가지 경고를 참조하십시오

1:C 08 May 08:29:32.308 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.2.8 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 1
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

1:M 08 May 08:29:32.311 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
1:M 08 May 08:29:32.311 # Server started, Redis version 3.2.8
1:M 08 May 08:29:32.311 # 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.
1:M 08 May 08:29:32.311 # 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.
1:M 08 May 08:29:32.311 * The server is now ready to accept connections on port 6379

나는 다음과 같은 Dockerfile를 사용하여 이러한 경고의 처음 두 해결하기 위해 시도했다 :

FROM redis:alpine
COPY somaxconn /proc/sys/net/core/somaxconn
COPY sysctl.conf /etc/sysctl.conf
CMD ["redis-server", "--appendonly", "yes"]

내 로컬 파일 SOMAXCONN이 단일 항목 (511)를 포함하여 sysctl.conf 그러나 라인 vm.overcommit_memory = 1을 포함하는 경우, 나는 아직도 내가 구축하고 컨테이너를 실행 같은 경고를 얻을.

어떻게 이러한 경고를 제거 할 수 있습니까? (https://www.techandme.se/performance-tips-for-redis-cache-server/의 문제에 대한 언급이 있지만,이 솔루션은 rc.local에 수정 Rasperry 파이에 해당하는 것으로 보인다 포함, 거기에 설명).

해결법

  1. ==============================

    1.핸들 것들 잘못된 방법 : / proc 디렉토리는 읽기 전용 용기가 시작된 후에는 수정할 수있는 것보다 당신이 특권 모드에서 부두 노동자를 실행할 수 있습니다 그것을 수정하는 특정 파일 시스템.

    핸들 것들 잘못된 방법 : / proc 디렉토리는 읽기 전용 용기가 시작된 후에는 수정할 수있는 것보다 당신이 특권 모드에서 부두 노동자를 실행할 수 있습니다 그것을 수정하는 특정 파일 시스템.

    특권 모드에서 컨테이너를 실행하는 경우 다음 명령을 사용하여 THP을 해제 할 수 있습니다 :

    # echo never > /sys/kernel/mm/transparent_hugepage/enabled
    # echo never > /sys/kernel/mm/transparent_hugepage/defrag
    

    적절한 방법 : 당신은 부두 노동자의 최신 버전 (필요한 경우 업그레이드)를 실행했는지 확인하십시오. 실행 부속 명령은 --sysctl 옵션이 있습니다 :

    $ docker run -ti --sysctl net.core.somaxconn=4096 --rm redis:alpine /bin/sh
    root@9e850908ddb7:/# sysctl net.core.somaxconn
    net.core.somaxconn = 4096
    ...
    

    불행하게도 : vm.overcommit_memory 현재 그들이 네임 스페이스되지 않기 때문이다, 동일 THP (transparent_hugepage)에 적용 --sysctl 있었던 파라미터를 통해 설정 될 수 없습니다. 따라서 당신이 호스트에서 직접 변경할 수 있습니다 리눅스 호스트의 컨테이너 실행에서 이러한 경고를 해결합니다. 여기에 관련 문제 :

    당신은 적절한 방법의 접근 권한 모드가 필요하지 않습니다.

  2. from https://stackoverflow.com/questions/43843197/how-to-fix-the-warnings-when-running-the-redisalpine-docker-image by cc-by-sa and MIT license