데이터베이스 시스템에서 처리되는 워크로드는 다양합니다. 한정된 시스템 자원을 효율적으로 분배하여 각 워크로드마다 요구되는 응답시간을 얻는 것이 워크로드 관리의 주요 목적입니다. Db2에서 Adativie WLM 기능은 워크로드의 특성과 사용할 수 있는 자원을 동적으로 파악하여 자동 제어하는 기술로, 분배된 자원을 최대한 활용하면서, Peak Time 시스템 과부하를 예방하고 안정적인 서비스를 유지하개 할 수 있습니다.
시스템에서 구분된 수행 워크로드의 종류에 따라 자원을 분배할 서비스 클래스와 해당 워크로드를 생성합니다.
(1) Service Class
create service class HIPRI soft resource shares 300 for workload type INTERACTIVE
create service class ETL soft resource shares 300 for workload type BATCH
create service class GENERAL soft resource shares 600 for workload type MIXED
(2) Workload - Service Class 매핑
create workload REPORTS session_user(‘EDW_REPORTS’) service class HIPRI
create workload ETLJOBS session_user(‘EDW_ETL_USER’) service class ETL
alter workload SYSDEFAULTUSERWORKLOAD service class GENERAL
CREATE THRESHOLD LARGEACTIVITY FOR DATABASE WHEN SORTSHRHEAPUTIL > 25 STOP EXECUTION;
CREATE THRESHOLD LARGEACTIVITY FOR DATABASE WHEN SORTSHRHEAPUTIL > 25 AND BLOCKING ADMISSION FOR MORE THAN 5 MINUTES STOP EXECUTION;
수행중인 작업 대상으로 High, Medium, Low, Critical 등으로 우선순위를 조정할 수 있습니다.
ALTER WORKLOAD CRITICAL_REPORTS PRIORITY HIGH;
CALL SYSPROC.WLM_SET_SESSION_PRIORITY(2361, ‘LOW’);
매우 짧은 쿼리를 대기열에 넣으면 성능에 해로운 영향을 미칠 수 있습니다. 아래의 워크로드는 적응형 워크로드 관리자에 의해 통제 받지 않습니다.
db2 “set workload to SYSDEFAULTADMWORKLOAD”
WITH LOADTRGT(LOADTRGT) AS (SELECT MAX(VALUE) FROM SYSIBMADM.DBCFG WHERE NAME =
'wlm_agent_load_trgt'),
SORTMEM (SHEAPTHRESSHR, SHEAPMEMBER) AS (SELECT VALUE, MEMBER FROM SYSIBMADM.DBCFG
WHERE NAME = 'sheapthres_shr'),
STMTS(NUMSTMT) AS (SELECT COUNT(*) FROM TABLE(MON_GET_ACTIVITY(NULL,-2)) AS T WHERE
ADM_BYPASSED = 0 AND (ACTIVITY_STATE = 'EXECUTING' OR ACTIVITY_STATE = 'IDLE') AND
MEMBER=COORD_PARTITION_NUM),
ALLOCMEM(ALLOCMEM, ALLOCMEMBER) AS (SELECT SORT_SHRHEAP_ALLOCATED,MEMBER FROM
TABLE(MON_GET_DATABASE(-2)) AS T)
SELECT MAX(DEC((FLOAT(ALLOCMEM)/FLOAT(SHEAPTHRESSHR))*100, 5,2)) AS PERCENT_SORTMEM_USED,
MAX(DEC((FLOAT(NUMSTMT)/FLOAT(LOADTRGT))*100,5,2)) AS PERCENT_THREADS_USED
FROM LOADTRGT, SORTMEM, STMTS, ALLOCMEM
WHERE SHEAPMEMBER=ALLOCMEMBER
결과 --> Agent 와 SORT Memory 중 Sort Memroy에 제한
with sortmem (sheapthresshr, member) as
(select value, member from sysibmadm.dbcfg where name = 'sheapthres_shr')
select b.application_name, b.session_auth_id, a.entry_time, a.local_start_time,
a.activity_state, a.query_cost_estimate, a.estimated_runtime,
a.effective_query_degree, a.adm_bypassed,
(a.estimated_sort_shrheap_top * 100) / c.sheapthresshr as mem_estimate_pct,
(a.sort_shrheap_top * 100) / c.sheapthresshr as peak_mem_used_pct,
substr(a.stmt_text, 1, 512) as stmt_text
from table(mon_get_activity(null,-2)) as a,
table(mon_get_connection(null,-1)) as b,
sortmem as c
where (a.application_handle = b.application_handle) order by activity_state;
결과
적응형 워크로드 관리를 적용하면 복잡한 구성 절차 없이 제한된 시스템 자원을 최대한 활용하면서 안정적인 시스템 운영을 도모할 수 있습니다.
CP4D에 Db2U 설치하기 (0) | 2023.06.07 |
---|---|
Db2U - 컨테이너형 Db2 (0) | 2023.05.20 |
In-DB 머신러닝 (0) | 2023.02.10 |
데이터 가상화 (0) | 2023.01.16 |
dbsummary로 Db2 성능 문제 원인 찾기 (0) | 2022.12.20 |
댓글 영역