반응형
/********************************************************************************************
-- Title : [2k5] 프로세서 구성 옵션을 사용한 서버 성능 최적화
-- Reference : http://support.microsoft.com/kb/319942/ko, INF: 166967, 319942
-- Key word : sp_configure 구성 설정
********************************************************************************************/
/* 고려 항목 */
• 선호도 마스크(affinity mask)
• Windows NT 파이버(lightweigth pooling)
• 최대 작업자 스레드(max worker threads)
• 우선 순위 높이기(priority boost)
• 작업 집합 크기 설정(set working set size)
• 병렬 처리에 대한 비용 임계값(cost threshold for parallelism)
/* 선호도 마스크(affinity mask) */
• 스레드가 특정 CPU에 얼마나 확실하게 바인딩 되어 있는지 나타냄.
• "소프트" 선호호 사용.
• 실제로 기본값이 아닌 값으로 조정시 성능향상 드물며 심지어 성능 저하.
• 가능한 디폴트로 쓰자.
/* Windows NT 파이버(lightweigth pooling) */
• 기본적으로 SQL Server는 활성 SPID 또는 사용자 프로세스 마다 스레드를 하나씩 사용.
• 파이버 모드는 하나의 스레드로 여러 실행 컨텍스트 처리를 뜻함.
• 실제로 파이버 모드 사용할 상황이 없고 다음 모든 상황 충족시만 사용 여부 확인.
- 대규모 다중 프로세서 서버 사용
- 모든 서버가 최대 성능에 가깝게 실행
- 컨텍스트 전환 횟수가 많은지?(20,000/1초)
• 파이버 모드시 SQL 메일 지원 불가.
• 가능한 디폴트로 쓰자.
/* 최대 작업자 스레드(max worker threads) */
• 한 사용자에게 연결되는 최대 스레드 수.
• 즉, 한 사용자의 여러 명령에 최대 255개의 스레드가 할당되서 지연 못 느낌.
• 디폴트로 쓰자.
/* 우선 순위 높이기(priority boost) */
• SMP(대칭적 다중 프로세서) 환경과 상관없이 SQL Server가 우선 순위로 실행되게 설정.
• 설정시 최고 우선 순위로는 되지 않음.
• 이례적인 상황이 아니면 사용하지 말라는 MS의 권고.
• 그냥 디폴트로 쓰자.
/* 작업 집합 크기 설정(set working set size) */
• 값 변경이 에러 발생 잘하고 MS에서 대놓고 바꾸지 말란다.
• 그냥 디폴트 쓰자.
/* 병렬 처리에 대한 비용 임계값(cost threshold for parallelism) */
• 쿼리에 대한 병렬 계획을 만들고 실행할 임계값 지정
• 설정된 값보다 높은 경우에만 해당 쿼리에 대한 병렬 계획 실행(기본 실행 계획값 5)
• 쿼리가 길면 일반적으로 병렬 계획을 사용하는 것이 좋다.(정말??)
• 다음 조건에서는 무시됨.
- 컴퓨터에 프로세서가 하나.
- affinity mask 구성 옵션으로 단일 CPU만 사용
- max degree of parallelism 옵션이 1로 설정
-- Title : [2k5] 프로세서 구성 옵션을 사용한 서버 성능 최적화
-- Reference : http://support.microsoft.com/kb/319942/ko, INF: 166967, 319942
-- Key word : sp_configure 구성 설정
********************************************************************************************/
/* 고려 항목 */
• 선호도 마스크(affinity mask)
• Windows NT 파이버(lightweigth pooling)
• 최대 작업자 스레드(max worker threads)
• 우선 순위 높이기(priority boost)
• 작업 집합 크기 설정(set working set size)
• 병렬 처리에 대한 비용 임계값(cost threshold for parallelism)
/* 선호도 마스크(affinity mask) */
• 스레드가 특정 CPU에 얼마나 확실하게 바인딩 되어 있는지 나타냄.
• "소프트" 선호호 사용.
• 실제로 기본값이 아닌 값으로 조정시 성능향상 드물며 심지어 성능 저하.
• 가능한 디폴트로 쓰자.
/* Windows NT 파이버(lightweigth pooling) */
• 기본적으로 SQL Server는 활성 SPID 또는 사용자 프로세스 마다 스레드를 하나씩 사용.
• 파이버 모드는 하나의 스레드로 여러 실행 컨텍스트 처리를 뜻함.
• 실제로 파이버 모드 사용할 상황이 없고 다음 모든 상황 충족시만 사용 여부 확인.
- 대규모 다중 프로세서 서버 사용
- 모든 서버가 최대 성능에 가깝게 실행
- 컨텍스트 전환 횟수가 많은지?(20,000/1초)
• 파이버 모드시 SQL 메일 지원 불가.
• 가능한 디폴트로 쓰자.
/* 최대 작업자 스레드(max worker threads) */
• 한 사용자에게 연결되는 최대 스레드 수.
• 즉, 한 사용자의 여러 명령에 최대 255개의 스레드가 할당되서 지연 못 느낌.
• 디폴트로 쓰자.
/* 우선 순위 높이기(priority boost) */
• SMP(대칭적 다중 프로세서) 환경과 상관없이 SQL Server가 우선 순위로 실행되게 설정.
• 설정시 최고 우선 순위로는 되지 않음.
• 이례적인 상황이 아니면 사용하지 말라는 MS의 권고.
• 그냥 디폴트로 쓰자.
/* 작업 집합 크기 설정(set working set size) */
• 값 변경이 에러 발생 잘하고 MS에서 대놓고 바꾸지 말란다.
• 그냥 디폴트 쓰자.
/* 병렬 처리에 대한 비용 임계값(cost threshold for parallelism) */
• 쿼리에 대한 병렬 계획을 만들고 실행할 임계값 지정
• 설정된 값보다 높은 경우에만 해당 쿼리에 대한 병렬 계획 실행(기본 실행 계획값 5)
• 쿼리가 길면 일반적으로 병렬 계획을 사용하는 것이 좋다.(정말??)
• 다음 조건에서는 무시됨.
- 컴퓨터에 프로세서가 하나.
- affinity mask 구성 옵션으로 단일 CPU만 사용
- max degree of parallelism 옵션이 1로 설정
반응형