사진: Micron 7450 MAX 1.6T FIO 벤치마크 결과들을 젬민이가 정리한 데이터

사악한 주딱놈이 좋아하는 프리컨디셔닝(Preconditioning)은 간단히 말하면 접근 가능한 대부분의 셀에 미리 쓰기 작업을 가해서 SSD가 지속 가능한 성능을 뽑아내는 시점, 즉 안정 상태(Steady State)까지 혹사시키는 과정임.

사진에서 보면 가용 공간(=깨끗한 페이지)이 많은 초기 상태인 1, 2, 6번 벤치는 IOPS가 700K 내외로 찍히지만, 지속적인 쓰기로 인해 점차 가혹 환경으로 진입하는 7번은 테스트 중후반부터 성능 저하가 일어나서 평균 IOPS가 508K로 하락함. 쓰기 작업으로 인해 충분히 더러운 페이지들이 쌓인 상태, 즉 프리컨디셔닝이 어느 정도 완료된 상태인 8, 9번은 초기 버스트 성능과 비교하면 절반 수준의 IOPS가 찍힘. 여기서 더 가혹하게 한다면 드라이브에 유효 데이터를 가득 채워 넣어서 쓰기 증폭(Write Amplification)을 유발할 수 있음. (쓰기 증폭: 새로운 데이터를 쓰기 위해 기존의 유효 데이터를 다른 곳으로 옮기고(읽고 쓰고), 빈 공간을 확보한 뒤 새 데이터를 쓰는 과정에서 내부적으로 추가 쓰기가 발생하여 외부 성능 저하를 일으키는 현상).

머, 컨슈머 수준에선 idle 시간이 많다 보니 TRIM과 GC를 여유롭게 실행해서 프리컨디셔닝 후의 최악 상태보다는 좋게 유지되는 상황이 압도적으로 많을 것이다만, 이렇게 테스트하는 건 재현 가능한 지속 성능 벤치라는 거에 의의가 있긴 함. 엔터프라이즈 SSD는 24/7 계속 IO가 있는 걸로 가정하니 이런 안정 상태 성능 측정이 걍 정답임.

근데 쓰기량이 너무 많아.
사진만 봐도 1.6T짜리 스스디에 FIO 테스트만으로 총 9.18TiB의 쓰기가 발생하는 극악무도한 고문이 벌어짐.