SQL Server 2008 웹 VS SQL Server 2008 엔터프라이즈

SQL Server 2008 웹 VS SQL Server 2008 엔터프라이즈

저는 몇 달 전에 응용 프로그램을 작성했고 Intel Core 2 Quad Q8200 @ 2.33GHz, 8GB RAM, Windows Server 2008 Enterprise 및 SQL Server 2008 Enterprise가 설치된 사무실 워크스테이션에서 응용 프로그램을 호스팅하고 있었습니다. 웹 서버와 데이터베이스 서버는 모두 동일한 시스템에서 실행되었습니다.

트래픽이 엄청나게 유입되면서 ClubUptime.com을 이전하고 최고의 Windows VM 2개를 확보했습니다. 데이터베이스 서버는 8GB RAM 및 Intel Xeon e5620 @ 2.40GHz에서 Windows 2008 R2 Standard 및 SQL Server 2008 R2 Web을 실행합니다.

전환 이후 RAM에서 약 400MB로 실행되던 데이터베이스가 이제 약 4-7GB로 실행되며 변경 사항이 없습니다(여기서 몇 개의 열 제외). 트래픽이 4배로 늘었고 디스크의 DB는 6GB입니다. DB가 6개에 불과하다면 SQL 서버가 왜 7GB를 차지할까요? 그리고 전체 데이터베이스를 메모리에 저장하는 이유는 무엇일까요?

또 다른 문제는 크기가 4배 증가하면 데이터베이스의 메모리 공간이 12배 증가한 이유입니다.

마지막 질문: 이전에는 CPU가 100%로 고정되지 않는 이유는 무엇입니까? 디자인은 간단하고 조인이 거의 없으며 하위 쿼리가 없습니다. SQL 서버 에디션이 아니거나 실제 하드웨어에서 VM으로 옮겼다는 사실이 아니라면 나는 당황스럽습니다.

답변1

SQL Server는 가능한 한 많은 메모리를 사용하므로 다른 문제가 없는 한 메모리 공간 때문에 너무 많은 잠을 자지 않을 것입니다. 모든 것을 저장할 수 있다면 RAM은 항상 디스크보다 빠르며 다른 용도로 사용되지 않는다면 왜 안 될까요?

VM에서 SQL을 실행하는 것은 문제가 될 수 있습니다. 잘 작동하지만 가상화로 인해 성능 저하가 발생하며 많은 사람들이 여기에서 언급했듯이 SQL은 대부분의 다른 응용 프로그램보다 이로 인해 더 큰 영향을 받습니다. VM 인스턴스에 따라 많은 것이 달라집니다. Hypervisor가 VMware vSphere 호스트인 경우 Hyper-V가 지원되고 경합 비율이 낮은 경우(매우 소수의 VM에서와 같이) Xen과 동등한 실제 리소스로 더 나은 성능을 발휘합니다. 호스트에서) 그러면 꽤 좋을 수 있습니다. 제가 지금까지 가상화를 해제해야 했던 유일한 시스템은 모두 SQL 서버였습니다.

VM에 대해 제공하는 가상 CPU 수를 지정하지 않으면 Xeon 5620이 VM에 제공할 수 있는 8개 코어를 모두 얻고 있는지 의심됩니다. 비록 당신이 이것이 최적이 아닐 수도 있습니다. 전반적으로 해당 플랫폼에 4개의 vCPU가 있는 VM은 Xeon 5620이 원래 Core 2 Quad보다 클럭이 약 30% 더 높다고 가정할 때 이전 물리적 플랫폼과 일치할 수 있어야 하지만 실제로 그렇게 하는지 여부는 기본 하이퍼바이저에 따라 다릅니다. 호스트 시스템 설정 및 동일한 하이퍼바이저에서 호스팅되는 다른 VM과의 경합 정도.

일반적으로 VM 내의 성능 카운터를 신뢰할 수 없거나 적어도 성능 카운터가 모든 것을 알려준다고 믿을 수는 없습니다. VM이 실제로 시스템에 있는 실제 CPU 용량의 100%에 도달했는지 확인하려면 하이퍼바이저의 관점에서 성능을 확인해야 합니다.

관련 정보