2

테스트 환경을 설정하고 있지만 Windows Server 2008 R2 SP를 실행하는 SQL 상자에 사용중인 하드웨어의 크기를 줄여야합니다 1 및 SQL 2008. MSConfig.exe에는 사용 가능한 CPU 수를 제한하는 옵션이 있지만 MSDN에서 작동하는 방법에 대한 설명서는 찾을 수 없습니다.Windows Server 2008 R2에서 사용할 수있는 프로세서 수 제한

또한 마이크로 소프트에 넣어하는하는 BCDEdit를 사용하여 명령 줄을 통해이를 변경할 수있는 방법을 확인할 수 없습니다.

사람이에 문서 알고? 나는 부팅시 프로세서 사용을 제한하는 것이 최상의 테스트가 될지 아니면 SQL 자체에서 프로세서를 제한 할 것인지 결정하려고합니다. 나는 저전력의 물리적 박스를 정확하게 모방하려고하기 때문에 부팅 시간에 기대고있다. 데이터베이스 레벨에서 전력을 제한하면 여분의 전력이 다른 영역에 나타날 수있다.

답변

3

하이퍼 스레딩 된 멀티 코어 CPU의 시대에서 "프로세서"는 이제 모호한 용어입니다. 프로세서가 스레드 (하이퍼 스레딩의), 코어 또는 소켓 (실제 CPU)을 참조합니까?

Windows는 논리 프로세서 (LP)를 기본 컴퓨팅 플랫폼으로 인식하여 코어 내의 각 하이퍼 스레 드에 대해 하나의 LP를 제공 한 다음 각 코어에 대해 곱한 다음 최종적으로 소켓 수를 곱합니다.

Windows에서 LP 수를 줄이는 가장 쉬운 방법은/NUMPROC 옵션을 사용하는 것입니다. 이 예제 ITC에서 8

  1. 백업 BCDEDIT/수출 C의 프로세서의 최대 수 생성 : 현재 항목의
  2. 목록을 \ 백업 \의 bcd.bak을 BCDEDIT/V
  3. 기존 설정의
  4. 복사 bcdedit/copy {current}/d "NumProc가있는 Windows 2008 R2" 현재는 "잘 알려진"식별자입니다. 또한 생성 된 ID를 반환합니다. 그래서 새 항목에 매개 변수를 추가
  5. 은 기본 항목의 BCDEDIT/기본 {변경 프로세서
    BCDEDIT/설정 {NEW_ID} NUMPROC 8
  6. 의 최대 수를 설정하려면 BCDEDIT/V 항목의
  7. 목록 직접 사용할 수 있습니다 NEW_ID
  8. }

하이퍼 그러나 단지 하나 개의 프로세서 (소켓)을 활성화하여이 전략의 위험이 4 코어 시스템에 예를 들어 인을 사용한다. 처음 8 LP (0..7)는 첫 번째 프로세서에서 하이퍼 스레딩 된 코어가됩니다. 따라서 HyperThreading이 활성화 된 8 웨이 시스템을 실제로 모방하지는 않지만 1 웨이 -4 코어 시스템을 모방하고 있습니다.

이 모델을 맞지 않을 경우 다른 옵션은 BIOS에서

  • 비활성화 하이퍼 스레딩입니다 - 이것은 LP 핵심 그래서 코어와 소켓을 통해 부하를 분산 도움이 당 계산 줄일 수 있습니다.
  • 시스템 BIOS가 프로세서 당 핵심 카운터를 줄이는 지 지원합니까? 그렇다면 소켓을 통해로드를 분산하는 데 도움이됩니다.
  • 가상 환경에서 시스템을 구축하고 해당 관점에서 물리적 리소스를 제한하십시오.

Windows에서 64 개 이상의 논리 프로세서를 다루는 경우 프로세서 그룹이 도입되고 다른 옵션 레이어가 추가됩니다.

+0

감사의 말을 전합니다. 32 개 LP 중 16 개가 하이퍼 스레딩의 결과이므로 부팅 옵션을 통해 LP 수를 제한하기 전에 BIOS를 통해 하이퍼 스레딩을 비활성화해야합니다. 그렇게하면 스레드를 단순히 제거하는 것보다 실제로 원하는 코어 수를 모방하고 있습니다. –

관련 문제