본문 바로가기

HANA database

Workload Management

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