...

評価用ガイドブック

by user

on
Category: Documents
2

views

Report

Comments

Transcript

評価用ガイドブック
Adaptec MaxIQ™ SSD キャッシュ
パフォーマンス キットと
アプリケーションパフォーマンス
加速
最小のギガバイト単価でアプリケーションの
パフォーマンスを劇的に加速する
評価用ガイドブック
評価用ガイド
目次
1.
はじめに
3
1.1.
このテキストの目的は?
4
1.2.
このテキストが目的としないことは?
4
1.3.
このテキストの利用方法は?
5
MaxIQ の利点
6
2.1.
どのようなメリットを得ることができるか?
6
2.2.
どれぐらいのメリットを得られるのか? — 5 つの質問
7
2.3.
ボトルネックはどこにある?
8
2.4.
どのようなデータアクセスが私のアプリケーションで行われているのか?
8
2.5.
私のデータにはホットスポットがありますか?
10
3. MaxIQ をベンチマークする方法とその理由
12
5 つの I/O パラメータ
12
MaxIQ のベンチマークテスト — 基本
14
4.1.
システム構成
14
4.2.
"標準的な"I/O パフォーマンスパラメータを入手する
15
4.3.
"ホットスポットデータポイント"からランダムリードを入手する
15
4.4.
テスト時間はどれぐらい?
15
4.5.
テスト時間を短縮できるか?
17
MaxIQ のベンチマークテスト – 詳細
18
Iometer(アイオーメータ)
18
2.
3.
3.1.
4.
5.
5.1.
5.1.1.
Iometer の段階的な説明
18
5.1.2.
Linux 上で Iometer を走らせる
22
5.2.
5.2.1.
5.3.
5.3.1.
fio(エフアイオー)
24
fio の段階的な説明
24
Sysbench(シスベンチ)
27
Sysbench の段階的な説明
28
5.4.
bonnie++(ボニープラスプラス)
30
5.5.
iozone(アイオーゾーン)
30
6.
ベンチマークテスト結果を理解する
31
7.
結論
32
2/32 ページ
評価用ガイド
1. はじめに
Intel 社と共同で開発したアダプテック MaxIQ™ SSD キャッシュパフォーマンスソリューションは、インテ
®
ル 製 SSD (ソリッドステートドライブ)と Adaptec MaxIQ SSD キャッシングソフトウェアを組み合わせて、
SSD とハードディスク(HDD)を一つのストレージプールにシームレスに組み込んだハイパフォーマンス
ハイブリッドアレイ(HPHA)を作
サービスとして
成します。MaxIQ は、お手持ち
のソフトウェア
のアプリケーションの変更なしに、
ISP、WebServer、
Web 2.0
HDD のみのアレイと比べて最
アプリケーション
大 5 倍の I/O パフォーマンスと
最大 50%の投資と運用コストの
削減を可能にします。
MaxIQ は企業の IT と、クラウド
コンピューティングや SaaS(ソフ
トウェア-アズ-ア-サービス)を提
供する大規模データセンタの両
方において I/O 負荷が集中しレ
ーテンシ(待ち時間)に神経質な
アプリケーションに幅広く対応し
ます。
プライベート及び
パブリッククラウド
ファイル
サーバ
MaxIQ は、アプリケーション の
処理方法を理解しユーザの介
入や管理無く、アプリケーション
がどのように動作し、データを適
当な場所に保存するかを決める、
特許取得済みの「ラーンニング"
アルゴリズムが組み込まれています。
データベース、eCommerce、統計
その結果として、前例のないパフォーマンスをシームレスにストレージに組み込みます。
アプリケーションによって異なる応答をするため、一般的な MaxIQ のメリットを説明することが難しいの
ですが、以下の表からわかるように、テスト結果は異なるタイプの負荷においてもパフォーマンス改善
が見られたことを示しております
3/32 ページ
評価用ガイド
1.1.
このテキストの目的は?
このテキストは、MaxIQ がどのように動作し、いつアプリケーションにとってメリットがあり、それをどの
ようにテストするかを理解するのに役立ちます
もちろん、最善のテスト方法は、お使いのアプリケーション上で MaxIQ™ ハイパフォーマンスハイブリッ
ドアレイを稼働して、その結果を計測することです。
別なテスト方法としては、合成のベンチマークを使用し、お使いのシステムとアプリケーション全体の動
作がどうなるかその結論を推測してみることです。
しかし、前に述べたように — MaxIQ はアプリケーションの動作を学習し、ストレージへのアクセスパタ
ーンを取り込んで動作することを思い出してください。成ベンチマークでは決してこれをシミュレートする
ことはありません。。それらソフトの目的は、I/O レートやトランザクションレートのようなストレージの特
定のパラメータを特徴づけることであり、結果として伝統的な I/O ベンチマークが MaxIQ™を評価する
のに最悪の方法の一つになります。
この警告を覚えておく必要はありますが、ベンチマークを注意深く実行すれば MaxIQ を理解すること
は可能で、このテキストではそのプロセスについて説明します。
どのようなテストをする場合でも、実行前に行わなければならない MaxIQ ソフトウェアと SSD の設定プ
ロセスについても触れます。
1.2.
このテキストが目的としないことは?
このテキストでは、基本的な I/O または標準的なハードディスクと MaxIQ コントローラカードを使用して
RAID アレイを設定するプロセスについては説明しません。また、少なくとも、BIOS、arcconf CLI、
4/32 ページ
評価用ガイド
Adaptec Storage Manager GUI(グラフィカルユーザインタフェイス)のアダプテックの設定ツールのい
ずれかについて基本的な知識を持っていることを前提としています。
1.3.
このテキストの利用方法は?
このテキストには、MaxIQ を評価するために使用するいろいろなツールの使用方法についての多くの
情報が含まれています。
技術レベルや興味の背景により異なりますが、以下を推薦します。
•
•
•
•
MaxIQ が何をどのように行い、お使いのアプリケーションで役立つかどうかを知ることに興味があ
れ場合は、第2 項を参照下さい。
第3 項では、実際の評価プロセスを説明し、"実際"のアプリケーションで MaxIQ を実行した時と、
合成ベンチマークを実行した場合を比較します。
第4 項では、MaxIQ に対して合成ベンチマークを実行する際に共通する一般的なことについて説
明します。基本的には、第4 項を十分に読むことをお勧めします。
第5 項では、一般に使用される様々なベンチマークの詳細について説明します。あなたが選択した
ベンチマークに関連する項目を読むだけで十分です。
5/32 ページ
評価用ガイド
2. MaxIQ の利点
2.1.
どのようなメリットを得ることができるか?
MaxIQ を使用することによって得られるメリットについて考え、特定の問題について考えます。
例えば email サーバでは数ヶ月または数年に渡って価値あるデータを保持するために十分な容量が
必要である一方、最新のデータへ素早いアクセスが必要なように、ビジネス上 1 つのシステムで容量と
パフォーマンスの両方が必要だと仮定します。
簡単にするため、8TB のデータを保管し、かつこの容量に対して均一に最大の IOPS (秒当たり I/O 実
行数)を実現したいとします。
この問題を解決できそうな方法はたくさんあります:
•
•
•
•
•
必要な容量と IOPS に合うように様々な RAID 構成を組み合わせた、SATA または SAS
のハードディスクアレイ
1
SATA または SAS ハードディスクのショートストローク アレイ
多くの SSD だけで構築されたアレイ
マザーボードの PCIe スロットに据え付けて、全体のストレージソリューションを置き換える
よう設計されたオンボードのフラッシュメモリを有するアクセラレータカード
アダプテックのハイパフォーマンスハイブリッドアレイ技術。
次の図は、これらのソリューションの特性を表にしてまとめたものです。MaxIQ が GB 当たり最小のコ
ストで、コスト当たり最大のパフォーマンスを提供することを示しています。
1
ショートストロークとは、アプリケーションにハードディスクの最も外側のトラックのみに人工的にアクセスさせるテクニックのことで
す。これが効率的なハードディスクの有効な容量を犠牲にして、パフォーマンスの増加をもたらします。
6/32 ページ
評価用ガイド
2.2.
どれぐらいのメリットを得られるのか? — 5 つの質問
MaxIQ があなたにとってどれぐらい役に立つかを理解する為には、まず一連の重要な質問について熟
慮する必要があります:
• 私のアプリケーションにとって、本当に I/O パフォーマンスが重要か?
• 私のソリューションは、より高い I/O パフォーマンスがあれば更にバランスよくなるのか?
• どのようなデータアクセスが私のアプリケーションで使用されているのか MaxIQ はそれを
最適化できるか?
• 私のデータは、MaxIQ が効果を発揮する"ホットスポット"を有しているか?
• ホットスポットの大きさは?
これらのそれぞれについて順番に説明します。
7/32 ページ
評価用ガイド
2.3.
ボトルネックはどこにある?
過去 10 年にわたり、プロセッサのスピードとネットワークのスピードは劇的に増大しましたが、一般的
なハードディスクドライブのパフォーマンスはそれほど大きな改善はありませんでした。その結果、多く
のアプリケーションにとって I/O 処理が第一のボトルネックとなってきました。
MaxIQ は、ストレージソリューションにとって同じ容量とこれまでどおりの運用方法を提供しつつ、非常
に低いレイテンシーとより高い IOPS の性能を提供します。
その上で、最初の質問はこれが概念上、あなたにとって役に立つかどうかです。
質問 1:
I/O 要求のレイテンシを減らすことができれば、私のアプリケーションのパフォー
マンスは全体として改善されるか?
アプリケーションが接続された CPU やネットワークのパフォーマンスによって制限されている場合、
MaxIQ の採用はおそらく効果がないでしょう – 本当のボトルネックの改善とはなりません。
しかしこの論理にはしばしば盲点があります。
あなたが既存のシステムを構築したときに、I/O 処理が最も弱い部分であると考えて、CPU、メモリ、ネ
ットワークは利用できる中で最速ではないものを選択していたとします。これは、"バランス"という名前
でよく行われることで、例え最高のハードディスクを使用してもボトルネックになることがわかっている場
合には、コスト削減のために、他の部分にはミドルクラス、またはよりローエンドの部品を使用したくなる
ことでしょう。
そのような構成に単に MaxIQ を採用しても、ボトルネックだった I/O 処理の代わりに今度は CPU、メ
モリ、ネットワークが危機的なボトルネックに置き換わるだけなので、改善効果を見ることができません。
これが 2 つ目の疑問へと繋がります:
質問 2:
I/O パフォーマンスの向上でアプリケーションのパフォーマンスを改善できるよう
に現在のソリューションを再構築、再配分できるか?
MaxIQ を採用するのと同時に CPU、メモリ、ネットワークをアップグレードすることを検討して下さい。
多くの場合、CPU やメモリのアップグレードは比較的安価で、ネットワークはしばしば十分に活用され
ていません。
2.4.
どのようなデータアクセスが私のアプリケーションで行われているのか?
I/O の改善がお使いのアプリケーションに効果があると確信したら、次にアプリケーションがどのような
データアクセスを行うのかを考える必要があります。
全てのアプリケーションはそれぞれ固有の I/O プロファイルを持っているので、"一つで全てにあてはま
る"ようなストレージソリューションの実現を難しくしています。銀行業務や航空会社の予約システム等、
トランザクションデータベースアプリケーションでは、おそらく高い I/O レートのリードとランダムに位置す
る小さなデータブロックへのライトがあると思われます。ビデオサーバは、一般にライトよりも大量のリー
ドを行い、大規模でシーケンシャルなサイズの I/O を実行します。ウェブサーバでは、でランダムに位置
する小さなデータブロックのリードを行うのがほとんどです。
8/32 ページ
評価用ガイド
たとえそのカテゴリー内であっても、一般化するのは難しいのです。– 例えば SQL データベースはいろ
いろな方法で使用されており、銀行業務システムや e-Commerce カタログでは共に SQL データベー
スを使用していますが、I/O プロファイルは完全に異なるでしょう。
さらに困難なのは、データアクセスパターンがしばしば時間の経過とともに変化するということです。例
えば、電子メールサーバで、最も頻繁にアクセスされるデータは、"今日"送信されたものです。"昨日"の
データは重要性が低くなり、"先週"のデータは殆どアクセスされなくなります。この考察も一定ではあり
ません。今日重要なことが明日にはより重要ではなくなり、新しいデータが"ホット(話題)"になるでしょう。
I/O コントローラがこうした様々な I/O プロファイルによって引き起こされる問題を解決しようとする方法
の一つに、プリフェッチ(事前読み込み)と呼ばれるプロセスによってディスクからシーケンシャルにデー
タリードを行ってリードを加速する DRAM キャッシングがあります。このプロセスでは、アプリケーション
がデータの 1 部分を要求すると、コントローラは要求されたデータだけではなく、ディスク上のその直後
にあるデータブロックまでも捉えてきます。アプリケーションが次のブロックを続けて問い合わせた時に、
コントローラは既に(遅い)ドライブから読み込み済みで DRAM キャッシュに保存したデータをアプリケ
ーションにすぐに送信することができるという考えです。
ディスクに書き込まれたデータもまた最適化可能です。ライトコマンドは、ランダムであろうがシーケンシ
ャルであろうがライトバックキャッシングと呼ばれるプロセスを通して扱われます。このプロセスでは、ハ
ードディスクに実際に書き込むのに最適な時間まで、DRAM キャッシュ内にデータを保存します。
DRAM キャッシングであることが理由の一部ですが、以下のように、4 つのパラメータを使用して I/O プ
ロファイルを説明するのが伝統的です。
• 大きなサイズのシーケンシャルライトの I/O レート
• 大きなサイズのシーケンシャルリードの I/O レート
• 小さなサイズのランダムライトの I/O レート
• 小さなサイズのランダムリードの I/O レート
最初の 3 つは、コントローラ上の DRAM キャッシング技術を使用することでとてもよく最適化可能です。
メモリ技術は順調に改善されてきたので、それに会わせて I/O パフォーマンスの改善幅は時間と共に
大きくなっています。
4 番目については、これまで伝統的には、その時利用可能な最速のハードディスクを買うことで対応し
てきました。しかし、最初に説明したように、システム内のすべてのコンポーネントの中で、数年来、ハ
ードディスクのパフォーマンス改善度合いが最も遅いのです。
SSD は、この 4 番目のカテゴリに新しいソリューションを提供します。特にランダムにリードされるデー
タにおいて、非常に高いパフォーマンスととても低いレイテンシを提供します。また電力消費が少なく、
冷却装置も殆ど必要としません。DRAM キャッシングとの組み合わせることで従来のハードディスクと
SSD の組み合わせは、異なる I/O プロファイルがもたらすすべての課題に解決策をもたらすことができ
るように思われます。
これが 3 つ目の疑問へと繋がります:
質問 3:
使用しているアプリケーションの I/O プロファイルはどれぐらいランダムなのか?
また、リードとライトの割合はどれくらいか?
一般的に言って、オペレーティングシステムとファイルシステムの動きを考えれば、この質問への答え
は、常に"ランダム"です。たとえアプリケーションがシーケンシャルにデータをライトしていると考えても、
オペレーティングシステムやファイルシステム、他のアプリケーションも同時にストレージサブシステム
を使おうと競合するため、結果としてブロックはいつもバラバラに書き込まれることになります。
9/32 ページ
評価用ガイド
これは、殆どすべてのアプリケーションで MaxIQ を使用する何らかのメリットがあると思われることを意
味しますが、しかし SSD の効果はリード時に特にめざましいので、使用するアプリケーションで実行さ
れるリードのパーセンテージが高ければ高いほど MaxIQ 使用のメリットも大きくなります。
2.5.
私のデータにはホットスポットがありますか?
最後に触れるトピックは、今日の SSD における 2 つの欠点に関することです。
•
•
エンタープライズ向け SSD は、SATA ハードディスクと比べ GB 当たりコストが約 200 倍。
SSD は、一般的な HDD と比べて、ドライブ当たりの容量が遙かに少ない。
パフォーマンスだけであれば魅力的に見えたとしても、既存のすべてのハードディスクを同じ容量の
SSD と交換するという考えは極端な例を除き、現実的ではありません。
この問題に対応するため、MaxIQ では SATA または SAS のハードディスクと、最大 4 台までの SSD
で構成する"ハイパフォーマンスハイブリッドアレイ"のコンセプトを導入しました。
通常行うようにアプリケーションの容量とデータ保護の特徴にあう SATA または SAS のハードディスク
を選択し、SSD は"MaxIQ SSD キャッシュプール"をつくるために独立して使用されます。価格と容量で
説明したように、SSD キャッシュプールの容量は一般的にハードディスクより少ないので、MaxIQ キャ
ッシングソフトウェアはリアルタイムでアプリケーションがアクセスするデータを分析し、SSD に"ホット
(頻繁にアクセスされる)"データのコピーを作成してこの相違点を補います。
SSD は理想的にはランダムデータブロックを読むのに最適なので、これが構成の最適化を完成させま
す。コントローラ上の DRAM キャッシングはシーケンシャルの I/O オペレーションを最適化させ、SSD
は SSD プールにコピーされたいわゆる"ホットブロック"へのランダム I/O のために最適化されたアクセ
スを提供します。
お使いのアプリケーションの一番ホットなデータがすべて SSD キャッシュに保存された時に、この設定
が最高の効果を発揮します。
もしお使いのアプリケーションにホットスポットがない場合、 — 殆どまたはすべてにおいて均一に分散
されたデータにアクセスする場合 — SSD キャッシュプールにはハードディスクドライブより少ない容量
しかないため、結局多くのアクセスが SATA または SAS ハードディスクから継続されることになり、
SSD を導入するメリットが遙かに低くなります。
そこで 4 番目の質問は:
質問 4:
私のアプリケーションはホットスポットにアクセスするデータなのか?
この質問についての答えはしばしば"はい"です。
いくつかの場合、ホットスポットが明らかです — 特定のデータが常に重要な場合。しかしながら、よりこ
の条件にあうダイナミックなシチュエーションがあります。既に引用された電子メールの例では、最も新
しく到着したデータへと時間と供に移動する"ホットスポット"があります。
パターンに合うその他の例には、
10/32 ページ
評価用ガイド
•
•
•
•
電子メールの例のように、 — "今日"語られたことは先週のことより多くの関心を集める —
といった時間ベースのパターンを示す傾向がある、Web 2.0 アプリケーション。
他の製品よりはるかに頻繁にアクセスされるような"ホットな製品"を掲載する傾向がある、
sCommerce のサイト。
もっとも最近に作成されたデータが古い資料よりはるかに頻繁に使用されるというような時
間ベースのアクセス傾向のある、ファイルサーバに保存されている構造化されていないデ
ータ。
他のテーブルよりより頻繁にアクセスされるようなデータベースの特定の部分(例えば索引
テーブル)。
そのため、お使いのアプリケーションにホットスポットのデータがあるかがわかると 5 番目の質問に繋
がります。
質問 5:
使用しているアプリケーションのホットスポットに対応するためにどのぐらいの
SSD の容量が必要か?
理想的にはハイパフォーマンスハイブリッドアレイの SSD の総容量はお使いのアプリケーションのホッ
トスポットと一致することが望ましいのです。しかし、より多い SSD の容量を準備すると、少ないメリット
のわりには余分なコストとなりやすく、逆に極端に少ない SSD 容量では、パフォーマンスの最適化が
不十分な結果となります。
11/32 ページ
評価用ガイド
3. 3. MaxIQ をベンチマークする方法とその理由
新しい技術を調べるときには、可能なパフォーマンス改善度を評価し、新しい部品と既存のアーキテク
チャの組み合わせによる潜在的な副作用や相互作用についても知りたいはずです。しかし、うまくいく
かどうかを見るために、新しい技術を"ちょっと入れてみる"ようなことができない、ミッションクリティカル
なアプリケーションでは、こういうことするのは難しかったりします。
この対策としては、新しいハードディスクや I/O コントローラのパフォーマンスをテストする単純な I/O ベ
ンチマークのような、部品レベルまたはサブシステムレベルの"ベンチマーク"を実行するのが一般的で
す。
MaxIQ とハイパフォーマンスハイブリッドアレイの基本的な前提は、データにホットスポットがあり、"より
頻度の低い(cold)"データへのアクセスはもっと遅くてもいい代わりに、"ホット"データへは SSD のデー
タレートで I/O 処理することで充分なメリットを得ることができることです。殆どすべてのアプリケーション
でそのようなアクセスパターンがあります。
しかしながら、合成 I/O ベンチマークは一般的にホットスポットを持っていません!
利用可能な殆どのベンチマークでは、データに"均等に"アクセスします。シーケンシャル I/O をテストす
るとき、システムの一部のセット(一般にデータの最初)で開始し、テストが終わるまで単純にリードまた
はライトをシーケンシャルに行います。ランダム I/O をテストするときは、ストレージ内のランダムな場所
から取り出し、ストレージが占めるスペース全体の中で均一にリードとライトを分配して、リードとライト
を行います。
これらのストラテジ — はいずれも、"ホットスポット"に似ていると言うことはできません
その結果、標準的な既存の I/O ベンチマークを MaxIQ システムで実行すると、おそらく MaxIQ のメリッ
トを見つけることができないでしょう。
ハイパフォーマンスハイブリッドアレイのメリットを確認するには、以下の 2 点のいずれかを実行します。
• 実際のアプリケーションを実行する
• 合成ベンチマークを修正した方法で実行する
MaxIQ™技術の実際の動作をみて、そのメリットについての正確に評価できるので、理想的には、前
者を行うべきです。
それができないとすれば、合成ベンチマークを実行してみることに頼るしかありません。
3.1.
5 つの I/O パラメータ
合成ベンチマークがそのように動作する理由の一つは、これらが実際のアプリケーションの動作をモデ
ルにしようとしている訳ではないことがあげられます。その代わりに、これらはシーケンシャルデータレ
ートや I/O トランザクションレートのような、テスト中の I/O サブシステムのローレベルの動作特徴を出
すことを目的にしています。
12/32 ページ
評価用ガイド
MaxIQ 評価の際にこの方法を試すには、以下の 5 つの基本的な I/O パラメータを引き出すことを目的
に、合成ベンチマークを修正して実行することを提案します。
1. ストリーミング(またはシーケンシャル)ライトデータレート
2. ストリーミング(またはシーケンシャル)リードデータレート
3. ランダムライトデータレート
4. より頻度の低いデータのランダムリードデータレート
5. ホットスポットデータのランダムリードデータレート
これらのパラメータのうち、最初の 4 点は、殆どの合成ベンチマークがそのために設計された"伝統的
な"I/O 特性のパラメータです。このセットに、5 番目 — アプリケーションの"ホットスポット"からのデータ
リードに対するランダム I/O レート、を追加しました。これは、お使いのアプリケーションのホットスポット
と I/O プロファイルの評価とともに、MaxIQ によって得られるパフォーマンス拡張を見積もることを可能
にする新しい変数です。
以下の項では、実行可能な一般的な方法と、具体的な例について説明します。
13/32 ページ
評価用ガイド
4. MaxIQ のベンチマークテスト — 基本
4.1.
システム構成
どんなベンチマークであっても稼働させるときには、可能な限りの変数をのぞいた再現可能な結果を得
ることが重要です。重要なステップの一つは、常に選択したオペレーティングシステムを新たにインスト
ールしてから始めることです。更に、ブータブル OS をいれたハードディスクドライブとベンチマークする
”ライブ“データからなるハードディスクを個別に準備することをお勧めします。そうすることにより、合成
ベンチマークは、ライブデータ — オペレーティングシステムや稼働中のユーティリティによって作成され
て、区別されたハードディスクへ送られる I/O データ — の特性だけをテストすることができ、ベンチマー
クの結果を"クリーン"な結果にします。
MaxIQ I/O システムでこれを実施する最も簡単な方法は、オペレーティングシステムを MaxIQ コントロ
ーラに接続していないハードディスクにインストールすることです。。ほとんどのシステムはマザーボー
ドにいくつか SATA コントローラを搭載しているので、1 台のハードディスクをこれらのいずれかに接続
してそこにオペレーティングシステムをインストールすることを提案します。テスト下にあるストレージと
ハイパフォーマンスハイブリッドアレイに使用する SSD は、下記の図ように MaxIQ コントローラに接続
します。
マザーボードコネクタ
に接続された SATA
ドライブ
テストドライブと SSD を
MaxIQ™ HBA に接続する
オペレーティングシステムと
スワップスペースを
ここにインストールする
14/32 ページ
評価用ガイド
4.2.
"標準的な"I/O パフォーマンスパラメータを入手する
MaxIQ は"でしゃばらない"よう設計されておりますので、他の I/O システムをテストするときと同じような
セットアップすれば、4つの"伝統的な"ローレベル I/O パラメータについてのベンチマーク結果を得るこ
とができるでしょう。
4.3.
"ホットスポットデータポイント"からランダムリードを入手する
テスト上でトリッキーな部分は、MaxIQ がアプリケーション上のホットスポットをどのように処理するかが
わかるデータをどうやって入手するかです。
これまで述べてきたように、ほとんどの合成ベンチマークはデータへ均一にアクセスするため、MaxIQ
の価値を発揮する場合とは全く反対の動きとなります。
しかしデータセットのサイズをわざと MaxIQ SSD キャッシュプールの総サイズよ
るも小さく作り、ランダム I/O テストを実行することでホットスポットでの動作特徴を得る
ことができます。
例えば、1TB のハイパフォーマンスハイブリッドアレイがあり、MaxIQ SSD キャッシュプールに2台の
32GB SSD をいれてテストする場合、64GB (2 x 32GB).以下の総ストレージサイズで合成ベンチマー
クを稼動させるべきです。
これは非常に重要です。
データボリュームが小さいときは、ほとんどの合成ベンチマークでデータブロックの限られたレンジでの
みプログラムが動作すると言えるでしょう。ここで引用された例では、ベンチマークは 1TB のボリューム
のうち最初の 64GB に対してのみ I/O を実行するでしょう。これがホットスポットの場合をシミュレーショ
ンしています。 — 例えば、すべてのデータアクセスがホットスポット内だけ行われそれ以外の部分にア
クセスが無い状況。MaxIQ アルゴリズムはデータパターンを解析する機会を得て、キャッシュアクション
を実行し、SSD のメリットを発揮します。
明らかに、これは特別なケースです。しかし、合成ベンチマークの性質からするとこれは一貫性があり
ます。 — 目的は、理想的な負荷においてシステムの特性を分離することです。そして実際のあなたの
アプリケーション上でのパフォーマンスを見積もり、推定することにあります。これまでの伝統的なテスト
で頻度の低いデータ(コールドデータ)にアクセスしたり、ライトする時に、I/O システムがどう反応するか
がわかる一方で、この方法でテストすることによって、アプリケーションのホットスポットからデータをリー
ドした時にシステムがどのように反応するかがわかります。
4.4.
テスト時間はどれぐらい?
伝統的な I/O コンポーネントやサブシステムをテストする時は、それほど長時間は行わないでしょう。し
かし、MaxIQ の場合、どのデータがハードディスク上にあるべきか、どのデータを SSD 上におけばメリ
ットが得られるかを見つけるかは、特許取得済みの"ラーンドパス(学習した軌道)"アルゴリズム次第で
す。このアルゴリズムが学習してインテリジェンスになるまでは時間を必要とするため、それに合わせて
テスト時間を計画する必要があります。
15/32 ページ
評価用ガイド
残念ながら、MaxIQ アルゴリズムがデータの場所を最適化するためにデータアクセスパターンを学習
するのに必要なテスト時間がどのぐらいなのか、一般的な数字を述べるのは難しいのです。
例えば、Iometer のようなローレベルのベンチマークで全てのオペレーティングシステムインターフェー
スをバイパスするモードの場合では、5分ぐらいですぐに学習する傾向があります。しかし本物のアプリ
ケーションや、ファイルシステムを使用するベンチマーク、オペレーティングシステムキャッシュ機能を使
用するベンチマークなどはもっとゆっくり学習する傾向があります。
ハードディスクや SSD の特徴のため、あなたの動作テストに必要となる最少時間はお使いのアプリケ
ーションのホットスポットのサイズや、下記の表にしめすように何台のディスクをコントローラに接続して
いるかにも左右されます。
Size of
Application Hot
Spot (GB)
32
64
96
128
2
30
55
85
110
Number of Hard Disk Drives
3
4
8
20
15
10
40
30
15
55
45
25
75
55
30
16
5
10
15
15
MaxIQ が安定状態になるまでの最少時間(単位:分)
しかし、一般的に言えば、テスト結果を継続して監視しながら、学習が安定した状態をさがしていただく
必要があります。例えば、MaxIQ 使用時のアプリケーションのパフォーマンスは以下のグラフのように、
平均的に時間とともに変化していきます。
テストの第一フェーズでは、アルゴリズムがアプリケーションのデータアクセスパターンを学習中なので
MaxIQ ソリューションのパフォーマンスは、これまでのストレージと同じぐらいであることがわかります。
20-30分後には、アルゴリズムはデータ配置を最適化するため、充分アプリケーションを学習しインテ
リジェンスをもっています。パフォーマンスは劇的に増加して、非常に高い位置で安定しています。
16/32 ページ
評価用ガイド
参考として、このアプリケーションでは、3台のハードディスクを使用し、30GB のホットスポットを持って
いました。前述の表によれば、MaxIQ が安定するまでに必要とする最少時間は大体 20 分ぐらいで、
実際の時間は、グラフからわかるように 20 分から 30 分の間でした。
4.5.
テスト時間を短縮できるか?
前の項では、アプリケーションが含むホットスポットデータのために、MaxIQ SSD キャッシュに必要な"
ウォームアップ"時間について説明しました。一般的に言えば、少なくてもそのぐらいの時間はテストを
稼動させる必要があります。しかし、あなたが非常に注意深いとすれば、テストとテストの間で、収集し
たデータを MaxIQ キャッシュ内の残すことで、複数のテストを実施する際の時間を短縮することができ
ます。
より詳細は後の項で述べますが、例えば Iometer は人気のある合成ベンチマークの一つです。普通
Iometer を稼動時に、テストシーケンスを連続で実施することができます。これによって、少なくても、前
のセクションのグラフにある時間まではそれぞれを実施することができるはずです。違ったパラメータで
たくさんのテストを実施しようと思えば、この時間をより長くすることもできます。
しかし、Iomete を未使用のディスクに対して実施する場合やデータセットサイズを変更しない場合、メ
ディアのオフセットをしない場合はあなたがエミュレートしようとしているホットスポットは毎回、同じ実デ
ータになります。結果として、MaxIQ はそのデータを 1 回目のテストでキャッシュし、その後に続くテスト
では同じことをする必要はありません。結果、最初のテストでは学習時間が必要ですが、それ以降のテ
ストではすぐに — 30-60 分の変わりに多分 2-3 分ぐらいで — 最大パフォーマンスに達することになり
ます。
あなたが、これがどのように動作するのか不安な場合や、ファイルシステムに対してテストする場合に
は、項の最初に述べたようにテストを実施することを強く推奨します。
一般的に、MaxIQ によって得られるパフォーマンスメリットについて結論を導き出す前に、テストのパフ
ォーマンスを継続して監視し、あなたのアプリケーションに期待する、前のグラフにあるようなパフォー
マンスが"跳ね上がる"状態を探してみてください。
17/32 ページ
評価用ガイド
5. MaxIQ のベンチマークテスト – 詳細
MaxIQ の評価を完了するために、次の項では全てのアプリケーションへ適用できる一般的なものでは
なく、異なるさまざまな種類の合成ベンチマークを使用するときに注意すべき点について個別のアドバ
イスを説明します。また同時に、MaxIQ のパフォーマンス評価に使用するべきでないと考えるベンチマ
ークとその理由についても説明します。
ここでのゴールは前述の"5 番目の点 — あなたのアプリケーションのホットスポットからのリード割合"
— について算定することです。あなたがもつアプリケーションの I/O プロファイルについての知識と組
み合わせることで、MaxIQ のパフォーマンスメリットについて見積もることができるでしょう。
5.1.
Iometer(アイオーメータ)
Iometer は単一もしくはグループ化されたシステムのための、業界標準の I/O サブシステム測定&特
性ツールです。このツールは"Intel Open Source License"と GNU Public License のコンビネーション
の下で提供されており、ストレージ業界で幅広く使用されています。
本 文 章 が 記 述 さ れ た 時 点 で は 、 最 新 の Iometer の ア ッ プ デ ー ト は 、
http://sourceforge.net/projects/Iometer/.の Sourceforge.net からダウンロード可能で、"Stable"バージ
ョンは http://www.iometer.org/から入手可能です。
5.1.1. Iometer の段階的な説明
以下の議論は、Iometer バージョン 2006.07.27.に適用されます。他のバージョンではユーザインタフェ
ースが若干異なるかも知れませんが、コンセプトは多分似ているでしょう。
この記述では未使用のストレージボリュームに対して Iometer を設定して動作させ、オペレーティング
システムとファイルシステムレイヤーを完全にバイパスするように設定します。これはとても人工的です
が、テストの性質にはマッチしているため、ファイルシステムのファイル上で Iometer を使用すれば、テ
ストでは最大パフォーマンスにより素早く到達することでしょう。
普通、あなたが Iometer を未使用のハードディスクではなくファイルに向かって動作させる場合、このプ
ロセスを適切に変更してください。のハードディスクではなくファイルに向かって動作させる場合、このプ
ロセスを適切に変更してください。そして、MaxIQ がデータアクセスパターンを学習して可能な限り最高
のパフォーマンスに得られるよう、それぞれのデータポイントで充分なテスト時間をとっていることを確
認してください。の部分のやり方については、4.4 の項にある情報をご覧下さい。
•
最初に、Iometer アプリケーションを開きます。以下のようなものが見えるはずです。
•
まず最初に"Disk Targets" タブ(すでに見えているかもしれませんが)をクリックし、次に左側パネルにあ
るあなたのサーバ名をクリックします
見慣れたディスクのドライブ文字のリストと、PHYSICALDIRVE:1 という名前の未使用のストレージデバ
イスのセットが見えるはずです。 — これらは MaxIQ コントローラへ接続されている未使用のハードディ
スクアレイです。
18/32 ページ
評価用ガイド
Iometer を動作させる簡単な方法は、直接未使用の MaxIQ ストレージボリュームに向け、オペレーティ
ングシステムやファイルシステムレイヤをバイパスすることです。そのためには、リストにあるその名前の
脇のボックスにチェックを入れてください。
Iometer に、あなたのアプリケーション内データにあるホットスポットをシミュレートさせるには、MaxIQ
SSD キャッシュプール内にある SSD の容量と同じ値を、"Maximum Disk Size"のボックス内に入力して
下さい。このフィールドに入力する値は、512 バイトのディスクセクタ数に換算してとして割り込みされま
す。1 台の 32GB SSD であれば 121,561 の 256KB サイズ キャッシュページが有効で、これは
31,119,616KB と同等で、"Maximum Disk Size"へ入力する値としては 62,239,232 となります。MaxIQ
キャッシュプール内に複数の SSD を入れてテストしている場合は、その台数とこの値を乗じて下さい。
"starting disk sector"と、"number of outstanding I/Os"の欄はそのままでしておいてください。後者につ
いては"Test Setup" タブで設定します。
画面は以下のように見えるはずです。
•
次に、テストする I/O プロファイルを定義するために、"Access Specifications"タブを選びます。ometer
をインストールしたばかりであれば、画面は以下のようになっていると思います。
19/32 ページ
評価用ガイド
右側のパネルには事前に定義された I/O プロファイルのリストが含まれています。これらは使わずに、
"NEW"ボタンをクリックすると以下のようなダイアログが見えます。
覚えやすいテキストを決めて“Name”へ入力してから、
o "Transfer Request Size" を 512 キロバイトに設定。
o "Percent of Access Specification" バーを 100%へスライドさせる。
o "Percent Read/Write Distribution"バーを 0% Write と 100% Read へスライドさせる。
o "Percent Random/Sequential Distribution"バーを 100% Random へスライドさせる。
o Burstiness の"Transfer Delay" は 0 ms に、 "Burst Length"は 1 I/O のまま。
o "Align I/Os on"は"Sector Boundaries"を選択。
o "Reply Size"は"No Reply"を選択
"OK"をクリックすると"Access Specifications"タブに戻ります。
この時点で、あなたが設定した新しい I/O プロファイルの名前が右側の"Global Access Specifications"
パネル内に現れるはずです。 — リストの一番下に現れるので、確認のため下へスクロールが必要かも
しれません。
テスト用にこれを使用可能にするには、その名前をハイライトしてから、画面の真ん中にある
ボタンをクリックします。これで名前は左側の"Assigned Access Specifications"エリアへ移動し、設定さ
れた画面は以下のように見えるはずです。
•
次に、Test Setup タブを選んで、以下のように設定を変更します。
o "Test Description"は descriptive string を選択。
o "Run Time"を 2 Minutes へ設定
o "Ramp Up Time"を 900 seconds へ設定
20/32 ページ
評価用ガイド
"Number of Workers to Spawn Automatically on Disk"をあなたのシステムの CPU コア数に
設定
o "Record Results"を "All"に設定
o "Cycling Options"内で"Cycle # Outstanding I/Os – run step outstanding I/Os on all disks
at a time"を選択し、"# of Outstanding I/Os" エリア内で"Start" を 1 へ、"End"を 512 へ
"Power" を 2 へ設定し、"Exponential Stepping"を選択
設定の終わった画面は以下のように見えるはずです:
o
ここで最も重要な設定は、"Ramp Up Time"と"Run Time"です。後者は、Iometer が実際にパフォーマン
スデータを採集する時間の長さです。この値は、相対的に短くすることができます。というのも、MaxIQ
が一度安定したパフォーマンスに達するとパフォーマンス値が安定するため、正確なデータを読み取る
のにそれほど時間がかからないためですしかし、"Ramp Up Time"は重要です。これは、Iometer がパフ
ォーマンスデータを採集する前に稼動している時間で、MaxIQ がデータアクセスパターンを学習して正し
いデータをキャッシュするために充分な長さが必要です。
"Cycling Option"を選択することは、Iometer が、終わり無く増え続ける負荷の中で、複数のテストを行う
ことを意味します。異なる組織では異なるパフォーマンス測定を行う。 — より多くのユーザやアプリケー
ションを追加したときにシステムがどのように反応するのかがわかるため、これこそが我々がよく使用す
るものです。
もしこのテストを複数回実施したいと思ったときには、列の左にある"save"ボタンを押せば、現在の設定を
保存することができます。
ここをクリックして設
定を保存する
次に、このテストを走らせたいと思ったときは、設定済みのすべてのセッティングで Iometer をスタート
するために保存されている、".icf"ファイルをダブルクリックするだけです。
グリーンの旗のついたボタンをクリックしてテストを開始してください。
テスト結果のファイル名を要求するダイアログボックスが現れるでしょう。テスト結果はグラフ化や分析
のためのスプレッドシートに入力しやすいように CSV フォーマットに入れられます。
さあテストが開始します。でも、あなたに見える表示は Iometer ウィンドウの右下にあるものだけです。
— 以下のように見えるステータスバーです。
21/32 ページ
評価用ガイド
これは我々が設定した 10 のテストの内の一番目がまだ、"ramp"サイクル中であることを示しています。
ramp サイクルの後テストが稼働中であることを示すテキストに変わります。
より興味深い形式で結果を見るためには、"Results Display"タブをクリックします。"ramp"フェーズの間
は、こちらもとても動きが鈍いのですが、テストが実施に走り始めると以下のように見えます。
これをみるには右上の"infinite(無限大)"マーク内にある"Update Frequency"スライダーを動かさなくて
はいけないかもしれません。。また"Results Since"ボックス内の"Last Update"を選択してみるのもいい
でしょう。どんなテスト中でもパフォーマンスがまだ増加し続けている場合には、安定状態に達していな
いということであり、MaxIQ はまだキャシュするデータをさがしている最中ということになります。可能な
限り最高の結果を確認するには"Ramp Time"を増やして、テストを繰り返す必要があります。
テストが走っている最中は各パラメータの変化を見ることが出来ます。より視覚的な画面にするには、
各列の右端にある” > “マークのボタンをクリックして、パフォーマンス結果の"スピードメータ"表示にして
みてください。
上記で与えられているパラメータでは、10 の異なるテストポイントが評価されます。最初のテストにおけ
る、”The number of outstanding I/Os”(queue depth とも呼ばれる)は、1 に設定され、連続するテスト
ごとに 512 に達するまで倍増していきます。それぞれのテストは 15 分間の"ramp"があり、その後 2 分
間のテストが走ります。
5.1.2. Linux 上で Iometer を走らせる
Iometer はウィンドウズシステム上で使用しますが、少し調整すれば Linux でも使用可能です。
22/32 ページ
評価用ガイド
Iometer アプリケーションは、”Iometer”と呼ばれるユーザインターフェースと”Dynamo”と呼ばれる I/O
エンジンの 2 つの部分で構成されています。これら 2 つのアプリケーションは,普通は同じコンピュータ
上で走らせます。 — 実際、別の方法で行わない限り、Iometer アプリケーションはこれを自動的に実行
します。Iometer で実行可能なのは、ユーザとのインターフェースとやりとりを提供する”master”で、スト
レージへの I/O を実行する Dynamo アプリケーションは”slave”です。一般的にはベストパフォーマンス
を得るために、一つの Iometer と一つの Dynamo だけを走らせます。これらが走り始めると、Dynamo
アプリケーションは、ストレージの I/O を実行する”worker threads”を作成し、あなたはシステムの CPU
コアと同じ数だけのスレッドを走らせるように構成するでしょう。
プログラムは下記のような TCP ソケットを使用する単一のウィンドウズサーバ上でコミュニケートします。
TCP 接続
実行可能な
Dynamo
実行可能な
Iometer
Dynamo スレッド
Dynamo
I スレッ
tド
Dynamo スレッド
Dynamo
D スレッド
本文章作成時点では、利用できる Iometer アプリケーションはウィンドウズ用だけですが、Dynamo は
Linux を含む多様なオペレーティングシステムに対応しています。また、2 つのタイプのプログラムが
TCP ソケットを使用してコミュニケートするので以下のような環境をセットアップすることができます。
TCP 接続
実行可能な
Dynamo
実行可能な
Iometer
Windows
System
Dynamo スレッド
Dynamo スレッド
Dynamo スレッド
Dynamo スレッド
Linux
System
この場合、Iometer ユーザインターフェースをしたウィンドウズマシン上で構成を動作することができま
す。”run”ボタンを押すと Iometer プログラムが、TCP 接続を通じて Linux マシン上の Dynamo プログラ
ムへコマンドを送ることで、worker thread を作成して全ての I/O を行います。Dynamo プログラムはパ
フォーマンスデータを採集して、それをデータを表示するウィンドウズマシン上の Iometer アプリケーシ
ョンへ TCP 接続を通じて送り返します。
Iometer ユーザーズガイド(http://www.iometer.org/doc/documents.html で入手可能)では、構成のセ
ットアップの仕方と走らせ方について詳細を記述しています。これはまったく平凡なものではなく、Linux
システム上で Dynamo プログラムを稼動させ、Iometer を稼動するウィンドウズホストシステムの IP ア
23/32 ページ
評価用ガイド
ドレスを連絡し、どこで Linux マシンが稼働中か伝えるためにメインの Iometer ウィンドウ(左側にある
窓)の”Topology”タブを使用する基本的な考え方についてです。
Linux 上で Iometer を走らせるときに気をつけることは、あなたがどのようなオプションを設定したとして
も、常に Linux バッファキャッシュレイヤーを通ることです。結果的に、Linux 上にある未使用のドライブ
とウィンドウス上の未使用のドライブのパフォーマンス比較のために、このベンチマークを使用すること
は良い方法ではありません。しかし、両方の OS でファイルシステムレイヤを使用している場合、おおよ
そで比較可能な結果を得ることができるでしょう。
これはすこし扱いにくいプロセスなので、以降で述べるいくつかのベンチマークは、完全にウインドウズ
でないマシンで動作可能で、かつより使いやすいかも知れません
5.2.
fio(エフアイオー)
fio (http://linux.softpedia.com/progDownload/fio-Download-7881.html )はベンチマーキングとストレス
テストの両方が実行可能なツールです。.Linux や FreeBSD、OpenSolaris に対応しています。
fio の利点は、テスト負荷を定義できる簡単な job description files を使用することです。これは、MaxIQ
のホットスポットに対する反応をテストするために設定できることを意味します。
このツールは発生するレーテンシとスループットをグラフにすることを可能にする plot utility とともに提
供されます。
5.2.1. fio の段階的な説明
Fio の使用例として、ここでは以下を行う job description file を作成しました:
• 8GB サイズの一時ファイルを作成
• 4K ブロックサイズのランダムリードのための設定
ここでは、ホットスポットをシミュレートするために、故意に一台の 32GB SSD よりも小さなサイズのテ
ストファイルを作成しました。より大きなサイズのテストファイルも作成可能ですが、ホットスポットでの反
応を正確にシミュレートするためには、MaxIQ SSD キャッシュプールの総容量よりも小さくする必要が
あることを忘れないで下さい。
このように fio を使用するには、job description file を作成する必要があります。この description のた
めに、いずれかのテキストエディタを使って“fiotest”と呼ばれるファイルを作成し、以下のような内容を挿
入してください。
; random read of 4KB of data
[random-read]
rw=randread
size=8192M
direct=1
iodepth=64
ioengine=libaio
randrepeat=1
directory=/testdb/fio
write_bw_log=logresults
bwavgtime=3000
Sets test type to random read
Sets dataset size in MB
Disables O/S caching effects
Sets the I/O queue depth
Makes the test use asynchronous I/O
Makes the results repeatable between runs
Test directory
Filename to store the bandwidth measurements
Average bandwidth calculation over 3 seconds
(http://linux.die.net/man/1/fio を含むいろいろな場所で、完全な仕様書が入手可能です。)
24/32 ページ
評価用ガイド
この description についての注意点:
• “ioengine=libaio” を必ず使用してください。 “ioengine=sync”は使用しないでくだ
さい。後者は一度に一つの I/O リクエストしか発行しないため、ベンチマークがひどい結果
になってしまいます。.
• “size” パラメータを変更してデータセットのサイズを変更できますが、MaxIQ SSD キャッ
シュプールの総容量以下にしておく必要があります。
• “iodepth” フィールドはあなたがシミュレートしたいと思うどんな値にも設定することができ
ますが、大きな数字になればなるほど良い結果になる傾向があります。
•
“directory” ステートメント内のディレクトリ名は必ず MaxIQ コントローラに接続された
ハードディスク上のロケーションを参照していなくてはなりません。うっかりブートボリューム
や他の I/O デバイス上のロケーションを選ばないよう注意してください。
• “write_bw_log” エントリを指定すると fio がパフォーマンス結果のグラフを作成するのに
使われるファイル作成します。これはテストの反応を理解するのに役立ちます。 レーテンシ
ログファイルは非常に大きなサイズではありますが、ツールにレーテンシ測定結果を含むフ
ァイルを作成するよう指示する“write_lat_log” パラメータを指定することもできます。
いずれの場合も、ログファイル作成の際にあなたが指定してフィル名に対し、fio は“.log”
を付与します。
job description file は覚えやすい名前で保存し、この例ではファイル名を“random4K”とする、シェル内
もしくはターミナルウィンドウ内にて以下のようにタイプしてテストを走らせます。
fio random4K
一般的なアウトプットは以下のように見えます:
[root@uklab-cern5 fio]# fio random4K
random-read: (g=0): rw=randread, bs=4K-4K/4K-4K, ioengine=libaio, iodepth=64
Starting 1 process
random-read: (groupid=0, jobs=1): err= 0: pid=31826
read : io=0B, bw=71,594KB/s, iops=17,898, runt=117169msec
slat (usec): min=7, max=966, avg=20.51, stdev= 6.90
clat (usec): min=43, max=171K, avg=3550.21, stdev=939.53
bw (KB/s) : min=69362, max=72206, per=100.14%, avg=71691.28, stdev=666.91
cpu
: usr=8.82%, sys=43.51%, ctx=443543, majf=0, minf=226
IO depths
: 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit
: 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued r/w: total=2097152/0, short=0/0
lat (usec): 50=0.01%, 100=0.18%, 250=2.00%, 500=0.22%, 750=0.01%
lat (usec): 1000=0.01%
lat (msec): 2=0.02%, 4=96.24%, 10=1.27%, 20=0.03%, 50=0.01%
lat (msec): 100=0.01%, 250=0.01%
Run status group 0 (all jobs):
READ: io=8,192MB, aggrb=71,594KB/s, minb=73,312KB/s, maxb=73,312KB/s,
mint=117169msec, maxt=117169msec
Disk stats (read/write):
dm-0: ios=2097137/2451, merge=0/0, ticks=7292581/1794, in_queue=7294538,
util=99.97%, aggrios=0/0, aggrmerge=0/0, aggrticks=0/0, aggrin_queue=0,
aggrutil=0.00%
sda: ios=0/0, merge=0/0, ticks=0/0, in_queue=0, util=nan%
このアウトプットは、あなたが興味があるものないもの含めて多くの詳細情報を含んでいます。MaxIQ
評価の目的として、最も興味がある部分は 4 行目にあります。 — 以下のように見える部分です。
25/32 ページ
評価用ガイド
read : io=0B, bw=71,594KB/s, iops=17,898, runt=117169msec
“bw”エントリは、テスト中のトータル I/O スループットを示し、“iops”エントリーは、
前述の“5 番目の I/O パラメータ” — アプリケーションのホットスポットからのランダムリード割合 — を示
します。
fio ベンチマークはデータを配置する方法とういう面では iometer に似ています — デフォルト設定によ
り、単一のテストではデータの全てのブロックに対して一度だけ動作します結果として、単一のテストを
走らせるだけでは、MaxIQ で可能な最大パフォーマンスをえることが出来ないことがお分かりになるで
しょう。
正確な結果を得る最も簡単な方法は、連続して複数のテストを走らせ、最大パフォーマンスに達するま
で“iops”の値をモニターすることです。例えば、RAID-5 構成の 3 台の 7,200RPM の SATA ハードディ
スクと 1 台の SSD キャシュ搭載のテストシステムで 5 回連続テストを行った場合の結果は以下のよう
になります。
テスト
1
2
3
4
5
バンド幅
IOPs
(MB/秒)
(秒当たりオペレーション数)
15.1
71.5
71.6
71.2
71.5
3,775
17,869
17,898
17,800
17,884
もう一つの方法は、単一のテストをより長い時間走らせるために job description file 内の“runtime” と
“timebased”パラメータを指定することです。
fio ベンチマークのパフォーマンス結果を分析する簡単な方法は、プログラムと一緒に配布されている
グラフ作成プログラム — fio_generate_plots を使うことです。例にあるようにあなたが job
specification を作成し、テスト結果の一つが“write_bw_log” と “write_lat_log” エントリ内にあ
なたが入力した名前の log file になります。
以下のコマンドを走らせることで、テスト結果のグラフを作成することができます。
[root@uklab-cern5 fio]# fio_generate_plots <graph title>
一つのパラメータが作成されたグラフの上に置かれる題名になります。ログラムは、現在のディレクトリ
内で“.log”の拡張子をもつ全てのファイルを処理し、分析するので、あなたがどこを参照するか指定
する必要はありません。
以下は、RAID-5 構成された 8 台の 15,000 RPM SAS ハードディスクと 1 台の 32GB の MxIQ キャッ
シュを使用して、単一のテストを走らせた場合の、結果を示しています。
26/32 ページ
評価用ガイド
データは、MaxIQ がアプリケーションのアクセスパターンを学習中の SAS ハードディスクの初期パフォ
ーマンス — 毎秒約 1,000 の 4K オペレーション — をはっきり見せています。MaxIQ がアプリケーショ
ンの理解とホットスポットの分析を終えるとすぐに、パフォーマンスは 90MB/s, もしくは毎秒 23,000 オ
ペレーション、20 倍以上まで劇的に増加します。
このケースでは、MaxIQ がアプリケーションのアクセスパターンを学習するまでの時間は、40-60 秒で
した。しかし、これは、ある部分的なケースといえます。というのも、ホットスポットはすごく小さく (8GB だ
け)作りましたし、RAID アレイは 8 台のハードディスクでしたし、オペレーティングシステムのキャッシュ
は無効にしていたからです。これらのパラメータは自由に変更可能ですが、その場合は最大パフォーマ
ンスに達するまでの時間に影響します。
5.3.
Sysbench(シスベンチ)
Sysbench は、ファイル I/O パフォーマンスやプロセッサ使用率、スケジューラ性能、メモリ、OLTP デー
タベースパフォーマンスなどを測定可能な汎用のベンチマークユーティリティです。ウィンドウズと
Unix/Linux システム両方に対応しています。
以下より入手可能です:
http://sourceforge.net/projects/sysbench/files/
このテストの弱点は、例え MaxIQ SSD キャッシュプール内にキャッシュ可能な小さなデータセットを使
ったとしても、ホットスポットをシミュレートできないことです。基本的な問題は、特定のデータスポットを
一度だけしかヒットしないことです。これでは、MaxIQ がホットデータアクセスパターンを学習する機会
が非常に小さくなってしまいます。
しかし、ホットスポットをシミュレートするよう連続して複数回のテストを実行することができるので、パフ
ォーマンスメリットを確認するために結果を蓄積することができます。
27/32 ページ
評価用ガイド
5.3.1. Sysbench の段階的な説明
Sysbench は“semi-intuitive”.というコマンドライン変数によって動作します。
ホットスポット反応を測定する上で重要な部分は:
--num-threads=16
複数の I/O 要求が一度に処理されるように 16 個の worker threads を作成する — 他
のベンチマークで高い “queue depth” や “iodepth” を設定するのと同等
--max-time=20
テストが 20 秒走るように設定する。ホットスポットをシミュレートするようにする唯一の
方法は、これを複数回走らせてそれぞれの回から個別にデータを採集すること。
--max-requests=0
実行する I/O 要求数を制限するために使用する。このパラメータを 0 に設定すると I/O
数が任意に高くなり、テスト回数の合計は max-time パラメータでコントロールされる。
--test=fileio
--file-test-mode=rndrd
このパラメータの組み合わせは、100%ランダムリードテストの設定に使用する-ホット
スポットのランダムリードパフォーマンス測定に必要。
--file-total-size=16G
処理するデータセットのサイズを設定する。MaxIQ キャッシュプール内 SSD の総容量
サイズより小さい値であれば何でも使用することができる。しかし、より大きなボリュー
ムを使用すると最大パフォーマンスに落ち着くまでに必要なテスト時間がより長くかか
ってしまいます。
( http://sysbench.sourceforge.net/docs/#common_options でより詳細情報をみることができます)
実際にテストを走らせるためには 2 つの個別ステップを実行しなくてはいけません:
第一のステップは、ファイルシステム内にテストファイルを作成するために、“prepare”オプションとともに
コマンドを走らせることです。
警告: すべての I/O は“current working directory(現在稼動中のディレクトリ)”で
発生するため、以下にあるコマンドとその他全てのコマンドは MaxIQ コントロー
ラに接続されたボリューム内に存在するディレクトリから走ることを確認してくださ
い。もし、ブートボリュームから走らせた場合、特にエラーメッセージもなくテスト
が走ったとしても、パフォーマンスの改善を確認することはできないでしょう。
テストファイルのセットアップには、以下のようなものを走らせます:
[root@uklab-cern5 fio]# cd <some-directory-on-the-controller>
[root@uklab-cern5 fio]# sysbench --num-threads=16 --max-time=20
--max-requests=0 –-test=fileio --file-total-size=16G
--file-test-mode=rndrd prepare
実際のデータ収集テストを走らせるには、以下のような “prepare”が”run”で置き換えられたようなコマン
ドを走らせます:
[root@uklab-cern5 fio]# sync ; echo 3 >/proc/sys/vm/drop_caches
[root@uklab-cern5 fio]# sysbench --num-threads=16 --max-time=20
--max-requests=0 --test=fileio --file-total-size=16G
-–file-block-size=4096 --file-test-mode=rndrd run
これの一行目はファイルシステムに対してデータをディスクへ流し、メモリーキャッシュをクリアするよう
指示します — これは、データ採取を簡単にするためにテスト毎に独立して走るようにし、またほとんど
28/32 ページ
評価用ガイド
のリード要求がファイルシステムと O/S キャッシュをバイパスするようにして、MaxIQ がデータアクセス
パターンをより早く学習できるようにします。もし、このコマンドを走らせなかったとしても、MaxIQ はパタ
ーンを学習しますが、より長い時間を必要とします。
二番目のコマンド変更は、I/O ブロックサイズを 4K 設定することです。必要であれば、他の値を使用す
ることもできます。
このコマンドは 20 秒テストを一度だけ走らせて、パフォーマンス結果をリポートします。MaxIQ がどの
ぐらい寄与できるか理解するために、このテストを複数回走らせて、毎回テスト結果を記録します。繰り
返して何度も実施すると、MaxIQ がキャシュ動作を最適化するために充分アプリケーションを学習して
パフォーマンスのピーク値に達するまで、パフォーマンスが増加し続けます。
以下のグラフは 4KB の I/O ブロックサイズで 13 回繰り返してテスト(合計 260 秒)した際の結果を表し
ています。
他のベンチマークのときと同様に、パフォーマンスは最初は一般のハードディスクレベルですが、
MaxIQ がどのデータを SSD キャッシュへ移動するか学習すると急激に改善します。この場合、テスト
の 6 回目でピークパフォーマンスに到達しています。 — 大体テスト開始から 2 分後ぐらいです。ただし、
注意していただきたいのは、ここではデータセットのザイスが小さく(8GB)て、すべてのファイルシステム
と O/S キャッシュを飛ばしている点です。もしより大きなサイズのデータセットを使用したり、O/S やファ
イルシステムがキャッシュ使用できるようにした場合、MaxIQ は同様のパフォーマンスメリットを発揮し
ますが、ピーク値に達するまでの時間がより長くかかるかもしれません。
29/32 ページ
評価用ガイド
5.4.
bonnie++(ボニープラスプラス)
Bonnie++は、いくつかの重要なハードディスクパフォーマンスの組み合わせを測定するために設計さ
れたベンチマークテストセットです。プログラムは連続したランダムとシーケンシャルの I/O オペレーショ
ンを走らせて、その結果のまとめを提供しますが、どのタイプのテストを行うか設定することができませ
ん。
ホットスポットの動作をシミュレートすることが出来そうにありませんので、これを MaxIQ の評価に使用
することをお勧めしません。
5.5.
iozone(アイオーゾーン)
これは、プラットフォームのパフォーマンス全体を幅広く解析することができる、多機能なファイルシステ
ムベンチマーク用ツールです。シンプルな I/O サブシステムのベンチマーク用に多くの強力な機能があ
りますが、ツールが一度だけ作成したデータを使用するというデフォルトによる制限があります。これは、
すでに説明した sysbench アプリケーションと同じような特徴です。
しかし、Sysbench の場合には、ホットスポットを作るためにランダムリードテストを繰り返し走らせること
でアプリケーションの動作をシミュレートすることでできました。
“技術的には”iozone を使って似たようなテストを行うことはできますが、そのプロセスは複雑かつ混乱
しやすく、非常に難しいものです。したがって、MaxIQ のパフォーマンス評価に使用することはお勧めし
ません。
30/32 ページ
評価用ガイド
6. ベンチマークテスト結果を理解する
前の項では MaxIQ SSD キャッシュの利点を確認するために、各合成ベンチマークをどうやって使うか
について述べました。
あなたが実際にこれらのテストを行ったとすれば、五つの基本的なローレベル I/O パラメータについて
結果を理解できたはずです:
• シーケンシャルライトパフォーマンス
• シーケンシャルリードパフォーマンス
• ランダムライトパフォーマンス
• より頻度の低い(コールド)データのランダムリードパフォーマンス
• より頻度の高い(ホット)データのランダムリードパフォーマンス
これらの値は理想化されたものです — その I/O カテゴリーで可能な限りベストの値です。
あなたのアプリケーションが最終的にどのように動作するか理解するためには、以下のような追加の概
念に分解してみなくてはいけません:
• アプリケーション動作中のライトに対するリードの割合は?
• アプリケーション動作中のシーケンシャル I/O に対するランダム I/O の割合は?
• ホットスポットの大きさは?
三つ目については明らかです — もしあなたがホットスポットのサイズを知っているなら、MaxIQ SSD
キャッシュプールに何台の SSD が必要かわかるでしょう。
最初の 2 つは、あなたが実施した 5 つのパラメータについて重要性をどのように考えるべきか、洞察
力を提供するでしょう。しかし、合成ベンチマークはしばしばオペレーティングシステムのキャッシュとと
もに動作したり、ファイルシステムが停止したような状況で動作したりします。あなたの実際のアプリケ
ーションを実行したときには、ファイルのために I/O を使用したり、ファイルシステムとオペレーティング
システムの両方から影響を受けたります。
あなたのデータ理解をゆがめるかもしれない主なものは:
• オペレーティングシステムとファイルシステムはデータをキャッシュするので、MaxIQ コント
ローラ内におけるアプリケーションのライトに対するリードの割合は理想より低くなりそうで
ある。
• ファイルシステムは自らのアルゴリズムと動作を持っているため、アプリケーションレベルで
はシーケンシャルと見られるある量の I/O については、それが MaxIQ コントローラにたどり
ついた時点では、ランダム I/O となっていると思われる。
残念ながら、この 2 つについては定量化するのが難しいのですが、明らかに言えることがあります —
1 つ目は MaxIQ の効果を低くする方向へ働き、2 つ目はより効果が高くなる方向へ働くことです。
直感的な結論は、MaxIQ 搭載のシステムは、ハードディスクだけのシステムに比べて、少ないシステム
メモリで済むということです。というのは、メモリが少ないと、メモリ内にキャッシュされる代わりに、より多
くの I/O がディスクサブシステムに送られなくてはならないためです。MaxIQ はこれを自身にキャッシュ
することで拾い上げることができます。特に、MaxIQ はオペレーティングシステムの swapping アルゴリ
ズムより効率的で、swapping を無効(disable)にしたシステムで.使用したときにはより高い効果を確認
できます。
31/32 ページ
評価用ガイド
7. 結論
この文書では、MaxIQ の動作はどのようにして、そしてなぜそのように行うのかについて説明しました。
また、それがあなたのアプリケーションのパフォーマンスにどのように影響するか、その効果を確認す
るための合成ベンチマークの使い方について説明しました。
しかし、模範となるパフォーマンスはこの文書で説明の領域をこえるほどに芸術的で、ほとんどのアプ
リケーションでは達成できないほどです。弊社のこれまでの経験では、MaxIQ を評価するベストな方法
は本当のアプリケーションに対して実際に走らせてみることです。ある程度の時間、走らせて結果を見
てください。そうすれば、MaxIQ がどれほど効果的があるのかお分かりいただけることでしょう。
32/32 ページ
Fly UP