Lightsail 서버가 계속 다운되는거 같은데.. (influxDB 보존기간 설정)
이런식으로 가끔씩 CPU 가 튈때가 문제인듯 하다
1차 가설
뭔가 해킹당했나?
ssh 접속기록과 이후 22번포트를 막아둔 이후를 확인해본결과 같은문제 반복
=> 해킹은 아닌듯 핟.
2차 가설
influx DB데이터가 너무 많이 쌓이나?
UI상에서 저장기간을 관리하려 했으나
😡
Failed to update bucket: "shard-group duration must also be updated to be smaller than new retention duration"
발생하여 찾아본 결과
시계열 DB같은 경우
- 보존 기간(Retention)
- 샤드 그룹 기간(Shard group duration)
각각 개념이 있는듯 하다.
샤드
InfluxDB는 데이터를 저장할 때 효율적인 관리를 위해 샤드라는 작은 단위로 데이터를 저장함
샤드 그룹 기간(Shard group duration)
샤드가 생성되고 관리되는 시간 범위
이번에 보존기간을 1일로 바꾸려 했으나 샤드 그룹 기간의 기본값 (168시간) 보다 짧아져 문제가 발생한걸로 확인됨
보존기간 < 샤드 그룹기간 == 에러발생 (생각해보니 당연..)
해결방법
influx bucket update \
--id {bucketID} \
--retention 24h \
--shard-group-duration 1h \
--token {API Token}
++ 샤드 크기에 따른 성능 차이
작은 샤드
장점
- 빠른 데이터 삭제: 샤드는 독립적인 파일 단위로 관리되므로 작은 샤드는 삭제 시 빠르게 처리됩니다.
- 효율적인 쿼리 처리: 특정 시간 범위의 데이터만 쿼리할 경우, 관련 샤드만 읽으면 되므로 처리 시간이 단축됩니다.
- 메모리 소비 감소: 쿼리 시 한 번에 읽는 데이터가 적어 메모리 사용량이 줄어듭니다.
단점
- 메타데이터 관리 부담: 샤드가 너무 많아지면 메타데이터 관리 비용이 증가하고, 시스템 오버헤드가 커질 수 있습니다.
- 스토리지 비효율: 많은 작은 파일로 인해 디스크 공간 활용이 비효율적일 수 있습니다.
큰 샤드
장점
- 쓰기 성능 향상: 더 큰 데이터 덩어리를 한 번에 저장하므로 쓰기 효율이 좋아질 수 있습니다.
- 디스크 I/O 감소: 더 적은 샤드를 관리하므로 디스크 액세스 빈도가 줄어듭니다.
- 효율적인 스토리지 사용: 디스크 공간 활용도가 높아집니다.
단점
- 쿼리 성능 저하: 큰 샤드는 쿼리 시 더 많은 데이터를 로드해야 하므로 처리 속도가 느려질 수 있습니다.
- 데이터 삭제 지연: 샤드 단위로 데이터를 삭제하므로, 큰 샤드는 불필요한 데이터 유지 시간이 길어질 수 있습니다.
- 메모리 사용 증가: 큰 샤드를 쿼리할 때 메모리 사용량이 급증할 수 있습니다.
해결 X
이후 지속적으로 동일한 문제 발생
특정 시점부터 전반적인 docker 컨테이너의 사용률? 이 비정상적으로 올라가는것 확인
컨테이너 각각 종료 후 기존 문제가 재발하는지 확인
=> Grafana 컨테이너 이슈로 확인됨