메모리와 스토리지 계층
CPU, 메모리, 플래시, 디스크의 저장 계층과 데이터 재사용 및 DB 서버 측 플래시 캐시와 Exadata 셀 캐시의 차이
#핵심 요약
저장 계층은 접근 속도, 비용, 용량 사이의 절충 관계를 가지며 CPU에 데이터를 공급하는 속도가 처리 대기에 영향을 줌
캐시는 재사용할 데이터를 빠른 계층에 보관하며 같은 데이터나 인접 데이터의 재사용 가능성인 데이터 지역성이 효과의 전제가 됨
Database Smart Flash Cache는 DB 서버 측, Exadata Smart Flash Cache는 스토리지 셀 내부에 위치함
#개념과 동작 원리
#저장 계층과 데이터 공급
| 계층 | 데이터 저장 및 재사용 역할 | 비용, 용량, 접근 특성 |
|---|---|---|
| CPU Register/Cache | 연산에 가까운 데이터 접근 | 빠른 접근, 작은 용량, 높은 비용 |
| RAM, DB Buffer Cache | 읽은 블록을 메모리에 보관하고 재사용 | HDD보다 빠른 접근, 제한된 용량 |
| Flash, SSD | 메모리와 HDD 사이의 읽기 지연 보완 | 메모리와 다른 비용, 용량 특성의 중간 계층 |
| Disk, HDD | 대량 데이터 저장 | 큰 용량, 낮은 비용, 기계적 접근 지연 |
CPU와 메모리가 발전해도 데이터 공급이 늦으면 연산을 기다리는 시간이 남음
실습에서는 플래시 계층과 고속 연결, 스토리지 측 처리를 이러한 공급 지연에 대응하는 서로 다른 방법으로 설명함
실습에서는 RAM 응답 시간을 각각 5~50ns와 DRAM 100ns로 제시함
두 값의 측정 환경과 조건은 확인 불가
#데이터를 읽고 처리하는 위치
| 위치, 경로 | 설명 |
|---|---|
| DB 서버 Buffer Cache | 같은 블록 재사용 시 느린 저장장치 접근 감소 |
| 다른 RAC 노드의 Buffer Cache | Cache Fusion을 통한 블록 수신과 디스크 읽기를 비교하는 VM 예제 |
| DB 서버 측 플래시 | Buffer Cache에서 밀려난 블록을 보관하고 재접근 시 활용하는 Database Smart Flash Cache |
| 스토리지 셀 플래시 | 셀 소프트웨어가 관리하는 Exadata Smart Flash Cache |
| 셀 CPU | 읽은 데이터의 지원되는 조건, 컬럼 선별 |
대량 Full Table Scan은 direct path read를 사용해 Buffer Cache를 우회할 수 있어 반복 조회와 메모리 증설 효과가 단건 재사용과 같지 않을 수 있음
실습에서는 Index Scan의 Single Block I/O 중심 랜덤 접근과 Full Table Scan의 Multi Block I/O 중심 접근을 비교함
#두 플래시 캐시의 구분
| 항목 | Database Smart Flash Cache | Exadata Smart Flash Cache |
|---|---|---|
| 위치 | DB 서버 측 플래시 | 스토리지 셀 내부 플래시 |
| 관리 | 인스턴스별 로컬 캐시 | 셀 소프트웨어 관리 |
| 실습 RAC 주의 | 노드별 독립 파일을 사용하며 공유하지 않음 | DB 서버 캐시와 동일 기능으로 설명하지 않음 |
| 실습 VM 결과 | 설정 후 ORA-00439: feature not enabled: Server Flash Cache 발생 기록 |
셀 플래시가 없는 환경으로 기록 |
DB 서버 플래시 캐시 설정은 해당 VM에서 실패했음
실제 Exadata 셀 캐시의 동작 결과는 확인 불가
Exadata 셀 플래시의 재사용 데이터 캐시 역할은 Smart Flash Cache에서 다룸
#사용 조건과 주의사항
데이터 재사용이 적은 대량 스캔에서는 캐시 효과가 제한될 수 있음
실습의 Cold, Warm, 다른 노드 캐시 비교표는 시간과 읽기 증가량이 빈칸인 기입 양식이므로 실제 측정값은 기재 없음
실습에서는 VM 호스트 OS 캐시가 디스크 대기에 영향을 줄 수 있다고 명시함
HugePages는 큰 메모리 페이지로 주소 변환과 페이지 관리 부담을 줄이는 DB 서버 메모리 최적화 기능임