PSA: SSD에서 n-gram 스트리밍하면 SSD 수명 단축됨
PSA: Streaming n-grams from SSD will cause SSD wear
핵심 요약
SSD에서 n-gram을 스트리밍할 때 발생하는 읽기 방해 현상이 SSD 수명에 미치는 영향에 대한 논의입니다.
- 읽기 방해 현상 — SSD 읽기 작업이 인접 셀의 전압에 영향을 주어 데이터 손실을 유발함
- 컨트롤러의 대응 — 데이터 손실 방지를 위해 컨트롤러가 페이지를 재배치하며 쓰기 작업이 발생함
- 실제 영향 미미 — 대부분의 사용 환경에서는 SSD 수명 내에 유의미한 마모가 발생하기 어려움
- 데이터 측정 권장 — 실제 마모 정도를 확인하려면 SMART 카운터를 통해 쓰기 데이터를 모니터링해야 함
다른 소식 하나 더: 바나나를 먹으면 방사선을 쬐게 되고, 책상에 오래 앉아 있는 건 건강에 악영향을 줄 수 있어. 그래도 다들 그러고 사니까 너무 걱정하지 마 :-)
어쨌든, 무슨 일이 벌어지는지 알려줄게:
Read disturbance(읽기 방해): SSD에서 데이터를 읽을 때 전압이 가해지는데, 이게 인접한 셀의 전압 레벨을 살짝 바꿔버려. 비싼 SLC(single level cell) SSD는 오차 범위가 꽤 넉넉한 편이지만, 흔히 쓰는 TLC나 QLC(quad level cell) SSD는 여유 공간이 훨씬 빡빡하거든.
예시 이미지에서 35번 "셀"(정확히는 "워드 라인")을 54,000번 읽으면, 결국 인접한 36번과 34번 셀이 ECC 한계치에 도달하게 돼(논문 링크). 거기까지 가면 저장된 데이터는 복구 불가능하게 날아가는 거지. 물론 SSD가 그냥 보고만 있지는 않아.
Read reclaim(읽기 재확보): SSD 컨트롤러는 데이터가 ECC 한계치에 도달해서 날아가기 전에, 미리미리 SSD 페이지를 새 영역으로 옮겨버려. 즉, (테스트한 SSD 기준으로) 54,000번까지 읽기도 전에 재배치 작업이 시작된다는 소리지. 이 재배치 작업은 곧 페이지 쓰기야. 결국 읽기가 쓰기를 유발하는 셈이지. 다른 논문을 보면 SSD가 중간중간 페이지를 재배치하느라 읽기 속도가 어떻게 떨어지는지 보여주는 그래프가 있어.
중간 다이어그램을 보면 읽기 작업을 골고루 분산시키면 ECC 한계치에 도달하기까지 시간이 꽤 걸린다는 걸 알 수 있어. 그래도 결국엔 터지는 문제지. 얼마나 빨리 터지는지는 SSD 종류랑 사용 패턴에 따라 달라. 아쉽게도 두 논문 다 구체적인 데이터는 별로 안 보여주더라고.
할 수 있는 일: 만약 평소에 쓰기 작업이 전혀 없어야 하는 전용 SSD에 n-gram 테이블을 저장해 뒀다면, SMART 카운터를 확인해 봐. n-gram을 스트리밍하는 동안 "data units written"이나 "LBAs written" 수치가 얼마나 빨리 올라가는지 보고 여기 공유 좀 해줘. 이게 방사선 피폭으로 치면 바나나 먹는 수준인지, 아니면 비행기 타는 수준인지 파악하는 데 큰 도움이 될 거야.

