16.3.17

SAP HANA 작업 부하 관리

작업 부하 관리를 사용하면 SAP HANA 시스템에서 동시 작업의 발생 정도와 작업 우선 순위를 결정할 있습니다.
SAP HANA 시스템에는 단순 또는 복잡한 명령문에서 장기 실행 데이터로드 작업에 이르기까지 플랫폼의 기능으로 인해 다양한 유형의 작업 부하가 있습니다. 이러한 작업 부하 유형은 동시 작업을 처리하는 사용할 있는 리소스 (CPU 또는 메모리) 균형을 유지해야합니다. 단순화를 위해 워크로드 쿼리를 트랜잭션 (OLTP) 또는 분석 (OLAP)으로 분류합니다. 트랜잭션 쿼리의 경우 일반적인 응답 시간은 밀리 단위로 측정되며 이러한 쿼리는 단일 스레드에서 실행되는 경향이 있습니다. 반면에 분석 쿼리는 실행 중에 여러 스레드를 사용하는 보다 복잡한 작업을 특징으로 하는 경향이 있습니다. 이는 트랜잭션 쿼리에 비해 CPU 사용량과 메모리 사용량을 높일 있습니다.
시스템의 워크로드를 관리하려면 데이터베이스 관리 시스템이 사용 가능한 자원에서 최적의 방법으로 실행 중인지 확인해야합니다. 목표는 하나의 특정 작업 유형을 최적화하는 것뿐만 아니라 다양한 작업 부하 간에 리소스에 대한 요구를 균형 잡아 전체 시스템 성능을 극대화하는 것입니다. 이를 달성하면 성능 기대에 부합하는 방식으로 요청이 수행되며 시간이 지남에 따라 변화하는 워크로드에 적응할 있습니다. 성능을 최적화하는 외에도 견고성을 최적화하여 응답 시간을 보다 예측 가능하게 만들 있습니다

1. SAP HANA Context Workload

SAP HANA 컨텍스트에서 워크로드는 공통된 특성을 가진 요청 집합으로 설명 있습니다.
특정 워크로드의 세부 사항을 다양한 방법으로 있습니다. 요청 소스를 살펴보고 특정 응용 프로그램 또는 응용 프로그램 사용자가 시스템에 대해 높은 작업 부하를 생성하는지 확인합니다. 우리는 어떤 종류의 SQL 문이 생성되었는지 검사 있습니다: 그것들은 단순합니까? 또는 복잡합니까? 비즈니스 중요성에 따라 수행 작업의 우선 순위가 있습니까? 예를 들어, 비즈니스의 부분이 피크 시간에 많은 액세스 권한을 가져야합니까? 또한 응답 시간 처리량면에서 비즈니스가 갖고있는 서비스 수준 목표의 종류를 확인할 있습니다.
다음 그림은 분석 트랜잭션 작업 뿐만 아니라 추출 로드 조작 (데이터 웨어하우스에서 소스 시스템의 데이터를 일괄적으로 로드 하는 사용됨) 같은 여러 유형의 워크로드를 보여줍니다.




워크로드 관리에 관해 논의 우리는 실제로 리소스 활용도 측면에서 시스템에 중점을 두는 것에 대해 이야기하고 있습니다. 위의 그림에서 있는 주요 리소스는 CPU, 메모리, 디스크 I / O 네트워크입니다. SAP HANA 관련하여 디스크 I / O 로깅을 위해 사용됩니다. 예를 들어, OLTP 시나리오의 경우 작은 트랜잭션이 많으면 분석 작업 부하에 비해 로깅 수준이 높아집니다 (SAP HANA 이를 최소화하려고 시도하지만). SAP HANA 사용하면 스케일 아웃 시스템의 노드 네트워크 연결을 최적화 있습니다. 예를 들어 명령 라우팅은 네트워크 오버 헤드를 가능한 최소화하기 위해 사용됩니다.
그러나 시스템의 작업 부하에 영향을 미치려고 주요 초점은 사용 가능한 CPU 할당되고 사용되는 메모리에 있습니다. 예를 들어, 혼합 트랜잭션 분석 작업 부하는 리소스를 놓고 경쟁 있으며 때로는 즉시 사용할 있는 것보다 많은 리소스가 필요할 있습니다. 하나의 요청이 지배적이면 큐잉 효과가 있을 있습니다. , 다음 요청은 이전 요청이 준비 때까지 기다려야 있습니다. 이러한 상황을 관리하여 전반적인 성능에 미치는 영향을 최소화해야 합니다.

1.1        작업 부하 관리 옵션


작업 부하 관리는 운영 체제 수준에서, 전역 초기화 설정을 사용하여, 그리고 세션 수준에서 여러 수준에서 구성 있습니다.
작업 부하 처리 방법에 영향을 있는 여러 가지 방법이 있습니다.

운영 체제 수준의 SAP HANA 시스템 외부에서 사용 가능한 코어의 선호도를 설정할 있습니다.
매개 변수를 사용하여 정적 설정을 적용 있습니다.
작업 부하 클래스를 정의하여 시스템 런타임에서 작업 부하에 동적으로 영향을 있습니다.

모든 옵션에는 HANA 설치 중에 적용되는 기본 설정이 있습니다. 이러한 범용 설정은 장에서 설명하는 작업 부하 관리 기능이 필요하지 않을 경우 완벽하게 수용 가능한 성능을 제공 있습니다. 워크로드 관리를 시작하기 전에 시스템이 일반적으로 구성되었는지 확인해야합니다. , SQL명령어가 튜닝(조정) 되고 분산 환경 테이블이 최적으로 분산되고 필요에 따라 인덱스가 정의되어 있어야 합니다.

특정 작업 부하 관리 요구 사항이 있는 경우 다음 표에서는 CPU, 메모리 실행 우선 순위와 관련하여 적용 있는 더욱 세분화 컨트롤을 보는 프로세스를 간략하게 설명합니다.

작업 부하 관리 통제 옵션
Area
Possible Actions
CPU
운영 체제 단계에서 CPU 구성
접근법은 주로 서버의 SAP HANA 다중 데이터베이스 컨테이너(MDC) 여러 SAP HANA 인스턴스의 사용 사례에 적용됩니다.
경우 선호도와 관련된 설정 (CPU 코어에 대한 바인딩 프로세스) daemon.ini 적용됩니다. 변경 사항을 적용하려면 프로세스를 다시 시작해야합니다.
CPU
HANA System 단계에서 CPU 구성
전역 실행 설정을 사용하여 CPU 스레드 풀을 관리하고 병렬 실행 (동시성) 관리 있습니다.
Memory
메모리 관리과 관련된 전역 설정
비용 과도한 SQL 문에 할당 자원에 제한을 적용하기 위해 전역 memorymanager 설정을 사용할 있습니다.
Priority and Dynamic Workload Class Mapping
클래스를 사용하여 워크로드 작업 우선순위 관리
개별 사용자 세션에 매핑 있는 사전 구성된 클래스를 설정하여 워크로드 관리에 대한 보다 효과적인 접근 방식을 구현할 있습니다. 예를 들어 응용 프로그램 이름이나 응용 프로그램 사용자를 특정 작업 부하 클래스에 매핑 있습니다. 클래스에는 작업 부하 우선 순위 값을 적용하는 옵션이 포함됩니다.
다음을 사용하여 클래스를 설정할 있습니다.
SAP HANA Cockpit
SQL command

1.2        작업 부하 이해


작업 부하 관리는 반복적인 3단계 프로세스로 있습니다. 현재 시스템 성능을 분석하고 작업 부하의 성격을 이해하며 작업 부하를 시스템 리소스에 매핑합니다.
모든 시나리오에 적합한 단일 워크로드 관리 구성은 없습니다. 작업 부하 관리 설정은 업무량에 따라 다르므로 먼저 작업 부하를 이해해야 합니다. 다음 그림은 시스템이 작업 부하를 처리하는 방법을 이해하고 최적화하는 사용할 있는 반복 프로세스를 보여줍니다.

1. 먼저 CPU 사용 메모리 소비 측면에서 시스템이 현재 어떻게 수행되고 있는지 살펴보십시오. 어떤 종류의 워크로드가 시스템에서 실행되는지, 복잡한지, 많은 양의 메모리를 필요로 하는 장기 실행 쿼리인지?
2. 시스템에서의 활동을 폭넓게 이해하면 비즈니스 중요성과 같은 세부 사항을 상세하게 파악할 있습니다. 시간에 별로 중요하지 않은 표준 보고와 비교하여 전략적 또는 분석적 성격의 SQL문장이 실행되고 있습니까? 이러한 SQL문을 보다 효율적으로 실행하도록 최적화 있습니까?
3. 그런 다음 시스템을 이해하면 작업 부하를 처리하는 방법에 영향을 있는 여러 가지 방법이 있습니다. 작업을 CPU 메모리와 같은 사용 가능한 리소스에 매핑하고 작업 부하 클래스를 사용하여 요청 받는 우선 순위를 결정할 있습니다.

1.3        시스템 성능 분석


시스템 뷰를 사용하여 시스템이 현재 워크로드를 얼마나 효과적으로 처리하는지 분석 있습니다.
섹션에서는 작업 부하를 분석하는 사용할 있는 가장 유용한 일부를 나열하고 성능 향상을 위해 취할 있는 작업에 대한 제안 사항을 제공합니다. 이러한 분석 결과가 적용 작업 부하 관리 옵션을 결정하는 도움이 되는 방법에 대한 자세한 내용은 시나리오 섹션을 참조하십시오.
기타 성능 분석 문제는 SAP HANA 문제 해결 성능 분석 안내서에 설명되어 있습니다.

1.3.1       SQL 분석

다음 보기를 사용하여 SQL문의 성능을 분석하십시오.
M_ACTIVE_STATEMENTS
M_PREPARED_STATEMENTS
M_EXPENSIVE_STATEMENTS

이러한 뷰가 명령에 문제점을 표시하면 워크로드 클래스를 사용하여 메모리 병렬 처리를 제한하여 명령문을 조정할 있습니다.
이러한 문에 부정적인 영향을 미칠 있는 세션 변수 (M_SESSION_CONTEXT) 설정도 고려하십시오.

1.3.2       CPU 활동 분석

다음 보기를 사용하여 CPU 활동 분석을 분석하십시오.
M_SERVICE_THREADS
M_SERVICE_THREAD_SAMPLES
M_EXPENSIVE_STATEMENTS.CPU_TIME (column)
M_SERVICE_THREAD_CALLBACKS (stack frame information for service threads)
M_JOBEXECUTORS (job executor statistics)

이러한 뷰는 특정 서비스의 컨텍스트에서 활성화 스레드 스레드가 보유한 잠금에 대한 정보에 대한 자세한 정보를 제공합니다.
이러한 뷰가 단일 명령문에 대해 많은 스레드를 표시하고 일반 시스템로드가 높으면 'execution' ini-parameters 세트에 대한 설정을 조정할 있습니다.

No comments:

Post a Comment