Maystyle :
Admin : New post
Guestbook
Local
media
Catergories
Recent Articles
Recent Comments
Recent Trackbacks
Calendar
Tag
Archive
Link
Search
 
해당되는 게시물 2건
  MSCS 각 모듈에 대한 설명 
작성일시 : 2008.10.17 12:14 | 분류 : Windows Server/Cluster | 태그 : Checkpoint Manager, Cluster, CP, Database Manager, DM, Failover Manager, FM, Global Update Manager, gum, lm, Log Manager, Membership Manager, mm, mscs, NM, Node Manager

클러스터 로그를 보게 되면 FM, GUM 등을 확인 할 수 있습니다.
분명 특정 Role을 하는 녀석들의 통칭일껀데 도대체 이게 뭘까요?

해당 모듈명을 알게 되면 로그를 보는데도 클러스터를 이해하는대도 큰 도움이 됩니다.
본 내용을 보기 위해서는 이전 글 (http://maystyle.tistory.com/357)의 Cluster 데이터 베이스에 대한 내용을 먼저 숙지하셔야 합니다.

1, DM (Database Manager)
Cluster의 Database를 관리합니다. 특정 노드에서 Cluster 구성 정보가 변경되게 되면 DM은 Cluster 구성 정보를 로컬의 레지스트리에 저장합니다.

2. LM (Log Manager)
변경 정보를 쿼럼 디스크에 반영하며 클러스터의 구성 정보를 최신 정보로 유지하는 책임을 지게 됩니다.

3. GUM (Global Update Manager)
변경된 구성 정보를 다른 노드에 동기화 시킵니다. Global Update는 무결성을 기반으로 합니다.
즉 Passive 된 노드에 구성 정보를 Update 할 경우 해당 노드의 Cluster Database에 대한 Update가 실패 하게 되면 Active Node 에서는 "Poison Packet"을 Passive Node에 보내 Cluster 서비스를 중지 시킵니다.

4. CP (Checkpoint Manager)
각 리소스의 레지스트리 내용 변경이 발생 할 경우 Quorum 의 registry checkpoint 파일에 저장하는 역활을 합니다.이 녀석의 역활은 꽤나 중요한데 클러스터에서 Fail over가 발생 할 경우 쿼럼에 저장된 데이터 베이스의 사본을 읽는 것이 아니라 해당 쿼럼의 Check Point 파일을 일어 데이터베이스의 내용을 최신의 정보로 유지하게 됩니다.

5. NM (Node Manager)
Heartbeat을 통해 Cluster 상의 노드의 Health를 확인 합니다.
만약 문제가 감지되게 되면 "regroup event" 를 multicast로 전송하고 response가 오는 노드만을 대상으로 클러스터 노드를 재구성합니다.
NM은 Quorum Disk Arbitration을 관리하면 Heartbeat 통신이 중단 되는 경우 Quorum을 소유한 노드로 모든 리소스를 fail over 시킵니다.

6. MM (Membership Manager)
현재 실행 중인 노드의 리스트를 관리합니다. NM에서 reqroup event 를 보내게 되면 MM은 Regroup event 응답 여부에 따라 클러스터 노드의 리스트를 재구성합니다. 문제 노드가 정상으로 동작하게 되면 MM은 해당 노드를 다시 클러스터에 추가하게 됩니다.

7. FM (Failover Manager)
리소스와 리소스 그룹의 시작과 중지를 책임 집니다.
Failover 상황에서 어느 노드에서 가상 서버가 시작될 지를 판한합니다.

출처 : Technet 세미나

(2008.10.22 10:10) R | X
비밀댓글입니다

Name   Password   Home   Secret   Submit
  SQL Server 성능 검증 
작성일시 : 2008.10.08 09:18 | 분류 : SQL Server/Administration | 태그 : DM, dmv, dm_exec_cached_plans, dm_exec_query_stats, dm_exec_requests, dm_exec_sql_text, query performance, 쿼리 성능

쿼리 필요하신 분은 justlock@gmail.com 으로 MSN 쪽지 보내주시면 첨부 파일 발송해드립니다.
이거... Copy가 않되게 되어 있어 불편하군요...;;

SQL Server 2005 부터는 굳이 프로파일러가 없어도 Plan Cache 등의 쿼리 성능 데이터를 확인 할 수 있습니다.
보통 dmv 라고 불리우는 view 들입니다.

저도 어쩌다가 알게 됐는데 정말 사용해 보니 좋더군요. 프로파일러 처럼 리소스를 많이 먹는 것도 아니고...
물론 성능 문제에 대한 원인 규명은 힘들겠지만 근거 데이터로는 손색이 없어 보입니다.

DMV 를 이용하여 SP 및 쿼리의 성능을 확인 하기 위한 간단한 SELECT를 공개 합니다.
개인적인 용도로 사용하시는 것은 문제가 없으나 기타 다른 용도로 사용할 때는 꼭 출처를 밝혀 주시기 바랍니다.

[Out Put]

[쿼리]
본 쿼리는 SQL Server 의 옵티마이져의 성능 통계를 바탕으로 합니다.
Where 절의 Date 값을 조정하여 원하는 시점의 성능 데이터를 확인 할 수 있습니다.

  1. SELECT    
  2.  TOP 10   
  3.  DB_NAME(st.dbid) DB명   
  4.  ,OBJECT_SCHEMA_NAME(objectid, st.dbid) 스키마명   
  5.  ,OBJECT_NAME(objectid, st.dbid) SP명   
  6.  -- 쿼리구문조회   
  7.  ,SUBSTRING(text, qs.statement_start_offset/2   
  8.  ,(CASE       
  9.   WHEN qs.statement_end_offset = -1 THEN LEN(CONVERT(nvarchar(max),text))*2    
  10.   ELSE qs.statement_end_offset    
  11.   END - qs.statement_start_offset)/2) AS 쿼리구문   
  12.  -- 재컴파일된쿼리성능간의구분을위한시퀀스번호(재컴파일된횟수와동일)   
  13.  ,qs.plan_generation_num AS 컴파일횟수   
  14.  -- 최종컴파일이후실행횟수   
  15.  ,qs.execution_count AS 실행횟수    
  16.  -- 쿼리수행에사용된총경과시간   
  17.  ,qs.total_elapsed_time AS 총경과시간    
  18.  ,qs.total_elapsed_time / qs.execution_count AS 평균경과시간    
  19.  -- 가장최근에쿼리를수행하는데사용된경과시간   
  20.  ,qs.last_elapsed_time AS 최근경과시간    
  21.  -- 쿼리를수행하는데걸린가장빠른경과시간   
  22.  ,qs.min_elapsed_time AS 가장빠른경과시간    
  23.  -- 쿼리를수행하는데걸린가장느린경과시간   
  24.  ,qs.max_elapsed_time AS 가장느린경과시간    
  25.  -- 계획이마지막으로실행된시간   
  26.  ,qs.last_execution_time AS 최종실행시간    
  27.  --,qs.total_elapsed_time - qs.total_worker_time as total_wait_time   
  28.  --,qs.total_worker_time as cpu_time   
  29.  --,qs.total_logical_reads as reads   
  30.  --,qs.total_logical_writes as writes   
  31. FROM sys.dm_exec_query_stats qs   
  32.  CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st   
  33.  LEFT JOIN sys.dm_exec_requests r ON qs.sql_handle = r.sql_handle   
  34.  JOIN sys.dm_exec_cached_plans cp ON qs.plan_handle = cp.plan_handle   
  35. WHERE qs.last_execution_time > '2008-10-07 08:30:00.000'    
  36.  AND qs.last_execution_time < '2008-10-09 18:00:00.000'    
  37. ORDER BY 4 DESC  
BlogIcon wssplex (2008.10.08 11:21) R | X
좋네효.^^
근데,. select 가 주석 위에 있어서,... top 10 ?? 잠깐 혼동...;;;; ㅎㅎ

BlogIcon MayStyle (2008.10.08 12:04 신고) R | X
ㅋㅋㅋ
일부로 select 다음에 주석을 넣었어요...
어차피 공개될 운명의 쿼리... ㅎ.ㅎ

Name   Password   Home   Secret   Submit