>  기사  >  데이터 베이스  >  Redis 성능 최적화 방법

Redis 성능 최적화 방법

尚
앞으로
2020-05-15 09:20:563459검색

Redis 성능 최적화 방법

1. Redis 배포 구조 최적화 제안

1. Master는 AOF나 RDB Persistence를 하지 않지만, Slave는 AOF Persistence를 동시에 하는 것이 좋습니다

2. 모든 마스터는 슬레이브를 증가시킵니다

3. 마스터는 M-S-S 방식을 사용하여 2개 이하의 슬레이브를 마운트할 수 있습니다. 고가용성, 즉 마스터-슬레이브 전환을 보장하려면 Keepalived 메커니즘을 사용할 수 있습니다.

참고: 위 내용은 불합리한 Redis 배포 구조를 기반으로 한 제안이며 Redis 최적화 솔루션을 참조하여 제공됩니다. in Sina Weibo 및 Taobao 아키텍처

2. Redis 구성 최적화 제안

1.tcp-keepalive 60

명령을 너무 오랫동안 실행하여 제한 시간에 도달하여 연결이 끊어지는 것을 방지하고 성능을 개선할 수 있습니다.

2.stop-writes- on-bgsave-error no

bgsave 스냅샷 작업에 오류가 발생하면 후속 쓰기 작업이 실패하므로 디스크에 데이터 쓰기를 중지합니다. 쓰기 작업을 수행하려면 이 값을 no로 변경해야 합니다.

3.rdbchecksum no

RDB 데이터의 정확성을 확인하면 성능이 10% 저하되므로 끄는 것이 좋습니다.

4.auto-aof- Rotate-max-size 20gb

auto-aof-rotate-max-total 4
auto-aof-rewrite-percentage 0 (关闭rewrite模式)

AOF 재작성 모드를 회전 모드로 변경하면 AOF가 온라인이 됩니다. 실시간 재작성 기능이 오프라인 작업으로 전환되고, 하나의 AOF 파일이 여러 복사본으로 절단됩니다(로그 절단과 유사). 이는 Redis 성능 및 메모리 활용도를 향상시킵니다.

5.no-appendfsync-on-rewrite yes

새 수정된 데이터가 디스크에 플러시될 때 IO 차단을 방지하세요

참고: 위는 불합리한 Redis 구성을 기반으로 한 최적화 제안입니다

3. 시스템 커널 구성 최적화 제안

1. IO 차단을 완화하기 위해 AOF 모드가 켜집니다.
/etc/sysctl.conf를 편집하고 다음 구성을 추가합니다.

vm.dirty_background_ratio = 5
vm.dirty_ratio = 10

그런 다음 sysctl -p를 사용하여 구성 파일을 적용합니다.

2. RDB 모드를 활성화합니다.

/etc/sysctl.conf를 편집하고 vm.overcommit_memory=1을 변경합니다.

그런 다음 sysctl -p를 사용하여 구성 파일을 적용합니다

참고: 는 테스트 결과를 바탕으로 한 시스템 커널 최적화 제안입니다

후속 계획:

위는 아키텍처 관점의 최적화 제안이며 향후 후속 조치를 취할 예정입니다. 비즈니스 관점에서 메모리 유형이 합리적인지, 핫 및 콜드 데이터 분할이 합리적입니다.

참고:

핫 및 콜드 데이터 분할과 관련하여 통계 분석을 위해 다음 Redis 명령을 사용할 수 있습니다.

OBJECT REFCOUNT 이 명령은 주로 디버깅(디버깅)에 사용됩니다. 지정된 키에 해당하는 값이 참조되는 횟수를 반환할 수 있습니다.

OBJECT ENCODING 이 명령은 지정된 키에 해당하는 값이 사용하는 내부 표현을 반환합니다.

OBJECT IDLETIME 이 명령은 지정된 키에 해당하는 값이 저장된 이후의 유휴 시간(읽기 또는 쓰기 작업이 요청되지 않음)을 10초 단위로 반환합니다. 향후 구현 중에 개선됩니다.

더 많은 Redis 지식을 알고 싶다면 redis 입문 튜토리얼 칼럼을 주목해 주세요.

위 내용은 Redis 성능 최적화 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제