Microsoft SQL Server 2012 프로덕션 서버를 이상적으로 구축하는 것은 스토리지, RAM, 프로세서 선택과 같은 변수 때문에 숙련된 IT 관리자조차도 어려움을 느낄 수 있는 작업입니다. 지난번에는 가상화되지 않은 환경에서 SQL Server 2012를 실행하는 데 가장 적합한 Intel Xeon E5-2600 v2 CPU를 선택하는 방법에 대한 분석을 게시했습니다 . CPU 외에도 RAM은 하드웨어에서 SQL Server를 실행할 때 성능 요구 사항을 고려하는 데 중요한 구성 요소입니다. 이번 테스트에서는 Intel 프로세서 연구와 동일한 테스트 환경을 사용했으며, 이번에는 최고의 성능을 내는 CPU 및 스토리지에 Micron PC3-12800 RAM을 조합하여 성능에 미치는 영향을 측정하는 데 중점을 두었습니다.
일반적으로 SQL Server용 RAM이 많을수록 성능이 향상됩니다. 추가 RAM을 활용하면 지정된 스토리지 어레이의 I/O 공간이 줄어들고 일부 캐싱 이점도 제공됩니다. 모든 것이 동일하게 유지되면서 짧은 대기 시간 프로필을 유지하면서 SQL Server 전용으로 사용할 수 있는 RAM의 양을 살펴봅니다. 이 문서에서는 현재 엔터프라이즈 검토를 위해 장치를 테스트하는 SQL Server 전용 128GB를 8GB까지 할당하여 성능에 미치는 영향을 보여줍니다.
테스트베드
본 분석에서는 Windows Server 2012가 설치된 Supermicro SuperStorage Server 2027R-AR24NV (E5-2600 및 E5-2600 v2 계열 Intel CPU를 지원하는 2U 듀얼 소켓 서버) 에서 Micron PC3-12800 DDR3 메모리를 평가합니다 . 시스템 RAM은 16GB Micron PC3-12800 DIMM 16개로 구성되어 있으며 , 각 테스트에서 용량은 고정되어 있습니다. SQL Server에서 사용하는 RAM 용량을 변경하기 위해 할당 설정을 조정하여 각 단계별로 특정 용량으로 제한했습니다. 호스트 내 스토리지로는 2.6TB Fusion ioMemory 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 단계별 테스트는 동일한 방식으로 진행되었습니다. 즉, 단일 노드 2P Supermicro 서버 내의 PX600에 설치된 데이터베이스를 사용하여 SQL Server 2012 OLTP 벤치마크를 활용했습니다 . 대부분의 동급 스토리지 장치와 마찬가지로 초당 트랜잭션 처리량보다는 각 트랜잭션이 완료되는 데 걸리는 지연 시간에 중점을 두었습니다.
예상대로 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의 대기 시간을 생성합니다.




아마존