사진: 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의 쓰기가 발생하는 극악무도한 고문이 벌어짐.
난 컨슈머니까 툴딸깍~
리눅스를 쓰는 게 귀찮긴하쥐
생각보다 가혹하게 굴려야 하는군
시퀀셜로 총 용량의 2배정도 돌리는 게 정석이긴함요. 머 나야 귀찮아서 걍 랜덤 명령어 시간만 바꿔서 고문한거다만 암튼 본문 데이터에서도 7번에서 2배수 넘게 쓰기가 진행된 이후로 8, 9번은 유사하다 볼 수 있는 상태니까 이땐 30분 말고 2분 수준의 단시간 벤치로 의미있는 데이터를 뽑을 수 있슴니다 내가 스스디를 학대한 이유는 결과가 스펙시트보다 높게 나와서 더 떨어지는지 볼려고 90분 갈군거
죽어