최신 하드웨어(매우 많은 Core를 갖는 CPU를 여러개 사용하는 시스템)에 Windows Server 2012 R2를 설치하는 경우,
OS에 인식되는 CPU(Logical Processor)의 그룹과 수량이 상황에 따라, 다르게 나타날 수 있다.
특히 이 부분은 사용하는 응용프로그램에 영향을 준다.
- DB등 소켓 단위로 라이센싱하는 프로그램 또는 코어 단위로 라이센싱하는 프로그램등 비용에 영향을 줄 수 있다.
- 분산 처리하는 프로그램에 활용가능한 CPU 수량이 달라질 수 있다.
Windows 특성 상, Processor Group(k-group) 한 개에 속할 수 있는 Logical Processor는 64개.
Physical Processor(Socket)는 동일한 Processor Group에 속해야 한다.
Windows 2012에서 Hyper-V 기능을 활성화 하면, Host VM에 64개의 LP가 할당된다.
---------------------------------------------------
Logical Processor count changes after enabling Hyper-V role on Windows Server 2012
After enabling the Hyper-V role on the server you will see something like below. A new entry gets added called "Host Logical Processors" and will have a value of 64. This is the number of logical processors that are assigned to the Host Operating System. Also notice that the value of “Logical processors” did not change.
---------------------------------------------------
Test System:
DL560 Gen9 (Intel E5-4640 v3 CPU (12C) x 4ea) + WS2012 R2 STD
24 Core per Socket (Core x 12, HT x 12)
Default Configuration (OS 배포 직 후)
- pCore 12 x 4 / Total 96 LP로 확인된다.
K-group 수는 Socket으로 구분되어 4개로 확인된다. (NUMA aware)
Install Hyper-V Mgr Role
Host VM에 할당된 LP 64 개로 지정되고, 당연히 한 개 K-group만 보이며, 각 Socket에서 16개 Core가 할당된다.
- HPE 서버의 BIOS 구성을 Clustered 에서 Flat으로 변경해도 동일하다. (영향을 받지 않는다)
- Hyper-V Manager Service를 비활성화해도 동일하다.
- 64개를 제외한 나머지는 VM들에서 사용 가능하다.
Remove Hyper-V role
Hyper-V 기능을 제거하면, Flat에 기반하여, K-group이 2개로 변경된다.
Flat 기능은 NUMA를 정상 지원하지 않는 프로그램들을 위해 CPU를 Socket 단위로 그룹짖지 않고 64개까지 나열하는 것을 의미한다. 다만 Socket이 64개에 포함될 수 없는 경우 다른 그룹으로 나누어 진다.
(96개 LP로, 64개를 초과하기 때문에, 2개로 나뉜 모습)
일부 Core를 비활성화 (Core 수를 12개에서, 8개로 변경)
활성화된 Core가 32개로, HT를 활성화 한 상태에서도, 한 개 k-group에 모두 포함되어 있는 것을 확인할 수 있다.
참고자료,
---------------------------------------------------------------------------
The concept of a processor group (also known as a k-group) was introduced in Windows Server 2008 R2 when the operating system increased its scalability to support more than 64 logical processors.
A processor group is a static set of up of 64 logical processors. Processor groups are numbered starting with zero. If you have less than 64 logical processors, then there will be a single processor group: Group 0.
Legacy applications (that is, non-processor group-aware applications) would be assigned (or affinitized) to a single processor group. This gives them access to a maximum of 64 logical processors for scheduling threads.
Processor Groups
https://msdn.microsoft.com/en-us/library/windows/desktop/dd405503(v=vs.85).aspx
---------------------------------------------------------------------------
Title: HP ProLiant Gen9 Servers - BIOS Setting "NUMA Group Size Optimization" Setting Varies Operation Regarding Windows Server Processor Groups which Impacts the Performance Monitor Processor Object
http://h41302.www4.hp.com/km/saw/view.do?docId=mmr_kc-0127449
제목: Windows Server 2012 - DL360 Gen9 시스템성능 항목에서 Processors count 가 모두 안보이는 문제
http://h20564.www2.hpe.com/hpsc/doc/public/display?docId=mmr_kc-0127458
Advisory: ProLiant Gen9 Servers - Systems Configured with Intel Xeon E5 2600v3 Processors May Utilize Only One-Half (or Fewer) Logical Processors When Running Windows Server Operating Systems
http://h20565.www2.hpe.com/hpsc/doc/public/display?docId=emr_na-c04650594