트러블 슈팅(Redis)

Geun Bo Kim·2023년 6월 23일
0

6/23 트러블 슈팅 Redis 공간부족 에러

문제상황 :

1.서비스에서 로그인중 400에러가 뜨는 상황이 발생.

2.서버로그를 확인해 보니

라고뜬다.

이 오류는 Redis의 RDB 스냅샷 기능이 현재 디스크에 지속할 수 없어서 발생하는 문제라고한다.

이 문제는 주로 디스크 공간 부족, 디스크 I/O 문제, 또는 권한 문제 등으로 인해 발생할 수 있는데

cat /var/log/redis/redis-server.log 명령어를 입력하여 로그를 확인해보니

공간이 부족하다고 한다.

실제로 df -h 명령어를 쳐서 공간확인을 해보니깐

/dev/root 파티션이 100% 사용되어 있는 것으로 나왔다.

해결방안:

1. 불필요한 파일삭제 → 해당 방법은 중요한 데이터가 손실될 수 있어 ( 배제 )

2. 공간확장 → EC2 대시보드에서 볼륨 공간을 확장해주는 방법 ( 선택 )

3. SWAP 메모리 사용 -> 속도가 느려짐 ( 배제 )

해결과정

1. EC2 대시보드 → 볼륨 → 작업 → 변경하려는 볼륨ID 선택 → 볼륨수정 → 크기 변경에서 변경하려는 크기 입력 → 수정

2. 위 작업을 완료해주면 볼륨 상태가사용중-optimizing(0%) 으로 최적화중이라고 뜬다. 약 5분정도 기다린 후에 볼륨상태가 사용중이라고 뜨면 완료.

3. 이제 해당 EC2 서버 콘솔창에 lsblk 명령어를 쳐서 공간이 늘어났는지 확인해본다.

변경 전 (8gib)

변경 후 (16gib)

8→16 으로 성공적으로 늘어난 것을 확인할 수 있다.

4. sudo growpart /dev/nvme0n1 1 명령어를 쳐서 파티션 테이블을 확장해준다.

(참고로 nvme0n1은 메인 파티션이다. 위 lblk 명령어를 쳐서 적혀있는 내 메인파티션을 입력해주면됨)

하지만 디스크 공간이 완전히 100프로여서 실패가 뜬다.

이럴 때

sudo mount -o size=10M,rw,nodev,nosuid -t tmpfs tmpfs /tmp

명령어를 쳐서 임시로 공간을 확장해준다.

이후에 다시 sudo growpart /dev/nvme0n1 1 명령어를 쳐서 파티션 테이블을 확장해주면

성공

5. 이제 파일 시스템을 리사이즈하여 늘어난 디스크 공간을 사용할 수 있도록 해야한다.

sudo resize2fs /dev/nvme0n1p1 명령어를 입력해준다.

출력을 보면 파일시스템이 성공적으로 리사이즈 된 것을 확인할 수 있음.

6. tmpfs 마운트를 해제하고, 디스크 공간이 제대로 늘어났는지 확인해본다.

해당 출력을 보면

/dev/root 파일 시스템의 크기가 16G로 늘어나고, 이 중 사용 가능한 공간이 7.8G로 보인다.

7. 마지막으로 sudo systemctl restart redis 명령어를 입력하여 Redis 서비스를 재시작해주면 완료.

profile
미래는 개발이다

0개의 댓글