redis

redis 3부 - Warning 제거 ...

drscg 2019. 4. 8. 11:22

centos에서 redis를 설치하고, 실행을 하면, log 파일에서 다음과 같은 WARNING이 나타나는 경우가 있다.
이를 제거해 보자.

# WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
# 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.
# 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.  TCP backlog 경고

WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

기본적인 소켓 accept limit 값이다. 보통 리눅스 배포판에는 128로 되어있고 이 때문에 tcp backlog 의 셋팅이 511 로 되어있지만 강제로 128로 적용 된다는 뜻이다.
아래의 명령어로 1024 혹은 더욱 높은 값으로 설정해 준다. ( 최고는 65535 )

# sysctl -w net.core.somaxconn=1024
# echo "net.core.somaxconn=1024" >> /etc/sysctl.conf

확인 : sysctl -a | grep somaxconn

2. overcommit_memory 경고

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.

메모리 이용에 관한 설정이다. 메모리 이용이 허용량보다 넘어 가게 될 경우 처리 방법이다.
해결 방법은 아래의 명령어로 가능하다.

# sudo sysctl vm.overcommit_memory=1
# echo "vm.overcommit_memory=1" >> /etc/sysctl.conf

확인 : sysctl -a | grep vm.overcommit_memory

관련 내용 : https://www.kernel.org/doc/Documentation/vm/overcommit-accounting

3. THP 경고

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.

THP 기능이 Enable되어 있어 발생하는 warning이다.
THP는 redis에서 문제가 발생할 수 있기 때문에 disable한다.
그리고 재 부팅시 재설정을 변경하기 위해 /etc/rc.local 에 아래 명령어를 넣어 주도록 한다.

# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# vi /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled

확인 : cat /proc/meminfo | grep AnonHugePages
   AnonHugePages 가 0 이면 정상

THP 관련 내용 : https://access.redhat.com/site/documentation/ko-KR/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/s-memory

4부에서는 java library인 jedis를 이용하는 방법을 알아보자.

'redis' 카테고리의 다른 글

redis 4부 - jedis를 이용한 client sample ...  (0) 2019.04.08
redis 2부 - replication ...  (0) 2019.04.08
redis 1부 - 설치 ...  (0) 2019.04.08