SAP HANA는 여러 종류의 Workload가 혼재되어 운영되는 것이 일반적입니다. 예를 들어 단위 Transaction을 처리하는 작업, 대량 데이터 분석 작업, 장시간 수행되는 배치 작업 등 OLTP 작업과 OLAP 작업이 혼합되어 있습니다. OLTP 작업은 단일 Thread로 처리하고 OLAP 작업은 병렬 Thread로 처리할 수 있도록 시스템 자원을 분배해야 합니다.
한정된 시스템 자원 내에서 단일한 작업만을 최적화하는 방향보다는 전체적인 성능을 최적으로 유지할 수 있는 방향으로 Workload를 관리해야 합니다. SAP HANA는 이를 위해 Workload Class를 활용하여 구현합니다.
Workload Class 를 통해 관리할 수 있는 속성
다음 속성을 Workload Class 내에 설정할 수 있습니다.
- Priority : 현재 수행하는 Job Scheduling의 우선 순위 설정, 0(낮은 우선순위) ~ 9(높은 우선순위), 기본 값(5)
- Statement Thread Limit : 문장 레벨에서 병렬로 수행되는 Thread 수를 제한, Small Job이 너무 많은 경우 가용할 수 있는 Thread 수를 초과하는 문제를 예방하기 위한 목적
- Statement Memory Limit : 문장 레벨에서 사용할 수 있는 Working 메모리 용량을 제한, 단일 문장이 과도한 메모리를 사용하지 못하도록 하기 위한 목적
- Total Statement Thread Limit : 동일 Workload Class를 적용받는 작업 전체의 Thread 수를 제한
- Total Statement Memory Limit : 동일 Workload Class를 적용받는 작업 전체의 Working 메모리 용량을 제한
- Statement Timeout : 문장의 최대 수행 시간 제한
- Write Transaction Lifetime : 작업이 Commit되지 않은 상태에서 진행될 수 있는 최대 시간 제한
- Idle Cursor Lifetime : 작업이 수행되지 않는 Curosor의 최대 시간 제한
Workload Class 적용 방안
Session의 특성에 따라 생성된 Workload Class를 연결(Mapping)하여 자동으로 Workload 관련 속성을 적용할 수 있습니다. 다음은 관련 Session의 특성입니다.
- User Name : Database User 명
- User Group Name : Database User Group 명
- Application Name : Application 명
Hierarchy 구조
메모리 제한 관련 속성은 Parent-Child 구조로 구성할 수 있습니다.
- Total Statement Memory Limit : Parent Workload Class에 설정하여 Child Workload Class는 상속
- Statement Memory Limit : 개별 Child Workload Class에 설정
'HANA database' 카테고리의 다른 글
Admission Control (0) | 2022.01.11 |
---|---|
SAP HANA database 생성하기 (0) | 2021.12.29 |