
저는 SQL Server Express(Sage Line 50 Manufacturing의 일부)를 실행하는 가상 머신에서 작업하고 있습니다. 세부사항은 다음과 같습니다:
물리적 서버(호스트 시스템)
- Intel Xeon 쿼드 코어 2.1GHz
- 4GB RAM
- RAID-5 500GB SATA 드라이브(7200RPM)에 저장된 VMDK 이미지
- Ubuntu 10.04 Server 64비트 실행
- VMware Server 2
가상 기기
- Windows Small Business Server 2003
- vCPU 2개 및 2GB RAM 할당
- 사전 할당된 100GB 플랫 VMDK 파일 사용
내가 가진 문제는 CPU를 많이 사용하는 SQL Server에서 실행되는 프로세스가 있다는 것입니다. 가상 머신으로 마이그레이션한 이전 물리적 서버에서는 두 CPU 코어를 모두 활용하므로 sqlserver.exe 프로세스가 각 CPU 코어에서 100% 실행됩니다. 가상 머신에서는 두 개의 CPU 코어 중 하나만 사용하는 것으로 보이며 이는 프로세스 실행 속도가 훨씬 느리다는 것을 의미합니다.
질문
방법이 있나요?힘두 CPU 코어를 모두 사용하고 둘 사이에 부하를 분산시키는 SQL Server(sqlserver.exe 프로세스)가 있습니까? 프로세스가 두 코어를 모두 사용할 수 있도록 변경해야 하는 VMware 설정입니까?
답변1
저는 가상 머신의 MS SQL Express 데이터베이스에 대한 경험이 많지 않지만 MS SQL Express Edition의 하드웨어 제한 사항에 직면했다고 생각합니다.
귀하의 물리적 서버에는 2개의 코어가 있는 1개의 CPU가 있다고 가정합니다. MS SQL Express 2008(내 생각에는 2005도 마찬가지)은 물리적 CPU는 하나만 지원하지만 코어는 여러 개 지원합니다.
VM은 각 vCPU를 추가 코어가 아닌 단일 CPU로 인식합니다. 따라서 sqlserver.exe 프로세스는 vCPU 1개로 제한됩니다.
답변2
vSphere(VMware 서버에는 적용되지 않을 수 있지만 이 답변을 우연히 발견한 사람들에게는 유용할 수 있음)에서는 VM에 표시되는 "소켓당 코어" 수를 변경하여 멀티 코어(또는 하이퍼스레딩)를 정확하게 반영할 수 있습니다. ) CPU.
이 문서를 참조하세요:http://www.virtualizationbuster.com/?p=132