SAP HANA DB 메모리 분석 예제__Example of SAP HANA DB Memory Analysis

감귤은탱귤·2024년 4월 1일
0

SAP HANA - 기본 개념

목록 보기
4/8
post-thumbnail

해당 포스트는 다음글을 참조하여 작성하였습니다.

SAP HANA DB 에서 메모리 사용량에 대한 분석 방법에 대해서 SAP Notes 1969700 - SQL Statement Collection for SAP HANA 스크립트를 사용하여 메모리 사용량에 대한 하향식 조사를 수행하는 방법에 대해서 기록한다.

크게 다음 순서로 메모리 사용량에 대해서 분석한다.

  1. 메모리 사용량이 Peak 인 시간
  2. 메모리 사용량이 Peak 일 때, 메모리를 가장 많이 사용한 구성 요소(Pool)
  3. 메모리 사용량이 Peak 일 때, 실행 중인 Thread

분석에 필요한 SQL 구문은 아래 Notes 에서 다운받을 수 있으며, 사용방법에 대해서는 아래 포스트를 참조하기 바란다.



1. 메모리 사용량이 Peak 인 시간

메모리 분석에 첫째로, 메모리 사용량이 Peak 인 시간대를 특정해야 한다.

다음 SQL 구문을 사용하여 시간대를 확인할 수 있다.
HANA_Resources_CPUAndMemory_History

해당 SQL 구문의 Modification section 의 값을 다음 값으로 변경하여 수행한다.

BEGIN_TIME : <시작 일시>
END_TIME : <종료 일시>
AGGREGATION_TYPE : PEAK
AGGREGATION_BY : TIME

TIME 포맷은 YYYY/MM/DD HH24:MI:SS 이다.


출력된 결과에서, HANA_USED_PCT 값을 기반으로 메모리 사용량이 높은 시간대를 확인한다.

여기서는 출력을 확인한 결과,
2024/01/01 11:00:00 ~ 2024/01/01 11:10:00 시간대에 메모리 사용량이 Peak 인 상황으로 가정하도록 한다.



2. 메모리 사용량이 Peak 일 때, 메모리를 가장 많이 사용한 구성 요소(Pool)

두번째로, 메모리 사용량 Peak 시, 메모리를 가장 많이 소비하는 Memory Pool 을 확인한다.

다음 SQL 구문을 사용하여 확인할 수 있다.
HANA_Memory_TopConsumers

해당 SQL 구문의 Modification section 의 값을 다음 값으로 변경하여 수행한다.

BEGIN_TIME : 2024/01/01 11:00:00
END_TIME : 2024/01/01 11:10:00


출력 결과는 메모리를 많이 사용한 순으로 정렬이 되며, DETAIL 필드를 확인하여 HEAP 메모리 할당자(Heap Allocator) 를 확인할 수 있다.

HEAP 메모리 할당자에 대한 내용은 다음 Notes 에서 간략하게 확인할 수 있다.

  • SAP Notes 1999997 - FAQ: SAP HANA Memory -> 13. What can I do if a certain heap allocator is unusually large?


3. 메모리 사용량이 Peak 일 때, 실행 중인 Thread

세번째로, 메모리 사용량 Peak 시, 실행 중인 Thread 를 확인한다.

다음 SQL 구문을 사용하여 확인할 수 있다.
HANA_Threads_ThreadSamples_FilterAndAggregation

해당 SQL 구문의 Modification section 의 값을 다음 값으로 변경하여 수행한다.

BEGIN_TIME : 2024/01/01 11:00:00
END_TIME : 2024/01/01 11:10:00


출력 결과로 해당 시간동안 수행된 Thread 에 대해서 다음과 같은 정보를 확인할 수 있다.

  • SAMPLE_TIME : Thread Time Stamp
  • THREAD_TYPE : Thread Type (e.g. SqlExecutor, JobWorker)
  • THREAD_METHOD : Thread method (e.g. ExecutePrepared, indexing, parallelFor Job, merging 등등)
  • THREAD_STATE : Activity state of thread
  • THREAD_DETAIL : Thread Detail
  • DB_USER : Name of DB User executing the Thread
  • APP_USER : Name of Application User
  • APP_SOURCE : Application Details (e.g. Report name in case of SAP ABAP Stacks)
  • DURATION_H/M/MS : Thread Dutration time
profile
SAP BC (2019 ~ )

0개의 댓글