데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

스레드 및 파이버 실행

jevida(강성욱) 2016.09.29 03:54 Views : 1000

스레드 및 파이버 실행

 

  • Version : SQL Server 2005, 2008, 2008R2

 

Windows Server에서는 1부터 31까지 숫자 우선 순위 시스템을 사용하여 스레드 실행 일정을 예약한다. 0은 운영체제용으로 예약되며 여러 스레드가 실행을 위해 대기하고 있을 때 Windows에서는 우선 순위가 가장 높은 스레드를 디스패치한다.

 

 

기본적으로 SQL Server의 인스턴스 우선순위는 7이다. 이 기본값은 다른 응용 프로그램에 영향을 주지 않고 SQL Server 스레드가 충분한 CPU 리소스를 얻을 수 있는 순위를 제공한다.

 

 

SQL Server의 우선 순위를 높이려면 priority boost 옵션을 사용하여 우선순위 13으로 높일 수 있다. priority boost 옵션의 기본값은 0 (우선순위 7)이며 1(우선순위 13)로 활성화 시킬 수 있다. 이 설정은 대부분의 다른 응용프로그램보다 높은 우선 순위를 SQL Server 스레드에 제공한다.

 

따라서 SQL Server 스레드는 일반적으로 실행할 준비가 될 때마다 디스패치되고 다른 응용프로그램의 스레드에 의해 미리 점유 되지 않는다. 우선 순위를 너무 높게 설정하면 운영체제 및 네크워크 기능에 필요한 리소스를 사용하게 되어 SQL Server 종료나 서버에 있는 다른 운영체제 사용에 문제가 발생 한다.

 

Priority boost 옵션은 Sp_configure 또는 SSMS 속성에서 변경이 가능하며 서버를 재시작하여 적용 할 수 있다.

 

[SSMS에서 우선 순위 변경]

 

[sp_configure 에서 우선 순위 변경]

 

 

 

[프로세스에서 우선순위 확인]

 

 

 

Priority boost 옵션은 서버에 SQL Server만 운영 중일 때 사용하면 좋을 듯 하다. 여러 서비스가 운영중인 서버라면 다른 응용프로그램의 우선순위에 영향을 미치기 때문이다. 특히 메모리 집중형 작업의 경우 다른 응용프로그램이 SQL Server의 스레드를 미리 점유할 만큼 우선순위를 가지지 못하여 계속 대기 하는 현상이 발생한다.

 

여러 인스턴스가 실행중인 서버에서 일부 인스턴스만 prioty boost가 설정되어 있으면 우선 순위에서 실행되는 인스턴스의 성능에 나쁜 영향을 줄 수도 있다. 또한 다른 응용 프로그램 및 구성요소의 성능도 저하될 수 있으니 환경을 잘 고려하여 사용하도록 한다.

 

[Windows Base Priority]

Process priority class

Thread priority level

Base priority

IDLE_PRIORITY_CLASS

THREAD_PRIORITY_IDLE

1

THREAD_PRIORITY_LOWEST

2

THREAD_PRIORITY_BELOW_NORMAL

3

THREAD_PRIORITY_NORMAL

4

THREAD_PRIORITY_ABOVE_NORMAL

5

THREAD_PRIORITY_HIGHEST

6

THREAD_PRIORITY_TIME_CRITICAL

15

BELOW_NORMAL_PRIORITY_CLASS

THREAD_PRIORITY_IDLE

1

THREAD_PRIORITY_LOWEST

4

THREAD_PRIORITY_BELOW_NORMAL

5

THREAD_PRIORITY_NORMAL

6

THREAD_PRIORITY_ABOVE_NORMAL

7

THREAD_PRIORITY_HIGHEST

8

THREAD_PRIORITY_TIME_CRITICAL

15

NORMAL_PRIORITY_CLASS

THREAD_PRIORITY_IDLE

1

THREAD_PRIORITY_LOWEST

6

THREAD_PRIORITY_BELOW_NORMAL

7

THREAD_PRIORITY_NORMAL

8

THREAD_PRIORITY_ABOVE_NORMAL

9

THREAD_PRIORITY_HIGHEST

10

THREAD_PRIORITY_TIME_CRITICAL

15

ABOVE_NORMAL_PRIORITY_CLASS

THREAD_PRIORITY_IDLE

1

THREAD_PRIORITY_LOWEST

8

THREAD_PRIORITY_BELOW_NORMAL

9

THREAD_PRIORITY_NORMAL

10

THREAD_PRIORITY_ABOVE_NORMAL

11

THREAD_PRIORITY_HIGHEST

12

THREAD_PRIORITY_TIME_CRITICAL

15

HIGH_PRIORITY_CLASS

THREAD_PRIORITY_IDLE

1

THREAD_PRIORITY_LOWEST

11

THREAD_PRIORITY_BELOW_NORMAL

12

THREAD_PRIORITY_NORMAL

13

THREAD_PRIORITY_ABOVE_NORMAL

14

THREAD_PRIORITY_HIGHEST

15

THREAD_PRIORITY_TIME_CRITICAL

15

REALTIME_PRIORITY_CLASS

THREAD_PRIORITY_IDLE

16

THREAD_PRIORITY_LOWEST

22

THREAD_PRIORITY_BELOW_NORMAL

23

THREAD_PRIORITY_NORMAL

24

THREAD_PRIORITY_ABOVE_NORMAL

25

THREAD_PRIORITY_HIGHEST

26

THREAD_PRIORITY_TIME_CRITICAL

31

 

 

[참고자료]

  • 스레드 및 파이버 실행 :

http://msdn.microsoft.com/ko-kr/library/ms189248(v=sql.105).aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/ms685100(v=vs.85).aspx

 

 


강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
1810 DMV를 이용한 CPU 사용량 높은 쿼리 찾기 jevida(강성욱) 2016.09.29 4395
1809 DMV를 이용한 인덱스 크기 및 조각화 정보 반환 jevida(강성욱) 2016.09.29 1156
1808 Checkpoint 추적하기 jevida(강성욱) 2016.09.29 1285
1807 중복 인덱스와 성능(Duplicate Indexes with Performance) jevida(강성욱) 2016.09.29 2235
1806 823, 824, 825, 832 오류 (DISK IO 오류) jevida(강성욱) 2016.09.29 2138
1805 DISK I/O 병목 확인 jevida(강성욱) 2016.09.29 3718
1804 SQL Server 2012에서 비상계정 생성하기 - 비밀번호를 잊어 버렸을 경우 대처하기 jevida(강성욱) 2016.09.29 1251
1803 SQL Server 차단 최소화 jevida(강성욱) 2016.09.29 1129
1802 자주 사용되는 System 함수 jevida(강성욱) 2016.09.29 1070
1801 프로시저와 임시테이블, 그리고 리컴파일 jevida(강성욱) 2016.09.29 2398
1800 access check cache 크기에 따른 성능 문제 jevida(강성욱) 2016.09.29 1049
1799 Hot Add CPU jevida(강성욱) 2016.09.29 849
» 스레드 및 파이버 실행 jevida(강성욱) 2016.09.29 1000
1797 CPU에 스레드 할당 및 lightweight pooling 옵션 사용 jevida(강성욱) 2016.09.29 1693
1796 스레드 및 태스크 아키텍처 jevida(강성욱) 2016.09.29 1392
1795 메모리 관리 아키텍처 – NUMA 버퍼 풀 증가 및 축소 jevida(강성욱) 2016.09.29 1231
1794 메모리 관리 아키텍처 – NUMA 지원 방법 jevida(강성욱) 2016.09.29 1545
1793 메모리 관리 아키텍처 – NUMA(Non-Uniform Memory Access)이해 jevida(강성욱) 2016.09.29 1415
1792 메모리 관리 아키텍처 – Hot Add 메모리 jevida(강성욱) 2016.09.28 929
1791 메모리 관리 아키텍처 – 버퍼 관리_페이지 쓰기 jevida(강성욱) 2016.09.28 1053





XE Login