StorageReview.com

시스벤치 OLTP 벤치마크

Sysbench OLTP 애플리케이션 벤치마크는 InnoDB 스토리지 엔진을 실행하는 MySQL 데이터베이스 위에서 실행됩니다. 스토리지 엔진의 역할은 온디스크 데이터베이스에서 스토리지 엔진으로 데이터를 읽고 쓰는 애플리케이션으로의 인터페이스를 관리하는 것입니다. 스토리지 엔진은 차례로 IO 스레드와 로그를 관리하고 메모리 내 캐시를 유지하여 디스크 액세스를 최소화합니다. 아래 차트는 엔진에 대한 간단한 개요를 제공합니다.

InnoDB 엔진은 버퍼 풀이라는 메모리 내 캐시를 유지하므로 버퍼 풀 크기에 대한 작업 집합 크기의 비율이 성능에 직접적인 영향을 미칩니다. 즉, 버퍼 풀이 작업 집합을 보유할 수 있을 만큼 충분히 크거나 작업 집합이 버퍼 풀에 맞을 만큼 충분히 작은 경우 대부분의 작업은 IO 바인딩되지 않습니다. 그러나 데이터베이스가 너무 커서 메모리에 맞지 않는 경우 IO 성능이 트랜잭션 응답 시간과 처리량을 결정합니다. 데이터베이스가 메모리에 맞지 않아 InnoDB 스토리지 엔진의 IO 트래픽이 증가하는 상황에서 드라이브의 성능을 특성화하고 있습니다.

여러 스레드(숫자는 고성능 애플리케이션의 데이터베이스 구성에 따라 다르며 32에서 128까지 다양함)는 블록 크기가 16KB인 백업 저장소에서 임의 방식으로 데이터를 읽습니다. 이러한 읽기는 백업 저장소에서 데이터를 요청하는 데이터베이스 쿼리와 관련이 있습니다. 읽기가 처리되면 자동으로 버퍼 풀에 캐시됩니다. 버퍼 풀이 가득 차면 InnoDB는 최신 데이터를 위한 공간을 만들기 위해 LRU(최소 사용) 정책을 사용하여 이전 페이지를 제거합니다.

데이터베이스 쓰기는 먼저 트랜잭션 로그와 버퍼 풀로 전달됩니다. 트랜잭션 로그는 모든 쓰기 트랜잭션에 대해 업데이트되는 순차적으로 작성된 링 버퍼입니다. MySQL 구성에 따라 이 업데이트는 즉각적인 디스크 쓰기로 이어지거나 결국 파일 시스템에 의해 디스크로 플러시되는 버퍼로 RAM에 일시적으로 지속될 수 있습니다. 이 로그 버퍼의 크기는 다양하지만 일반적으로 약 256MB입니다. ACID 규정 준수를 위한 권장 설정에서는 모든 데이터베이스 커밋에서 로그 쓰기가 디스크에 적중해야 합니다. 이러한 쓰기 길이는 4K입니다.

로그는 이전 데이터와 새 데이터 사이의 델타가 기록되는 "생리학적" 기록만 수행합니다. 원본 데이터의 경우 InnoDB는 RAM의 버퍼 풀에 기록하며 이 역시 비동기식으로 소모되어야 합니다. 데이터를 파일 시스템에 다시 쓰는 프로세스는 구성 가능하며 백그라운드에서 발생합니다. 쓰기도 16K입니다. 쓰기는 실제로 엔진이 이중 쓰기 버퍼라고 하는 중간 위치에 데이터를 먼저 쓰는 이중 쓰기입니다. 그런 다음 엔진은 해당 데이터를 파일 시스템의 최종 위치에 복사합니다. 이는 정전 또는 기타 치명적인 이벤트로 인해 16KB 데이터베이스 페이지가 부분적으로 디스크에 기록되는 "손상된 페이지" 문제를 방지하는 데 필요합니다.

Sysbench 벤치마크의 기원

저희는 Micron 과 여러 차례 논의 끝에 Sysbench 테스트 환경을 구축하여 SSD 테스트 및 측정에 활용하는 방법을 알아보았습니다. Micron은 합성 스토리지 벤치마크로는 특정 애플리케이션 워크로드에서 드라이브의 동작을 완벽하게 파악하기 어렵다는 점을 발견하고 Sysbench 기반의 테스트 방법론을 개발했습니다. Sysbench 테스트를 통해 Micron은 Facebook, Craigslist, Booking.com과 같은 애플리케이션에서 흔히 사용되는 표준 MySQL 데이터베이스 워크로드를 가장 유사하게 시뮬레이션할 수 있습니다.

특히 이 기사의 공동 작성을 도운 Moussa Ba와 긴밀히 협력했습니다. Moussa는 고성능 IO 장치를 위한 애플리케이션 및 시스템 소프트웨어 최적화를 포함하는 Micron PCIe 개발 팀의 소프트웨어 엔지니어입니다.

시스벤치 OLTP 벤치마크

Sysbench는 OLTP(OnLine Transaction Processing) 테스트 프로필을 포함하는 시스템 성능 벤치마크입니다. OLTP 테스트는 OLTP 테스트의 근사치가 아니라 CentOS 환경에서 MySQL 인스턴스에 대한 트랜잭션 쿼리를 수행하는 진정한 데이터베이스 지원 벤치마크입니다.

벤치마크 설정의 첫 번째 단계는 데이터베이스 자체를 생성하는 것입니다. 이는 데이터베이스의 테이블 수와 테이블당 행 수를 지정하여 수행됩니다. 테스트에서 우리는 각각 100만 개의 행이 있는 10개의 테이블을 정의했으며 그 결과 1억 항목의 데이터베이스가 생성되었습니다. 이 데이터베이스는 260GB였습니다.

Sysbench에는 데이터베이스를 읽고 쓰는 기본 모드와 읽기 전용 모드의 두 가지 작동 모드가 있습니다. 기본 R/W 모드는 다음 쿼리 유형을 실행합니다: 5개의 SELECT 쿼리, 2개의 UPDATE 쿼리, 1개의 DELETE 쿼리 및 1개의 INSERT. IO 수를 살펴보면 관찰된 읽기/쓰기 비율은 약 75% 읽기 및 25% 쓰기입니다.

Sysbench 테스트 환경

스토리지 솔루션은 StorageReview 엔터프라이즈 테스트 랩 에서 독립형 서버를 사용하여 Sysbench OLTP 벤치마크로 테스트됩니다 . 현재 저희는 Dell의 기성품 PowerEdge R730 서버를 활용하여 현실적인 성능과 뛰어난 가격 대비 성능비를 보여주고 있으며, 스토리지 어댑터 또는 네트워크 인터페이스만 변경하여 R730을 다양한 스토리지 제품에 연결합니다. PowerEdge R730은 타사 장치와의 뛰어난 호환성을 입증하여 이러한 다양한 테스트 환경에 적합한 플랫폼입니다. 또한 R730은 Intel의 강력한 Haswell급 아키텍처를 활용하여 다양한 스토리지 제품을 적절히 부하 테스트하고 성능 잠재력을 극대화할 수 있는 컴퓨팅 성능을 제공합니다.

XNUMX세대 Sysbench 벤치마크 환경

Lenovo ThinkServer RD630 - SATA/SAS/PCIe 테스트 플랫폼

  • 2594-ABU 탑셀러 모델
  • 듀얼 Intel E5-2650 CPU(2.0GHz, 8코어, 20MB 캐시)
  • 128GB RAM(8GB x 16 DDR3, CPU당 64GB)
  • 100GB 미크론 리얼SSD P400e SSD (LSI 9207-8i를 통해) 부트 드라이브
  • 960GB Micron M500(9207-8i 사용) 사전 구축된 데이터베이스 스토리지
  • 센트OS 6.3 64비트
  • 페르코나 XtraDB 5.5.30-rel30.1
    • 데이터베이스 테이블: 100
    • 데이터베이스 크기: 10,000,000
    • 데이터베이스 스레드: 32
    • RAM 버퍼: 24GB

XNUMX세대 Sysbench 벤치마크 환경

Dell PowerEdge R730 – SATA/SAS/PCIe 테스트 플랫폼

  • 듀얼 Intel E5-2690 v3 CPU(2.6GHz, 12코어, 30MB 캐시)
  • 256GB RAM(16GB x 16 DDR4, CPU당 128GB)
  • 100GB 부트 SSD, 480GB 데이터베이스 스토리지 SSD
  • Mellanox ConnectX-2 InfiniBand 어댑터 3개
  • 2 X Emulex 16GB 듀얼 포트 FC HBA
  • 2 X Emulex 10GbE 듀얼 포트 NIC
  • 센트OS 6.6 64비트
  • 페르코나 XtraDB 5.5.30-rel30.1
    • 데이터베이스 테이블: 100
    • 데이터베이스 크기: 10,000,000
    • 데이터베이스 스레드: 32
    • RAM 버퍼: 24GB

Dell PowerEdge R730 가상화 Sysbench 4노드 클러스터

  • 클러스터의 5GHz용 Intel E2690-3 v249 CPU 2.6개(노드당 12개, 30GHz, XNUMX코어, XNUMXMB 캐시)
  • 1TB RAM(노드당 256GB, 16GB x 16 DDR4, CPU당 128GB)
  • SD 카드 부팅(Lexar 16GB)
  • 4 x Mellanox ConnectX-3 InfiniBand 어댑터(vMotion 및 VM 네트워크용 vSwitch)
  • 4 X Emulex 16GB 듀얼 포트 FC HBA
  • 4 X Emulex 10GbE 듀얼 포트 NIC
  • VMware ESXi vSphere 6.0 / Enterprise Plus 8-CPU

이 플랫폼의 주요 목표는 합성 또는 의사 합성 워크로드에 의존하는 대신 엔터프라이즈 스토리지가 실제 엔터프라이즈 환경 및 워크로드에서 어떻게 작동하는지 강조하는 것입니다. 합성 워크로드 생성기는 저장 장치가 연속 합성 I/O 패턴으로 얼마나 잘 작동하는지 보여주는 데 탁월하지만 프로덕션 환경에서 장치가 실제로 작동하는 방식을 밝히는 다른 외부 변수는 고려하지 않습니다. 합성 워크로드 생성기는 계속해서 깨끗한 I/O 패턴을 보여주는 이점이 있지만 실제 프로덕션 환경을 복제하지는 않습니다. 스토리지 제품 위에 애플리케이션 성능을 도입하면 스토리지가 드라이버, 로컬 운영 체제, 테스트 중인 애플리케이션, 네트워크 스택, 네트워킹 스위칭 및 외부 서버와 얼마나 잘 상호 작용하는지 보여주기 시작합니다. 이들은 합성 워크로드 생성기가 단순히 고려할 수 없는 변수이며, 이 특정 벤치마크를 실행하는 데 필요한 장비 측면에서 훨씬 더 많은 리소스와 인프라 집약적이기도 합니다.

전체 Sysbench 성능 결과

테스트 환경의 최소 요구 사항을 충족하는 Sysbench OLTP 벤치마크로 광범위한 스토리지 솔루션을 테스트합니다. 테스트 자격을 얻으려면 저장 장치의 사용 가능한 용량이 260GB를 초과하고 스트레스가 많은 기업 환경에서 작동하도록 조정되어야 합니다. SAS, SATA 및 PCIe SSD와 같은 로컬로 연결된 스토리지 장치는 하나의 Sysbench 인스턴스가 있는 베어 메탈 서버에서 테스트됩니다. 최신 SAN 및 하이퍼 컨버지드 플랫폼은 4, 8, 12 또는 16개의 VM을 동시에 실행하여 각각에서 여러 워크로드가 동시에 얼마나 잘 작동하는지 보여줍니다. 이 테스트 방법은 최신 하이퍼 컨버지드 시스템과 기존 SAN 스토리지 어레이 간의 성능 비교를 이해하는 데 도움이 됩니다.

하이퍼 컨버지드/SAN 가상화 Sysbench 성능 결과(16 VM 집계)

장치 32 스레드 총 TPS 평균 응답 시간(밀리초) 99번째 백분위수 대기 시간(ms)
X-IO ISE 860
(4) 델 R730, X-IO ISE 860 AFA
(2) 10TB 볼륨
6625  80  418

하이퍼 컨버지드/SAN 가상화 Sysbench 성능 결과(12 VM 집계)

장치 32 스레드 총 TPS 평균 응답 시간(밀리초) 99번째 백분위수 대기 시간(ms)
X-IO ISE 860
(4) 델 R730, X-IO ISE 860 AFA
(2) 10TB 볼륨
7160  54  177

하이퍼 컨버지드/SAN 가상화 Sysbench 성능 결과(8 VM 집계)

장치 32 스레드 총 TPS 평균 응답 시간(밀리초) 99번째 백분위수 대기 시간(ms)
X-IO ISE 860
(4) 델 R730, X-IO ISE 860 AFA
(2) 10TB 볼륨
6568  39  83
VMware VSAN(ESXi 6.0)
(4) Dell R730xd, 80개의 1.2TB HDD, 16개의 800GB SSD
4259  60  131

하이퍼 컨버지드/SAN 가상화 Sysbench 성능 결과(4 VM 집계)

장치 32 스레드 총 TPS 평균 응답 시간(밀리초) 99번째 백분위수 대기 시간(ms) 피크 대기 시간(밀리초)
DotHill Ultra48 하이브리드
(4) Dell R730, DotHill Ultra48 하이브리드
(2) 14-디스크 RAID1 풀, 40개의 1.8TB HDD, 8개의 400GB SSD
4645  28  51  676
X-IO ISE 860
(4) 델 R730, X-IO ISE 860 AFA
(2) 10TB 볼륨
4424  29  57  983
VMware VSAN(ESXi 6.0)
(4) Dell R730xd, 80개의 1.2TB HDD, 16개의 800GB SSD
2830  45  94  480
뉴타닉스 NX-8150(ESXi 6.0)
(4) NX-8150, 80TB HDD 1개, 16GB SSD 800개
RAID0 x 4 vDisk 데이터베이스 볼륨
2390  54  173  4784
뉴타닉스 NX-8150(ESXi 6.0)
(4) NX-8150, 80TB HDD 1개, 16GB SSD 800개
기본 데이터베이스 배포
1422  90  216  5508

PCIe 애플리케이션 가속기 / 다중 SSD/HDD RAID Sysbench 성능 결과

장치 32 스레드 평균 TPS 평균 응답 시간 99번째 백분위수 대기 시간
화웨이 ES3000 2.4TB
MLC PCIe SSD x 1
2734.69  11.7  19.84
화웨이 ES3000 1.2TB
MLC PCIe SSD x 1
2615.12  12.23  21.80
퓨전 ioDrive2 듀오 2.4TB
MLC PCIe SSD x 1
2521.06  12.69  23.92
마이크론 P320h 700GB
SLC PCIe SSD x 1
2443.56  13.09  22.45
마이크론 P420m 1.4TB
MLC PCIe SSD x 1
2361.29  13.55  25.84
퓨전 ioDrive2 1.2TB
MLC PCIe SSD x 1
2354.06  13.59  29.35
Virident FlashMAX II 2.2TB
MLC PCIe SSD x 1
2278.11  14.04  26.04
LSI Nytro WarpDrive 800GB
MLC PCIe SSD x 1
1977.67  16.18  39.94
LSI Nytro WarpDrive 400GB
MLC PCIe SSD x 1
1903.14  16.81  39.30

개별 SAS / SATA SSD 결과

장치 32 스레드 평균 TPS 평균 응답 시간 99번째 백분위수 대기 시간
도시바 HK3R2 960GB
MLC SATA x1
1673.23 19.12 49.65
샌디스크 클라우드스피드 에코 960GB
cMLC SATA x 1
1556.99 20.55 49.05
인텔 S3700 800GB
eMLC SATA x 1
1488.71  21.49  40
도시바 PX02SM 400GB
eMLC SAS(6Gb/s) x 1
1487.03 21.52 62.02
스마트 옵티머스 400GB
eMLC SAS x 1
1477.1 21.66 52.69
OCZ 탈로스 2C 480GB
MLC SAS x 1
1438.7 22.24 47.32
OCZ 인트레피드 3600 400GB
eMLC SAS x 1
1335.3 23.96 48.42
OCZ 탈로스 2 R 400GB
eMLC SAS x 1
1421.15 22.51 45.06
SanDisk Extreme 480GB
MLC SATA x1
1303.48 24.55 53.56
스텍 s842 800GB
eMLC SAS x 1
1293.56  24.74  67.20
인텔 S3500 512GB
eMLC SATA x 1
1,287.65 24.85 64.15
인텔 S3500 480GB
eMLC SATA x 1
1241.59  25.77  54.27
씨게이트 600 프로 400GB
eMLC SATA x 1
1198.2  26.7  62.69
히타치 SSD400S.B 400GB
SLC SAS x 1
1191.47  26.85  47.87
OCZ 벡터 512GB
MLC SATA x1
1130.03  28.32  62.67
샌디스크 익스트림 II 480GB
MLC SATA x1
981.34  32.61  102.58
히타치 SSD400M
eMLC SAS x 1
878.9  36.41  68.03
도시바 eSSD
SLC SAS x 1
758.41  42.19  140.59
마이크론 M500 480GB
MLC SATA x1
668.6  47.86  461.80