Resource Governor in sql server 2008

939 views

Published on

MS SQL Server 리소스관리자기능

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
939
On SlideShare
0
From Embeds
0
Number of Embeds
102
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Resource Governor in sql server 2008

  1. 1. Ebay Korea DBA Team 최보라
  2. 2. RESOURCE GOVERNOR 필요성 모든 DBA는 SQL Server instances 의 Resource 사용을 효율적으로제어 할 수 있기를 원함. [ IT ] [ Other departments ] [ Customer ] •하드웨어 비용 구축을 최소하여 높은 성능을 •재무, 회계, 마게팅, Sales •나의 Web Report 는 내고 자 함. • 더 낳은 성능을 원함 timed out 발생 불만 •안정적인 Service를 •많은 Data 분석을 원함 •실 시간 조회를 원함 원함
  3. 3. RESOURCE GOVERNOR 전에. RESOURCE GOVERNOR 가 있기 전에 자원을 효율적으로 사용하던방법  Resource 를 많이 사용하는 세션을 Kill  SET QUERY_GOVERNOR_COST_LIMIT 옵션 사용으로 제한  부하가 많은 업무를 별도의 Server 혹은 Instance 로 분리  Peak load Time 때 부하를 주지 않기 위한 예약된 작업 사용  Peak load Time 때 특정 그룹 유저에 대한 Password 변경으로 차단  새로운 업무 계획 작성을 기획하지 못하게 함
  4. 4. What is The RESOURCE GOVERNOR ? RESOURCE 소비량에 대한 제한을 지정하여, SQL Server 작업과 리소스 관리를 할수 있는 SQL 2008 기술 [ 리소스 문제의 유형]  Run-away queries on the Server  예기치 않은 작업 실행  작업 우선 순의 결정 모든 작업은 어떤 방식으로 구별이 되어야 함 (HostName, App Name.., User) [ 리소스 관리자 제약]  Database 엔진으로 제한 ( IS, RS, AS 사용 못함)  SQL Server Instance 간 작업 관리는 없음  CPU 대역폭과 SQL Server에서 관리하는 메모리에만 적용
  5. 5. RESOURCE GOVERNOR 구성요소 Resource Pools  서버의 물리적 리소스  Internal Pool – 변경/삭제 X, 다른 Pool 제한을 받지 않고 사용. ( 어떤 Pool 과 붙어도 이김)  Default Pool – 변경 0  사용자 정의 Pool WorkGroup  각 요청에 적용되는 분류 조건에 따라 유사한 세션 요청의 컨테이너 역할.  internal Group, Default Group Classification  RESOURCE GOVERNOR은 세션의 분류를 지원.  작업을 분류하기 위해서는 분류 함수가 필요함.  분류자 함수는 새 세션이 생성될 때마다 수행 됩니다.
  6. 6. RESOURCE GOVERNOR 프로세스
  7. 7. RESOURCE GOVERNOR- Resource Pools 사용율 CPU, 메모리 MIN 또는 MAX 설정 모든 풀의 MIN 값의 합은 서버 리소스 100% 초과 할 수 없음, MAX 값은 MIN과 100% 사이의 임의 값 설정. 유효한 MAX% = min(x, 100-sum(min%)), 계산된 공유% = 유효한 MAX% - MIN% Pool MIN % MAX % 유효한 MAX% 계산된 공유 % 설명 Internal 0 100 100 0 내부 Pool에는 적용 못함 Default 0 100 30 30 Min( 100, 100-(20+50)), max-min =30-0 Pool 1 20 100 50 30 Min(100,100-50), 50-20 = 20 Pool 2 50 70 70 20 Min(70, 100-20), 70-50 = 30
  8. 8. RESOURCE GOVERNOR- Resource Pools 사용율 퀴즈 Pool MIN % MAX % 유효한 MAX% 계산된 공유 % 설명 Internal 0 100 100 0 Default 0 100 Pool 1 20 100 Pool 2 50 70 Pool 3 5 100모든 Pool 이 MIN 0 %, MAX 100 % 이 라면?모든 Pool 이 MIN 100% 정의 한다면 ?
  9. 9. 생성 Step Create resource Pools Create Workload Groups Create classifier function Enable resource Governor Monitoring
  10. 10. DEMO
  11. 11. 어디에 적용? OLTP 환경에서는 쿼리의 지속 시간이 매우 짧으므로 대역폭 제어를 적용할 수 있을 정도로 오래CPU에 상주 하지 않는다. 이로 인해 CPU 사용량 반환되는 통계가 왜곡 될 수 있다. DBA 는 SQL Server의 상태를 확인하기 윈한 진단 쿼리를 수행합니다. 이러한 쿼리가 서버 메모리의 특정 리소스를 사용하지 않게 합니다. SQL 2008에서 압축 백업이 가능합니다. 압축 시 CPU 로드가 추가되는데 전체 CPU에 부하를 주기 싫을 때.. 특정 패키지 & APP 호출 내역이 메모리, CPU를 모두 차지합니다. 이 작업시 다른 서비스에는 영향을 주기 싫을 때, 메모리, cpu 제한 (GINDEXDB.. ) 특정 Report는 기본 리소스 그룹에서 가장 높은 리소스 사용 우선 순위를 갖도록 할 때.
  12. 12. 모니터링 -- 리소스관리자category view-- veiw any definition, 변경시control serverselect * from sys.resource_governor_configuration with (nolock)SELECT classifier_function_id ,object_schema_name(classifier_function_id) AS Classifier UDF schema ,object_name(classifier_function_id) AS Classifier UDF name ,is_enabledFROM sys.resource_governor_configurationGO-- resource pool infoselect * from sys.resource_governor_resource_pools with (nolock)select * from sys.resource_governor_workload_groups with (nolock)-- 리소스관리자를변경했을때재구성문필요여부select * from sys.dm_resource_governor_configuration with (nolock)select * from sys.dm_resource_governor_workload_groups with (nolock)select * from sys.dm_resource_governor_resource_pools as with (nolock)select p.pool_id, p.name, p.statistics_start_time , p.total_cpu_usage_ms,p.used_memgrant_kb, p.active_memgrant_kb , p.min_cpu_percent, p.max_cpu_percent, p.min_memory_percent, p.max_memory_percent , g.name, g.importance,g.total_cpu_usage_ms, g.max_dop , g.total_query_optimization_count, g.active_parallel_thread_countfrom sys.dm_resource_governor_resource_pools as p with (nolock) join sys.dm_resource_governor_workload_groups as g with (nolock) on p.pool_id = g.pool_idorder by p.pool_id
  13. 13. 참고 자료 BOL, MSDN, BLOGShttp://msdn.microsoft.com/ko-kr/library/bb933866.aspx http://blogs.technet.com/sqlos/archive/2007/12/14/part-1-anatomy-of-sql-server-2008-resource-governor-cpu-demo.aspx http://blogs.msdn.com/psssql/archive/2008/01/10/sql-server-2008-resource-governor-questions.aspx

×