StorageReview.com

Sysbench OLTP ベンチマーク

Sysbench OLTP アプリケーション ベンチマークは、InnoDB ストレージ エンジンを実行する MySQL データベース上で実行されます。ストレージ エンジンの仕事は、ディスク上のデータベースから、ストレージ エンジンとの間でデータを読み書きするアプリケーションへのインターフェイスを管理することです。ストレージ エンジンは IO スレッドとログを管理し、メモリ内キャッシュを保持してディスク アクセスを最小限に抑えます。以下の図は、エンジンの簡単な概要を示しています。

InnoDB エンジンはバッファ プールと呼ばれるメモリ内キャッシュを保持するため、パフォーマンスはバッファ プールのサイズに対するワーキング セットのサイズの比率に直接影響されます。つまり、バッファー プールがワーキング セットを保持できるほど大きい場合、またはワーキング セットがバッファー プールに収まるほど小さい場合、ほとんどの操作が IO バインドされることはありません。ただし、データベースが大きすぎてメモリに収まらない場合は、IO パフォーマンスによってトランザクションの応答時間とスループットが決まります。データベースがメモリに収まらないため、InnoDB ストレージ エンジンからの IO トラフィックが増加するこの状況でのドライブのパフォーマンスを特徴付けています。

複数のスレッド (その数は高パフォーマンス アプリケーションのデータベース構成によって異なり、32 から 128 まで変化します) が、ブロック サイズ 16K バイトのバッキング ストアからランダムな方法でデータを読み取ります。これらの読み取りは、バッキング ストアからのデータを要求するデータベース クエリに関連しています。読み取りが処理されると、それらは自動的にバッファー プールにキャッシュされます。バッファ プールがいっぱいになると、InnoDB は LRU (最も最近使用されていない) ポリシーを使用して古いページを削除し、新しいデータ用のスペースを確保します。

データベースへの書き込みは、まずトランザクション ログとバッファ プールに送られます。トランザクション ログは、書き込みトランザクションごとに更新される、順次書き込まれるリング バッファです。 MySQL の構成に応じて、この更新により即座にディスクへの書き込みが行われる場合もあれば、最終的にファイル システムによってディスクにフラッシュされるバッファとして RAM に一時的に保持される場合もあります。このログ バッファのサイズはさまざまですが、通常は約 256MB です。 ACID 準拠の推奨設定では、データベースのコミットごとにログの書き込みがディスクにヒットする必要があります。これらの書き込みの長さは 4K です。

ログは、以前のデータと新しいデータの間の差分が書き込まれる「生理学的」書き込みのみを実行します。元のデータの場合、InnoDB は RAM 内のバッファ プールに書き込みますが、これも非同期で空にする必要があります。データをファイル システムに書き戻すプロセスは構成可能であり、バックグラウンドで実行されます。書き込みも16Kです。実際の書き込みは二重書き込みであり、エンジンは最初に二重書き込みバッファーと呼ばれる中間の場所にデータを書き込みます。次に、エンジンはそのデータをファイル システム内の最終的な場所にコピーします。これは、停電やその他の致命的なイベントにより、16KB データベース ページの一部がディスクに書き込まれる「ページ切れ」問題を回避するために必要です。

Sysbench ベンチマークの起源

Micron社とSSDのテストと測定のために実際のMySQLアプリケーション環境をどのようにシミュレートしているかについて何度か話し合った後、Sysbenchテスト環境をラボに導入しました。Micron社は、合成ストレージベンチマークでは特定のアプリケーションワークロード下でのドライブの動作を完全に把握することはほとんどできないことに気づき、Sysbenchを中心としたテスト手法を開発しました。Sysbenchテストにより、Micron社はFacebook、Craigslist、Booking.comなどのアプリケーションで広く使用されている標準的なMySQLデータベースワークロードを最も忠実に再現する環境をシミュレートできます。

私たちは、この記事の共著者となった Moussa Ba と特に緊密に連携しました。 Moussa は、Micron の PCIe 開発チームのソフトウェア エンジニアであり、高性能 IO デバイス向けのアプリケーションおよびシステム ソフトウェアの最適化などの仕事を行っています。

Sysbench OLTP ベンチマーク

Sysbench は、オンライン トランザクション処理 (OLTP) テスト プロファイルを含むシステム パフォーマンス ベンチマークです。 OLTP テストは OLTP テストの近似ではなく、CentOS 環境で MySQL のインスタンスに対してトランザクション クエリを実行する、データベースに基づいた真のベンチマークです。

ベンチマークを設定する最初のステップは、データベース自体を作成することです。これは、データベース内のテーブルの数とテーブルごとの行数を指定することによって行われます。私たちのテストでは、それぞれ 100 万行を持つ 10 のテーブルを定義しました。その結果、1 億エントリのデータベースが作成されました。このデータベースは 260GB でした。

Sysbench には、データベースの読み取りと書き込みを行うデフォルト モードと読み取り専用モードの 5 つの動作モードがあります。デフォルトの R/W モードでは、2 つの SELECT クエリ、1 つの UPDATE クエリ、1 つの DELETE クエリ、および 75 つの INSERT クエリ タイプが実行されます。 IO カウントを見ると、読み取り/書き込み比率は読み取りが約 25%、書き込みが XNUMX% であることがわかります。

Sysbench テスト環境

StorageReviewエンタープライズテストラボでは、スタンドアロンサーバーを使用してSysbench OLTPベンチマークによるストレージソリューションのテストを実施しています。現在、Dellの市販PowerEdge R730を使用して、現実的なパフォーマンスと優れた価格性能比の両方を実証しています。R730をさまざまなストレージ製品に接続するには、ストレージアダプタまたはネットワークインターフェイスのみを変更します。PowerEdge R730はサードパーティ製デバイスとの優れた互換性が実証されており、この多様なテスト環境に最適なプラットフォームとなっています。また、R730はIntelの強力なHaswellクラスのアーキテクチャを活用しており、幅広いストレージ製品に適切な負荷をかけ、パフォーマンスの可能性を最大限に引き出すための演算能力を提供します。

第 1 世代の 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ミクロン RealSSD P400e SSD (LSI 9207-8i経由) ブートドライブ
  • 960GB Micron M500 (9207-8i 経由) 構築済みデータベース ストレージ
  • CentOS 6.3 64 ビット
  • Percona XtraDB 5.5.30-rel30.1
    • データベーステーブル: 100
    • データベースのサイズ: 10,000,000
    • データベーススレッド: 32
    • RAMバッファ: 24GB

第 2 世代 Sysbench ベンチマーク環境

Dell PowerEdge R730 – SATA/SAS/PCIe テスト プラットフォーム

  • デュアル Intel E5-2690 v3 CPU(2.6 GHz、12 コア、30 MB キャッシュ)
  • 256GB RAM (16GB x 16 DDR4、CPU あたり 128GB)
  • 100GB ブート SSD、480GB データベース ストレージ SSD
  • 2 x Mellanox ConnectX-3 InfiniBand アダプター
  • 2 x Emulex 16GB デュアルポート FC HBA
  • 2 x Emulex 10GbE デュアルポート NIC
  • CentOS 6.6 64 ビット
  • Percona XtraDB 5.5.30-rel30.1
    • データベーステーブル: 100
    • データベースのサイズ: 10,000,000
    • データベーススレッド: 32
    • RAMバッファ: 24GB

Dell PowerEdge R730 仮想化 Sysbench 4 ノード クラスター

  • クラスター内の 5 GHz 用の 2690 つの Intel E3-249 v2.6 CPU (ノードごとに 12 つ、30 GHz、XNUMX コア、XNUMX MB キャッシュ)
  • 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 ベンチマークを使用して、幅広いストレージ ソリューションをテストしています。テストの対象となるには、ストレージ デバイスが 260 GB を超える使用可能な容量を備え、ストレスの多い企業条件下での動作に対応している必要があります。 SAS、SATA、PCIe SSD などのローカルに接続されたストレージ デバイスは、4 つの Sysbench インスタンスを備えたベアメタル サーバーでテストされます。新しい SAN およびハイパーコンバージド プラットフォームでは、8、12、16、または XNUMX 個の VM が同時に実行され、複数のワークロードがそれぞれの VM 上で同時にどの程度適切に動作するかを示します。このテスト方法は、新しいハイパーコンバージド システムと従来の SAN ストレージ アレイ間のパフォーマンスの比較をわかりやすくするのに役立ちます。

ハイパーコンバージド/SAN 仮想化 Sysbench のパフォーマンス結果 (16 VM の合計)

デバイス 32 スレッド集約 TPS 平均応答時間 (ミリ秒) 99 パーセンタイル レイテンシー (ミリ秒)
X-IO ISE860
(4) Dell R730、X-IO ISE 860 AFA
(2) 10TB ボリューム
6625  80  418

ハイパーコンバージド/SAN 仮想化 Sysbench のパフォーマンス結果 (12 VM の合計)

デバイス 32 スレッド集約 TPS 平均応答時間 (ミリ秒) 99 パーセンタイル レイテンシー (ミリ秒)
X-IO ISE860
(4) Dell R730、X-IO ISE 860 AFA
(2) 10TB ボリューム
7160  54  177

ハイパーコンバージド/SAN 仮想化 Sysbench のパフォーマンス結果 (8 VM の合計)

デバイス 32 スレッド集約 TPS 平均応答時間 (ミリ秒) 99 パーセンタイル レイテンシー (ミリ秒)
X-IO ISE860
(4) Dell R730、X-IO ISE 860 AFA
(2) 10TB ボリューム
6568  39  83
VMware VSAN (ESXi 6.0)
(4) Dell R730xd、80TB HDD 1.2 台、16GB SSD 800 台
4259  60  131

ハイパーコンバージド/SAN 仮想化 Sysbench のパフォーマンス結果 (4 VM 合計)

デバイス 32 スレッド集約 TPS 平均応答時間 (ミリ秒) 99 パーセンタイル レイテンシー (ミリ秒) ピーク遅延 (ミリ秒)
DotHill Ultra48 ハイブリッド
(4) Dell R730、DotHill Ultra48 ハイブリッド
(2) 14 ディスク RAID1 プール、40 台の 1.8TB HDD、8 台の 400GB SSD
4645  28  51  676
X-IO ISE860
(4) Dell R730、X-IO ISE 860 AFA
(2) 10TB ボリューム
4424  29  57  983
VMware VSAN (ESXi 6.0)
(4) Dell R730xd、80TB HDD 1.2 台、16GB SSD 800 台
2830  45  94  480
Nutanix NX-8150 (ESXi 6.0)
(4) NX-8150、80TB HDD 1 台、16GB SSD 800 台
RAID0 x 4 vDisk データベース ボリューム
2390  54  173  4784
Nutanix 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×1
2734.69  11.7  19.84
ファーウェイ ES3000 1.2TB
MLC PCIe SSD×1
2615.12  12.23  21.80
フュージョン ioDrive2 デュオ 2.4TB
MLC PCIe SSD×1
2521.06  12.69  23.92
マイクロン P320h 700GB
SLC PCIe SSD×1
2443.56  13.09  22.45
ミクロン P420m 1.4TB
MLC PCIe SSD×1
2361.29  13.55  25.84
フュージョン ioDrive2 1.2TB
MLC PCIe SSD×1
2354.06  13.59  29.35
ビリデント FlashMAX II 2.2TB
MLC PCIe SSD×1
2278.11  14.04  26.04
LSI ナイトロワープドライブ 800GB
MLC PCIe SSD×1
1977.67  16.18  39.94
LSI ナイトロワープドライブ 400GB
MLC PCIe SSD×1
1903.14  16.81  39.30

個々の SAS / SATA SSD の結果

デバイス 32 スレッドの平均 TPS 平均応答時間 99 パーセンタイル レイテンシ
東芝 HK3R2 960GB
MLC SATA×1
1673.23 19.12 49.65
サンディスク クラウドスピード エコ 960GB
cMLC SATA×1
1556.99 20.55 49.05
インテル S3700 800GB
eMLC SATA×1
1488.71  21.49  40
東芝 PX02SM 400GB
eMLC SAS(6Gb/秒)×1
1487.03 21.52 62.02
スマートオプティマス 400GB
eMLC SAS×1
1477.1 21.66 52.69
OCZ タロス 2C 480GB
MLC SAS×1
1438.7 22.24 47.32
OCZ イントレピッド 3600 400GB
eMLC SAS×1
1335.3 23.96 48.42
OCZ タロス 2 R 400GB
eMLC SAS×1
1421.15 22.51 45.06
サンディスクエクストリーム480GB
MLC SATA×1
1303.48 24.55 53.56
STEC s842 800GB
eMLC SAS×1
1293.56  24.74  67.20
インテル S3500 512GB
eMLC SATA×1
1,287.65 24.85 64.15
インテル S3500 480GB
eMLC SATA×1
1241.59  25.77  54.27
シーゲイト 600 プロ 400GB
eMLC SATA×1
1198.2  26.7  62.69
日立 SSD400S.B 400GB
SLC SAS×1
1191.47  26.85  47.87
OCZ ベクター 512GB
MLC SATA×1
1130.03  28.32  62.67
サンディスク エクストリーム II 480GB
MLC SATA×1
981.34  32.61  102.58
日立SSD400M
eMLC SAS×1
878.9  36.41  68.03
東芝 eSSD
SLC SAS×1
758.41  42.19  140.59
マイクロン M500 480GB
MLC SATA×1
668.6  47.86  461.80