가상 컴퓨터에서 SQL Server를 실행하는 가장 좋은 방법은 무엇입니까?


21

가상 컴퓨터에서 SQL Server를 실행하는 가장 좋은 방법은 무엇입니까? 온라인 거래 활동은 매우 적지 만 여러 웹 사이트에보고 데이터를 제공 할 목적으로 많은 양의 데이터 처리가 있습니다.


2
디스크는 어디에 저장됩니까? 로컬 5400 RPM HDD? 파이버 연결 및 15k 스핀들 디스크가있는 SAN에서? 요즘의 모든 VM은 IO에 관한 것이며 CPU는 거의 고려 대상이 아닙니다.
jcolebrand

아니요, 현지인이 아닙니다. 그러나 나는 SAN의 세부 사항을 모른다.
JerryOL

2
평판이 충분하지 않아서 의견을 추가 할 수는 없지만 2008 R2의 [Microsoft에 따르면] [1] 고정 가상 디스크와 동적 가상 디스크의 성능 차이는 거의 없습니다. [1] : blogs.msdn.com/b/tvoellm/archive/2009/08/05/…
Terry Bochaton

@Terry는 앞으로 이러한 답변에 자유롭게 플래그를 지정하여 답변 해 드리겠습니다.
jcolebrand

답변:


18

물리적 시스템과 마찬가지로 IO가 가장 중요합니다. 가상화에서 눈에 띄는 IO 히트가 발생하므로 (선택한 기술에 따라 많은 히트가 발생하므로)이를 악화시키고 IO 성능을 더 손상시킬 수있는 조치를 취하지 마십시오.

  • 동적 가상 디스크가 아닌 고정 크기를 항상 사용하고 기본 드라이브 / 배열이 충분한 지 확인하십시오. 동적 vdisk는 고정 크기 디스크보다 성능이 떨어집니다.
  • VM의 데이터가 미션 크리티컬하지 않은 경우 추가 성능을 위해 쓰기를 캐시 (게스트가 물리적으로 디스크에 기록 될 때 게스트 OS에 효과적으로 배치)하는 VM 솔루션 기능을 켜십시오. 이는 데이터가 쉽게 교체되거나 문제가 발생할 경우 다시 만들 수있는 마스터 로컬의 읽기 전용 복제 본인 개발 및 테스트 시스템에 유용하지만 이러한 옵션은 다음과 같이 프로덕션 및 백업 시스템에서 사용하지 않는 것이 좋습니다. 기계의 전원이 예기치 않게 꺼지면 데이터가 손실 될 수 있습니다 (또는 더 나쁜 손상).
  • 각 데이터베이스의 정상적인 작업 세트가 불필요한 IO를 피하기 위해 여유 공간이 충분한 메모리에 맞도록 각 VM에 충분한 RAM이 있는지 확인하십시오. 또한 하이퍼 바이저가 언제든지 VM RAM을 페이징 아웃하지 않도록하십시오 (예 : 대부분의 VMWare 제품이이를 수행 할 수 있으므로 동일한 하드웨어에서 수행 할 수있는 것보다 더 큰 VM 세트를 실행할 수 있지만 성능 저하가 발생할 수 있음) 방대하다-이 행동을 조정하거나 끄는 옵션이있다).
  • 호스트가 RAID5 어레이를 사용하는 경우 RAID10으로 이동하십시오. 이는 사용 가능한 공간을 줄이지 만 RAID5 (또는 6)에서 명백한 쓰기 성능 문제를 제거합니다.
  • IO 활동이 많이 발생할 수있는 VM의 경우 자체 드라이브 또는 어레이를 제공하거나 활동이 적은 데이터와 드라이브 / 어레이를 공유하도록하십시오.

물론 전체 DB (및 VM이 실행중인 다른 모든 항목)가 VM에 할당 된 RAM에 적합하고 쓰기 작업이 거의없는 경우 IO 성능은 문제가되지 않습니다.

편집 : 몇 가지 추가 사항 :

  • 가상 디스크를 사용하는 경우 최상의 컨트롤러 유형이 성능에 사용되는지 확인하십시오. 일부 가상화 솔루션은 더 나은 게스트 호환성을 위해 여러 가상 컨트롤러 유형을 제공하며 에뮬레이션하는 디자인의 프로토콜 제한과 게스트 OS 드라이버의 제한으로 인해 다른 것보다 효율성이 떨어질 수 있습니다.
  • 가상화 솔루션이 가상 드라이브 컨트롤러를위한 특정 드라이버를 제공하는 경우 게스트 OS에서 해당 드라이버를 사용하고 있는지 확인하십시오. 메모리 대 메모리 사본 수와 호스트 <-> 하이퍼 바이저 <-> 게스트 컨텍스트를 줄임으로써 대량 IO 속도를 높일 수 있습니다 일부 작업에 관련된 스위치.
  • 위의 두 가지 사항은 단순 SMB 공유 또는 iSCSI와 같은 네트워크 저장소를 사용하는 경우에도 적용됩니다. 가장 효율적인 가상 네트워크 컨트롤러를 사용하고 게스트 OS가 권장 드라이버를 사용하고 있는지 확인하십시오. 대역폭은 가상화 계층에 의해 요구되는 것보다 더 제한 될 수있다.

1
예, 아니오 iSCSI 초기자를 통해 VM에 마운트 된 SAN 볼륨은 매우 빠릅니다!
Gaius

1
@Gaius : 좋은 지적입니다. vNIC 및 드라이버에 관한 메모를 추가했는데,이 경우 추가 병목 현상의 원인이 될 수 있습니다.
David Spillett

9

1
~ 기사에서 강조하고 싶은 부분이 있습니까?
jcolebrand

2
아니요. 가상화는 복잡한 주제 일 수 있으므로 모든 내용을 읽어 보는 것이 좋습니다. 실제로 그렇게 많지는 않습니다. OP가 빠른 답변을 찾고 있다면 아마도 정답이 아닐 것입니다.
Eric Humphrey-lotsahelp

나는 일반적으로 모범 사례를 따랐습니다. SQLServer 2000 Standard를 새 VM으로 옮겼으므로 저장 프로 시저를 호출하는 웹 사이트에서 메모리에 캐시되지 않은 경우 시간이 초과되는 문제를 해결하려고합니다. 물리적 및 VM 할당 메모리는 동일하지만 4GB입니다.
JerryOL

1
@JerryOL : VM에 할당 된 RAM 이 페이징 아웃 되지 않도록 하고 (그렇지 않으면 4Gb를 VM에 할당하는 것이 물리적 시스템에서 4GB를 갖는 것과 동일하지 않음) 사용하는 가상화 솔루션이 다른 가상 컨트롤러 유형을 제공하는 경우 게스트 OS에서 가장 적합한 드라이버를 선택하고 올바른 드라이버를 사용하도록합니다.
David Spillett
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.