Research Log/Performance modeling

[12 SYSTOR] Analytic Modeling of SSD Write Performance

ycchae 2022. 3. 6. 18:53

Abstract

SSD는 기존 데이터를 덮어쓰는것 대신 새로운 복사본을 기록하는 방식으로 데이터를 업데이트하고 이전의 동일한 데이터는 무효화(invalidate)한다. 이러한 write 동작은 page 단위로 수행되는 반면, erase 동작은 multi-page로 이루어진 block 단위로 수행된다. 그러므로 erase가 동작하기 전에 block에 남아있는 valid page들을 복사해둘 필요가 있다. 이러한 cleaning process의 효율성은 random workload에서 큰 영향을 끼친다. 더 자세하게 말하자면, SSD의 write bottleneck은 대부분 intermal media throughput과 write amplification으로 인해 발생하고 이러한 추가적인 copy 동작이 어플리케이션의 throughput을 낮추게 되는 직접적인 원인이 된다.

논문에서는 먼저 uniformly distributed random traffic이 발생하고 이를 greedy cleaning 으로 처리하는 환경에서 write amplification에 대한 정확한 closed-form solution을 보여주고 시뮬레이션과의 비교를 통해 이 모델의 정확도를 검증한다. 추가로 첫번째 모델을 사용하여 simple non-uniform traffic을 LRU cleaning과 greedy cleaning을 통해 처리함으로 인해 나타나는 performance degradation을 예측한 결과를 보여준다. 그 결과 첫번째 평가에서는 모델이 매우 정확한 것으로 나타났고, 두번째 평가에서는 2% 이내의 오차율이 나타났다. 또한 LRU 모델을 random traffic의 조합으로 확장하여 실제 워크로드에 대한 cleaning performance를 예측할 수 있다는 사실을 입증했다.

이러한 analytical model의 유용성은 시뮬레이션에서 구현할 수 없는 최적화 기술을 사용하기 쉽다는 것에 있다. 논문에서는 "hot", "cold" 데이터를 구분하는 전략을 평가하여, 이러한 구분이 균일하지 않은 traffic model에서 발생하는 performance 손실을 제거할 수 있다는 것을 보여준다. 시스템이 성능을 향상시키기 위해 cold 데이터에서 hot 데이터로 free space를 이동하는 방법과 write amplification이 1.0에 가까운 최적화 지점을 찾기 위해 제시한 model과 numeric method를 함께 사용하는 방법을 보여준다. 이러한 최적화 지점을 찾기 위한 on-line method를 평가하고 제시된 model을 사용함으로써 수 많은 real-world block trace에 대해 최적의 성능을 달성할 수 있음을 보인다.

Introduction

Log-structured file systems(LFSs)와 SSD Flash Translation Layers(FTLs)는 모두 cleaning 매커니즘에 의존하여 free space를 통합하고 수정이 가능한 상태로 만든다. 수정하는 작업은 고정된 크기 단위(flash pages나 file system blocks)로 이루어지며, 이러한 쓰기 동작은 기존 데이터를 수정하는 대신 이전의 데이터가 무효화되고 새로운 복사본이 작성되는 특이한 방식으로 동작한다. Storage는 순차적으로 기록된 더 큰 고정된 크기 단위(flash erase blocks나 LFS segments)로 정리되며 block에 있던 이전 데이터를 삭제한다. 미디어의 모든 block이 채워지면, 손실되지 말아야할 valid 데이터를 복사하여 다시 쓸 블록을 선택한 뒤 block을 정리해야 한다.

대부분 이러한 cleaning 과정의 성능은 Write Amplification Factor를 통해서 측정한다. 여기서 Write Amplification Factor는 쓰기 작업을 요청받은 양에 대비하여 해당 요청을 처리하기 위해 스토리지 내부에서 총 동작한 쓰기 작업량(cleaning으로 인한 복사 포함)의 비율이다. 논문의 저자들은 이러한 cleaning 동작은 프로그래밍 언어에서 구현된 garbage collection 문제와 유사하다는 점에 주목하였다[17]. 그러나 저장 수명에 대한 해결을 위한 cleaning 시 fixed mutation 및 collection 단위의 제약으로 인해 대체로 솔루션 및 동작이 서로 다른 점을 보인다.

[17] R. Jones, A. Hosking, and E. Moss. The Garbage Collection Handbook: The Art ofAutomatic Memory Management. Chapman and Hall/CRC, 1 edition, Aug. 2011

Cleaning 매커니즘은 log-structured file system 및 flash translation layer의 관점에서 광범위하게 연구되었지만 현재까지 거의 모든 작업은 trace-driven simulation을 통한 새로운 알고리즘의 실험적 검증에 중점이 맞춰져 있었다. 논문에서는 uniformly-distributed random arrival 조건에서 LRU 및 greedy cleaning에 대한 closed-form 결과를 가진 모델을 제시한다. 또한 temporal locality를 가진 traffic의 경우를 조사하고 simple non-uniform traffic이 있는 경우의 LRU 와 greedy cleaning에 대한 cleaning performance 저하를 예측할 수 있는 간단한 numerical solution을 사용한 분석 모델을 제시하는 방향으로 연구를 확장하였다. 그런 다음 이 접근 방식을 더 복잡한 traffic model에 적용하고 실제 추적에 대한 가단한 cleaning 알고리즘의 성능을 예측하는 것을 보여준다.

마지막으로 분석 결과를 사용하여 block cleaning 기반으로 시스템에서 hot 데이터와 cold 데이터를 분리하는 잘 알려진 기술에 대한 insight를 제공한다. 또한 hot과 cold의 단순한 분리가 locality를 통한 최대의 성능 향상을 달성하기에는 충분하지 않다는 것을 보여주고, 보통의 cleaning의 경우 2배의 성능 저하가 발생하는 상황에서 모델에서 도출된 정보로 만들어진 cleaning 전략이 더 많은 locality를 얻어서 3배 이상의 성능 개선을 달성할 수 있다는 것을 보여준다. 그리고 hot/cold traffic model에 최적화된 cleaning strategy를 구성하고 실제 워크로드에 적용할 수 있음을 trace-driven simulation을 결과로 증명한다.