When Caching Systems Meet Emerging Storage Devices: A Case Study
HotStorage 2023
Zhen Lin, University of New York at Binghamton;
Lianjie Cao, Faraz Ahmed, Hewlett Packard Labs;
Hui Lu, State University of New York at Binghamton;
Puneet Sharma, Hewlett Packard Labs
Link : https://www.hotstorage.org/2023/program.html
Paper : https://huilucs.github.io/pubs/shruti.pdf
이전 포스팅에서는 논문을 개괄적으로 요약하였으며 ( https://dev-charlotte.tistory.com/178 )
해당 포스팅에서는 논문에 포함된 자료를 간략하게 분석하고
마지막 포스팅에서 논문 전문을 자세하게 분석할 예정
1. Figure 1: FIO experiments without Open CAS
Open CAS를 사용하지 않고 FIO로 성능을 테스트한 결과
스토리지 장치 종류와 쓰기 작업의 크기별로 대역폭을 비교
x : 쓰기 작업의 크기. 4kb ~ 1024kb.
y : 대역폭. MB 단위. 높을수록 데이터 처리 속도 빠름
PMem (DRAM bus 사용)
- 거의 모든 쓰기 크기에서 가장 높은 대역폭
- 쓰기 크기 증가에 따라 대역폭도 증가함
- 안정적으로 유지되는 고성능
P5800X (PCIe bus 사용)
- PMem 다음으로 높은 대역폭
- 쓰기 크기 증가에 따라 대역폭도 증가함
size 8-16 변화에서 일시적으로 감소하는 근거에 대한 추가 분석이 필요
PM9A3
- PMem, P5800X보다는 낮은 대역폭 성능
- 쓰기가 증가함에 따라 대역폭도 증가하지만 최대 1500MB/s 정도
PM863
- 가장 낮은 대역폭
- 쓰기 작업 크기가 커져도 대역폭 증가가 크지 않고 최대 500MB/s 정도
결론
- Open CAS를 사용하지 않은 상태에서는 PMem과 P5800X가 가장 높은 대역폭을 나타냄
- PMem은 대용량 쓰기 작업에서도 뛰어난 성능을 안정적으로 유지함
- PM9A3, PM863은 상대적으로 낮은 성능을 보이기 때문에 고성능 환경에 적합하지 않아 보임
2. Figure 2: Open CAS Metadata Structure
Open CAS의 메타 데이터 구조
- metadata segment = 캐싱 시스템에서 데이터를 관리하는 데 필요한 메타데이터 정보를 저장하는 기본 단위 - collision segment = 중복 데이터나 충돌이 발생했을 때 관리하는 영역, 메타데이터 블록 간 주소 충돌 해결- metadata block, chunk = 메타데이터는 청크 단위로 나뉘어져 있고 block address, backend device id, status bit 등의 정보를 저장하고 있음
- struct ocf_metadata_map = open cas가 캐싱 데이터를 효율적으로 관리하는 데 핵심적인 역할 수행, block address, backend device id, status bit 등의 정보를 저장하고 있음
3. Caching Scenarios
캐시 히트와 캐시 미스 조건에 따른 다양한 시나리오
FS 파일 사이즈, CC 캐시 용량
첫 접근 FS < CC : 캐시에 파일이 없음. 전체 캐시 미스. 캐시에서 제거 작업 불필요.
두 번째 접근 FS < CC : 캐시에 파일이 있음. 전체 캐시 히트. 캐시 제거 불필요.
첫 접근 FS >= CC : 캐시 용량이 파일보다 작음. 전체 캐시 미스. 파일 마지막 부분에 대해 캐시 제거 발생 가능성 있음.
두 번째 접근 FS >= CC : 이전 접근 때 캐시에 파일이 모두 저장되지 못했기 때문에 전체 캐시 미스. 파일 전체에 대한 캐시 제거 발생 가능성 있음.
파일 크기와 캐시 용량에 따라 캐시 미스와 캐시 히트 발생 경향이 다름.
파일 크기가 크면 캐시 관리 복잡도 상승.
4. Figure 3: Write bandwidth of Open CAS Write-Back mode when WS = CL
Open CAS 의 write back 모드에서 파일 크기와 쓰기 대역폭의 관계
CL = WS 상황
CL 캐시 라인
WS 쓰기 작업 사이즈
파일 크기별 성능 변화
- 모든 그래프에서 파일 크기가 4GB를 초과하는 경우에는 대부분의 대역폭 감소 경향
CL = WS = 4KB
- 대부분 낮은 대역폭
- PMem & PM9A3 가장 성능 높음
- PMem & PM863 / P5800X & PM863 가장 성능 낮음
CL = WS = 16KB
- 전반적으로 증가한 대역폭
- PMem & PM9A3 가장 성능 높음
- PMem & PM863 괜찮은 성능
- P5800X & PM863 가장 성능 낮음
CL = WS = 64KB
- 최대 대역폭이 2500MB/s 이상으로 상승
- PMem & PM9A3 가장 성능 높음
- PM863 & ### 가장 성능 낮음
CL과 WS의 크기가 증가할수록 전체 대역폭이 높아짐
PMem-PM9A3 조합이 모든 설정에서 가장 높은 성능
PM863 조합은 쓰기 크기 증가에도 불구하고 낮은 대역폭
5. Table 1: CPU usage breakdown
실험 조건마다 달라지는 CPU 사용률 제시
Raw1 : without Open CAS
WB_1st, WB_2nd : write back mode 적용한 첫 번째, 두 번째 접근
FIO : WB모드가 되면 cpu 사용률 감소
Open CAS : WB모드에서 cpu 사용률이 급증 = 캐싱 시스템은 cpu 자원 소비량이 큼
block IO : WB모드에서 급감 = 이유 추가 분석 필요
PMem : WB모드에서 조금 cpu 사용률 감소
Open CAS의 사용은 cpu 사용률에 큰 영향을 미침
캐시 관리, 메타데이터 처리에 많은 시간을 소비
6. Figure 4: Write bandwidth of Open CAS Write-Back mode when WS>CL
Open CAS Write-Back 모드에서 WS(Write Size) > CL(Cache Line)인 경우의 쓰기 대역폭
(a) CL = 4KB, WS = 16KB
PMem-PM9A3 가장 높은 대역폭
파일 크기 증가에 따라 성능 감소
(b) CL = 4KB, WS = 512KB
더 큰 쓰기 크기 더 높은 대역폭
PMem-PM9A3 or P5800X-PM9A3 우수한 성능
WS > CL 조건에서 쓰기 크기가 클수록 대역폭 증가
PMem-PM9A3 높은 성능
파일 크기가 커지면 대역폭 감소