목록 보기
DevOps 엔지니어의 Redis Test 분투기 - Part 1
데브옵스

DevOps 엔지니어의 Redis Test 분투기 - Part 1

마켓컬리
마켓컬리
2020년 3월 4일

두줄요약

Redis 키 만료 시 동시 GET·SET이 집중되는 장애 상황을 API와 nGrinder로 재현했습니다.\n반복 조회 로직 제거로 CPU 사용률과 TPS 저하를 완화하고 운영 주의점을 정리했습니다.

문제 상황

  • MSA 전환 과정에서 Look-Aside-Caching 기반 API의 Redis 키 조회 실패로 AWS RDS 부하 집중
  • Redis 표준 규격과 성능 기반 사이징 사례 부재

원인 분석

  • 키 만료 또는 미존재 시 다수 요청이 동시에 GET·SET·값 검증을 수행하는 구간의 오류와 TPS 저하
  • 단일 키를 반복 확인하는 loop 로직에서 Redis CPU 사용률 25% 이상 상승

해결 방법

  • Elasticache 외부 제약과 장애 재현 필요성에 따라 Node.js·Express API와 nGrinder 부하 테스트 구성
  • Redis Strings에 60초 expire를 적용한 GET/SET 로직으로 동시 요청 상황 재현
  • loop 제거 후 동일 조건 재시험으로 CPU 사용률 감소와 평균 TPS 향상 확인

주의할 점

  • 데이터 특성에 맞는 Redis Collection 선택과 빈번한 특정 키 변경 회피
  • Redis 무응답 시 DB 부하 집중을 막기 위한 장애 대응책 준비
  • 물리 메모리 초과, 느린 명령어, Cluster·Failover 모드 용도 구분 검토

컬리 계열사 채용12건

채용 사이트에서 전체 보기

다음 읽기

#Redis 주제를 이어서 읽기

DevOps 엔지니어의 Redis Test 분투기 - Part 1

Redis 키 만료·재적재 시 동시 요청으로 발생한 성능 저하를 API 부하 테스트로 재현했습니다.\n컬렉션 선택과 캐시 장애 시 DB 부하 대응, 리소스 모니터링의 중요성을 확인했습니다.

마켓컬리
마켓컬리
데브옵스

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...