이상적인 Microsoft SQL Server 2012 프로덕션 서버를 구축하는 것은 스토리지, RAM 또는 프로세서 선택과 같은 변수로 인해 노련한 IT 관리자도 당황하는 어려운 작업이 될 수 있습니다. 우리는 마지막으로 최고의 선택에 대한 분석을 게시했습니다. 인텔 제온 E5-2600 v2 CPU 가상화되지 않은 환경에서 SQL Server 2012를 실행하기 위한 것입니다. CPU 외에도 RAM은 Iron에서 실행되는 SQL의 성능 요구 사항을 고려할 때 또 다른 핵심 구성 요소입니다. 이 테스트를 위해 인텔 프로세서 연구와 동일한 테스트베드를 사용했으며, 이번에는 Micron PC3-12800 RAM을 최고 성능의 CPU 및 스토리지로 스테핑하여 성능 영향을 측정하는 데 중점을 두었습니다.
이상적인 Microsoft SQL Server 2012 프로덕션 서버를 구축하는 것은 스토리지, RAM 또는 프로세서 선택과 같은 변수로 인해 노련한 IT 관리자도 당황하는 어려운 작업이 될 수 있습니다. 우리는 마지막으로 최고의 선택에 대한 분석을 게시했습니다. 인텔 제온 E5-2600 v2 CPU 가상화되지 않은 환경에서 SQL Server 2012를 실행하기 위한 것입니다. CPU 외에도 RAM은 Iron에서 실행되는 SQL의 성능 요구 사항을 고려할 때 또 다른 핵심 구성 요소입니다. 이 테스트를 위해 인텔 프로세서 연구와 동일한 테스트베드를 사용했으며, 이번에는 Micron PC3-12800 RAM을 최고 성능의 CPU 및 스토리지로 스테핑하여 성능 영향을 측정하는 데 중점을 두었습니다.
일반적으로 SQL Server용 RAM이 많을수록 성능이 향상됩니다. 추가 RAM을 활용하면 지정된 스토리지 어레이의 I/O 공간이 줄어들고 일부 캐싱 이점도 제공됩니다. 모든 것이 동일하게 유지되면서 짧은 대기 시간 프로필을 유지하면서 SQL Server 전용으로 사용할 수 있는 RAM의 양을 살펴봅니다. 이 문서에서는 현재 엔터프라이즈 검토를 위해 장치를 테스트하는 SQL Server 전용 128GB를 8GB까지 할당하여 성능에 미치는 영향을 보여줍니다.
테스트베드
이 분석을 위해 우리는 Micron PC3-12800 DDR3 메모리를 슈퍼마이크로 슈퍼스토리지 서버 2027R-AR24NV Intel CPU의 E2012-2 및 E5-2600 v5 제품군을 지원하는 2600U 듀얼 소켓 상자인 Windows Server 2를 실행합니다. 시스템 RAM은 XNUMX개로 구성됩니다. 16GB Micron PC3-12800 DIMM 각 테스트에 대해 정적으로 유지됩니다. SQL Server에서 사용하는 RAM의 양을 변경하려면 할당 설정을 변경하여 각 단계별로 선택한 양으로 제한합니다. 우리는 2.6TB를 활용했습니다. 퓨전 아이오메모리 PX600 매우 우수한 SQL Server 대기 시간 수치를 게시한 인호스트 스토리지의 경우(우리 랩에서 테스트한 가장 빠른 현세대 제품).
서버 구성
- Intel Xeon 프로세서 E2-5W v2687 2개 – 25M 캐시, 3.40GHz, 8코어
- 인텔 C602 칩셋
- 메모리 – 256GB(16x 16GB) 1600MHz Micron DDR3 Registered RDIMM(시스템 전용 128GB, SQL 전용 8-128GB)
- 윈도우 서버 표준 2012
- 3 x Supermicro SAS3 HBA(LSI SAS 3008 컨트롤러)
- 200GB Micron P400m 부팅 SSD
- 1 x Mellanox ConnectX-3 듀얼 포트 VPI PCIe 3.0 어댑터(InfiniBand LoadGen 패브릭)
- Emulex OCe1 듀얼 포트 11102GbE 어댑터 10개
스토리지 구성
- 샌디스크 퓨전 아이오메모리 PX600 2.6TB
- 고성능 모드에서 80% 초과 프로비저닝
- 전체 전력 소비 활성화
- VSL 4.1.1 펌웨어/드라이버
퍼포먼스
지정된 각 RAM 스테핑 간격은 동일한 방식으로 테스트되었습니다. SQL 서버 2012 OLTP 벤치마크 단일 노드 600P Supermicro 서버 내부의 PX2에 데이터베이스가 있습니다. 동급의 대부분의 저장 장치와 마찬가지로 초당 트랜잭션에 대해 크게 걱정하지 않습니다. 강조점은 각 트랜잭션이 완료되는 대기 시간에 실제로 있습니다.
예상대로 SQL 서버에 할당된 RAM의 양이 많을수록 트랜잭션 성능이 향상되었습니다. 128GB에서 64GB까지 TPS에서 큰 변화를 보지 못했습니다. 실제로 96GB에서 64GB 사이의 감소는 대략 동일한 오차 범위 내에서 유지되었습니다. 16GB에서 8GB로의 차이가 가장 큰 변화를 가져왔으며, 이는 16GB가 이 특정 테스트 및 서버 구성에 대한 최소 유용한 임계값임을 알려줍니다.
대기 시간에 초점을 맞추면 Fusion ioMemory PX600이 128~96ms 사이의 64GB, 2GB 및 3GB 결과로 짧은 대기 시간 성능을 얼마나 잘 유지했는지 알 수 있습니다. 32GB로 떨어졌을 때 대기 시간이 약 66% 증가했지만, 16GB로 떨어졌을 때 훨씬 더 극적이었습니다. 그 변화는 대기 시간을 200% 증가시켰고, RAM이 153GB로 감소했을 때 추가로 8% 증가했습니다.
스토리지 영향은 이 테스트의 일부로 표시되지 않았지만 DRAM 할당의 각 단계는 데이터베이스가 상주하는 스토리지 장치에서 볼 수 있는 로드를 크게 줄였습니다. 요컨대 메모리가 많을수록 스토리지에 도달하는 요청이 줄어들고 대신 시스템 메모리 내부에 머뭅니다. 128GB RAM의 백그라운드 로드는 50-100MB/s인 반면, 16GB는 800MB/s로 증가했습니다(모든 DRAM 구성에 대해 큰 스파이크를 유발할 수 있는 로그 쓰기 활동 중에는 제외). 더 적은 저장 매체를 사용하면 이러한 결과가 훨씬 더 높아질 것입니다.
결론
가상화되지 않은 고성능 SQL Server를 구성할 때 고려해야 할 사항이 많습니다. 첫 번째 부분에서는 CPU와 이것이 SQL 성능에 미치는 영향을 살펴보았습니다. 여기서 우리는 최고 성능의 호스트 내 스토리지와 CPU를 사용하여 RAM을 테스트합니다. Micron과 제휴하여 SQL 전용 RAM 8GB에서 128GB 범위에서 동일한 테스트를 실행했습니다. 결과는 매우 직관적이며 일반적으로 더 많은 RAM이 대기 시간 측면에서 더 좋습니다. 이 구성에서 대기 시간이 극적으로 최고조에 달하는 중단점이 있습니다. 16GB에서 대기 시간은 3GB에 비해 32배 급증하고 8GB에서는 그 영향이 훨씬 더 심각합니다. 최상의 성능을 위해 최고 클럭 속도의 CPU와 최고의 PCIe 스토리지를 갖춘 SQL용 128GB RAM은 단 2ms의 대기 시간을 생성합니다.
SQL Server 5용 최고의 Intel Xeon E2600-2 v2012 CPU 선택