Comments
Description
Transcript
IBM i パフォーマンス FAQ
IBM i パフォーマンス FAQ 2016/12 日本アイ・ビー・エム株式会社 日本アイ・ビー・エム システムズ・エンジニアリング株式会社 © © 2016 2016 IBM IBM Corporation Corporation はじめに • 当資料はPower Systemsで稼働するIBM iのパフォーマンスについて、お客様からよく頂 くご質問をFAQ形式でまとめました。当資料を参考に、 IBM iの基本的なパフォーマンス の考え⽅について理解していただくことを目的としています。(パフォーマンス分析の⽅ 法や、パフォーマンス・チューニングの⽅法は対象としておりません) • IBM i の⻑い歴史において、基本的なパフォーマンスに関する概念は変わっていません。 ただしPower Systemsで実装されたSMT機能では、新しい概念が出てきました。また⻑年 IBM iを使⽤するなかで運⽤上はあまり意識することがないため無意識のうちに勘違いして いる点もあるかもしれません。この機会に、いま⼀度IBM i の理解や認識を深めて頂けた らと思います。 • 参考文献 -“IBM i on Power - Performance FAQ October 3, 2016” http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?htmlfid=POW03102USEN © 2016 IBM Corporation アジェンダ • 当資料で扱うご質問は以下の通りです。 -Q1:⼀般的にパフォーマンスで⽤いる指標は何ですか -Q2:IBM iのパフォーマンス検討ではCPWだけ注意すれば良いですか -Q3:ジョブ実⾏にて、時間がかかった処理を知る⽅法はありますか -Q4:トランザクション特性に応じたパフォーマンス改善を目指すといいますが、 どのようなタイプがありますか -Q5 : Power SystemsのSMT機能とは何ですか © 2016 IBM Corporation Q1:⼀般的にパフォーマンスで⽤いる指標は何ですか A1:スループットとレスポンス・タイムをパフォーマンスの指標とするのが⼀ 般的です。 • スループットとは -単位時間あたりの処理能⼒ • 例えば1秒あたりにディスクから読み込むメガバイト数、1分あたりのデータベーストランザク ション、ネットワークアダプターが転送するメガバイト数 -IBM iでスループットを相対比較する指標値はCPW(Commercial Processing Workload) • CPWは、商⽤ビジネス⽤途のアプリケーション(受注・給与・課⾦など)を稼働させたときの スループット相対性能比であり、全ての環境で適⽤できるではない(Q2に続く) • CPWはパフォーマンスを保証するものではない • レスポンス・タイムとは -トランザクション要求が終了してから、その応答を返すまでの経過時間 • 例えば対話型ユーザーであれば<Enter>キーを押下してから結果を表示するまでの時間 © 2016 IBM Corporation Notes • コンピューターのパフォーマンスを評価する場合には様々な要素がありますが、主にスループットとレスポンス・タイムを指標とするのが⼀般的です。 • スループットは単位時間あたりの処理能⼒を意味します。⼀⽅レスポンス・タイムは要求したトランザクションが完了するまでの経過時間を意味します。 • IBM iがサポートされるHW製品において各モデルの性能を示すときにはCPW(Commercial Processing Workload)と呼ばれる指標値が使⽤されます。 そのためパフォーマンスに関してはCPWだけを注意すればよい、と思われがちですが、CPWはIBM iのスループットに関する指標であり、レスポン ス・タイムの指標ではないことを正しく理解しておく必要があります。 • CPWは、IBM iで従来の商⽤ビジネス⽤途のアプリケーション(受注・給与・課⾦など)を稼働させたときのスループットを表したものであり、あらゆ る環境に適⽤する指標ではありません。 CPWを参考にするのが最も最適なケースは、商⽤ビジネス⽤途のアプリケーションを異なるシステムで稼働さ せる際に、製品モデルを⾒積もる目的で使⽤する場合です。 © 2016 IBM Corporation Q2:IBM iのパフォーマンス検討ではCPWだけ注意すれば良いですか A2:CPW値はシステムのスループットの指標としては使⽤できますが、 レスポンス・タイムの指標としては使⽤できません。 • CPWは商⽤コンピューター環境に適⽤した指標で、全ての環境で適⽤できる相対性能比では ないことに注意する -CPWで評価できるもの • 複雑な更新処理や、コミットメント制御やジャーナルを伴う複雑なクエリーを含む様々なデータベース・ア プリケーション • 単体のプログラムを実⾏するユーザーによる同時データ・アクセス • データベース指向の商⽤アプリケーションの相対的なパフォーマンス -CPWで評価できないもの • • • • バッチアプリケーション等のシングル・スレッド・アプリケーションのスループット バッチアプリケーション等のシングル・スレッド・アプリケーションの実⾏時間やバッチ・ウィンドウ ”ad-hoc” query (特定の目的のためのクエリー)のデータベース・パフォーマンス ある特定のお客様のためのシステムのパフォーマンス能⼒の指標 © 2016 IBM Corporation Notes • CPWが商⽤ビジネス⽤途のアプリケーションに基づいたスループットの指標であることはQ1でお話しました。つまりCPWは、トランザクションや バッチ・ジョブやクエリー処理のレスポンス・タイムの指標にはなりません。 • この他にもCPWを指標として適⽤できないケースとしては以下があります。 • バッチアプリケーション等のシングル・スレッド・アプリケーションのスループット - 例えば1分あたりに処理するバッチプロセス数の指標として、CPWを使⽤することはできません • バッチアプリケーション等のシングル・スレッド・アプリケーションの実⾏時間やバッチ・ウィンドウ - 例えばあるシステムでジョブが完了するまでに4時間かかるバッチ・ウィンドウを、他のシステムで稼働させるときの指標として、CPW を使⽤することはできません • • ”ad-hoc” query (特定の目的のためのクエリー)のデータベース・パフォーマンス • ある特定のお客様のためのシステムのパフォーマンス能⼒の指標 システム更改において、新システムの構成を現⾏システムと同等(CPUは同等のCPW、メモリーやディスクも同程度割り当て)としたのに、バッチア プリケーションの実⾏時間が遅くなったというケースを聞くことがあります。これまで読んでくださった⽅は、その原因がおわかりになると思います。 何度も繰り返しとなりますがCPWはスループットの指標であり、バッチアプリケーションの実⾏時間といったレスポンス・タイムの指標にはなりませ ん。そのため、たとえ新システムで新しい世代のプロセッサーに変わったとしても、CPWだけを指標としていたら、このようなケースが起こりうるの です。 © 2016 IBM Corporation Q3:ジョブ実⾏にて、時間がかかった処理を知る⽅法はありますか A3:IBM i ではWait分析により、スレッドやタスクがCPUで実⾏されている時間 とWait状態の時間を確認することができます。Waitを削除し可能な限りCPUを効 率的に使⽤することがパフォーマンス改善に繋がります。 • システムのスレッド/ジョブは、プロセッサーで実⾏中またはWait状態のどちらかに該当する 【CPU実⾏時以外のWait状態】 - Ready to run: スレッドやタスクが待ち⾏列に⼊り、プロセッサーの実⾏を待っている状態(CPUキューキング) - Idle waits:ユーザー/ネットワーク/その他のアプリケーションからの外部⼊⼒を待っている状態 - Block waits:共有リソースへのアクセスを同期させるためのシリアル処理の結果待っている状態(表の⾏更新、 ディスクI/O処理、ネットワークI/O処理など) <例>Wait分析によるジョブ実⾏時間の構成要素例 Wait分析から検討すること • Disk readでページフォルトは発生していないか • どのプログラムでDisk read/writeが発生しているか • Record Lockは適切か • どのファイルがJournalされているか など © 2016 IBM Corporation Notes • IBM i ではシステム上で発生するWaitのほとんどを記録できる仕組みが作られており、Waitの情報を収集し、分析することが可能です。システムのレ スポンス・タイムとスループットを改善するために、Waitの時間を減らしたり、なくすことは、非常に効果的な⽅法です。 • システムにあるスレッドやタスクは、ある⼀時点では“プロセッサーで実⾏中”または“Wait状態”のどちらかの状態にあります。さらに“Wait状態”は以下 の3つの状態に分けられます。 - Ready to run: スレッドやタスクが待ち⾏列に⼊り、プロセッサーの実⾏を待っている状態(CPUキューキング) - Idle waits:ユーザー/ネットワーク/その他のアプリケーションからの外部⼊⼒を待っている状態 - Block waits:共有リソースへのアクセスを同期させるためのシリアル処理の結果待っている状態(表の⾏更新、ディスクI/O処理、ネットワー クI/O処理など) • 図は、スレッドやタスクのライフタイムをグラフィカルに表したものです。Wait分析では、Wait部分の詳細をみて、Waitのタイプごとに費やされた時 間を確認するところからはじめます。Wait分析により、どこで待たされているかを把握したら、以下のような観点でパフォーマンス改善に向けた調査 を進め、Waitの時間を減らせないか検討します。 - Disk readでページフォルトは発生していないか • 発生していればプールサイズは適切か - どのプログラムでDisk read/writeが発生しているか • 排除や軽減できる不必要なI/Oは発生していないか • 非同期I/Oで実⾏できないか - Record Lockは適切か • 不要にRecord Lockしていないか - どのファイルがJournalされているか • 全テーブルがジャーナルされているか、ジャーナルの構成は適切か © 2016 IBM Corporation Q4:トランザクション特性に応じたパフォーマンス改善を目指す といいますが、どのようなタイプがありますか A4:代表例を以下に示します。稼働するトランザクションの特性を理解し、タ イプに合わせたパフォーマンス改善策を検討することが効果的です。 • トランザクション特性のタイプに合わせ、パフォーマンス改善を対応する -I/O依存のトランザクション • ⾼速なディスク装置、⼤容量のディスクキャッシュ、SSD化などによるディスクI/Oの効率化によるパ フォーマンス改善を検討 -リソース依存のトランザクション • アプリケーション/プログラム間で使⽤するクリティカルな共有リソースの影響を排除しパフォーマンス改 善を検討 -CPU依存のトランザクション • プロセッサーのクロックやパイプラインの効率化によるパフォーマンス改善を検討 © 2016 IBM Corporation Notes • Wait分析でパフォーマンス改善の検討を進める上で、実⾏するトランザクションの特性を把握し、特性に⾒合ったアプローチをすることも重要です。 • 例えばI/O依存のトランザクションは、Wait分析でみると相当量のdisk waitが混在するタイプです。このようなトランザクションの場合には、⾼速な ディスク装置、⼤容量のディスクキャッシュ、SSD化などによるディスクI/Oの効率化によるパフォーマンス改善を検討します。 • 次にリソース依存のトランザクションの場合です。このようなトランザクションの場合は、アプリケーション/プログラム間で使⽤するクリティカルな 共有リソースの影響を排除しパフォーマンス改善を検討します。 • 最後はCPU依存のトランザクションです。Wait分析でみると、I/OやWait時間がほどんどなく相当量がCPU時間であるタイプが該当します。このような トランザクションの場合には、プロセッサーのクロックやパイプラインの効率化によるパフォーマンス改善を検討します。 © 2016 IBM Corporation Q5:Power SystemsのSMT機能とは何ですか A5:複数スレッドを1つのプロセッサーで同時実⾏させ、システム全体のス ループットを向上させる機能です。 • Simultaneous Multithreading(SMT)機能の特徴は以下の通りである -POWER8 プロセッサーはSMT1/SMT2/SMT4/SMT8 をサポート • POWER8 SMT1は POWER7 SMT1と比較し性能向上 • POWER8 SMT8により更に性能向上 4 3.5 3 2.5 -SMTはシステム全体のスループットを向上させるが、 個々のスレッドの実⾏速度を上げるものではない • バッチアプリケーション等のシングル・スレッド・アプリケーション ではSMTの効果は得られない 2 1.5 1 0.5 0 P7 P8 P8 P8 P8 SMT1 SMT1 SMT2 SMT4 SMT8 © 2016 IBM Corporation Notes • Power Systemsで実装されているSimultaneous Multithreading(SMT)は、1つのプロセッサーで複数スレッドを同時実⾏させる技術です。 SMTは、1 つのプロセッサーで複数スレッドを同時実⾏させる技術です。 POWER8プロセッサーでは、コアあたり8スレッドを同時実⾏できるSMT8がサポートさ れました。POWER5プロセッサーで初めてSMT2のSMT機能が実装されてから、POWER7プロセッサーでSMT4、POWER8プロセッサーでSMT8と、 Power Systemsでは⻑年にわたりSMTをサポートし進化させてきました。 • POWER8プロセッサーでは、SMT1/ SMT2/ SMT4/SMT8がサポートされます。 • POWER8プロセッサーになりパフォーマンスは更に向上しました。 図に示されているように、POWER8プロセッサーのSMT1(シングル・スレッド・ モード) とPOWER7プロセッサーのSMT1を比較すると性能が向上していることがわかります。 更にPOWER8プロセッサーのSMT8になると、スルー プットが向上していることがわかります。 • ここで注意して頂きたいことは、SMT機能はあくまでもシステム全体のスループット向上のための技術であり、個々のスレッドの実⾏速度を⾼める技術 ではないことです。特にバッチアプリケーションのようなシングル・スレッド・アプリケーションの場合は、1スレッドしか使⽤しないため、SMTの効 果は得られません。 © 2016 IBM Corporation Q5: Power SystemsのSMT機能とは何ですか (続き) -アプリケーションのスループットを最⼤化するために、ワークロードに合わせてプロセッサー・コ アあたりの実⾏スレッド数を最適化(Intelligent Threadsテクノロジー) -稼働するワークロードに合わせ、LPAR単位でSMTモードの設定が可能 -IBM iを導⼊するサーバーおよびOSバージョンの組み合わせにより、SMTモードのデフォルト値が 決定 プロセッサー 互換モード サポートされるSMTモード POWER8 SMTモードのデフォルト値 IBM i 7.1 IBM i 7.2 IBM i 7.3 ST,SMT2, SMT4, SMT8 SMT4 SMT8 SMT8 POWER7 ST,SMT2,SMT4 SMT4 SMT4 SMT4 POWER6+ ST,SMT2 SMT2 SMT2 - POWER6 ST,SMT2 SMT2 SMT2 - -参考)テクニカル・フラッシュ:IBM i環境でのSMTサポートについて • http://www.ibm.com/support/docview.wss?uid=jpn1J1012278 © 2016 IBM Corporation Notes • POWER8プロセッサーでも引き続きIntelligent Threadsテクノロジーが採⽤されています。 Intelligent Threadsテクノロジーは、最適なスレッド・ モード(コアあたりに実⾏させるスレッド数)を選択して、ワークロードを最適化し、アプリケーションのパフォーマンスを改善します。 • SMTモードは、ワークロードの特徴に応じて区画ごとに個別に設定することが可能です。例えば夜間バッチ処理のような1スレッドからなる処理は、シ ングル・スレッド・モードに設定し、WebSphere Application Server等のJavaベースのプログラムやLotus Domino等のマルチスレッド化されたアプ リケーションを実⾏する際はSMT8に設定することで、レスポンス・タイムを短縮させることが可能です。 • IBM iを導⼊するサーバーおよびOSバージョンの組み合わせにより、SMTモードが決定します。ここで注意が必要なのは、POWER8プロセッサー搭載 サーバーにIBM i 7.1を導⼊した場合は、省略時のSMTモードはSMT4になるということです。これはPOWER7ベースもしくはそれ以前のプロセッ サー・ベース・サーバーでIBM i 7.1を使⽤しているお客様のPOWER8ベース・サーバーへの移⾏をよりスムーズにすることを目的として設定されてい ます。 © 2016 IBM Corporation Q5: Power SystemsのSMT機能とは何ですか (参考情報) • プロセッサーの1サイクルで、実⾏ユニットは同時並⾏して処理され、通常⼀度に全てのユニッ トは使わない -POWER8プロセッサーは16の実⾏ユニットが存在 • ロード/ストアユニット、固定小数点演算ユニ ット、浮動小数点演算ユニット、分岐ユニット、条件レジス ター処理ユニットなど • SMTは、プロセッサーの1サイクルでスレッドが使わないユニットを、同時実⾏可能な別ス レ ッドが利⽤する機能 <例>SMT機能オン/オフのスレッド実⾏イメージ SMT機能によるスループットの向上 右図で合計8スレッド(注)を実⾏するのに、 SMT機能がオフでは64サイクル SMT機能がオンでは18サイクルかかった (注)16ユニットを簡略化して表現 SMT機能は個々のスレッド実⾏速度への効果なし スレッド1はSMT機能がオフでは7サイクル SMT機能がオンでは9サイクルかかった 同⼀の演算ユニットに対するスレッド間の競合や Wait State Taskの存在が影響 © 2016 IBM Corporation Notes • ここでは参考として、SMT機能の動きをもう少し細かくご紹介します。POWER8プロセッサーでは、実⾏ユニット数が向上され、ロード/ストアユニッ ト、固定小数点演算ユニット、浮動小数点演算ユニット、分岐ユニット、条件レジスター処理ユニットなど16の実⾏ユニットがあります。プロセッ サーの1サイクルでこれらのユニットは同時並⾏して処理を⾏うことができますが、通常のスレッドは⼀度にこれらのユニットをすべて使うことはあり ません。そこで、プロセッサーの1サイクルのうちにスレッドで使われないユニットを、同時実⾏可能な別のスレッドから利⽤できるようにする仕組み がSMTです。 • 図は、例としてPOWER8プロセッサーにおいてSMT機能をそれぞれオフ/オンした時の2つのスレッドの実⾏状態を示しています。ここでは16の実⾏ユ ニットの全ては表現せず簡略化していますが、図中の個々の四角がそれぞれ実⾏ユニットを表し、プロセッサー・サイクルごとに区切られている状態 を表しています。 • SMT機能がオフになっている上図では8スレッド処理の実⾏に合計64プロセッサー・サイクルかかります。⼀⽅SMT機能がオンになっている下図では 18プロセッサー・サイクルで処理が完了しており、⼤幅なスループットの向上がみられます。 • SMT機能の注意点として、SMT機能はあくまでもシステム全体のスループット向上のための技術であり、個々のスレッドの実⾏速度を⾼める技術では ないことを挙げました。次に個々のスレッドの実⾏速度を確認してみます。 ⻩⾊で示されたスレッド1の実⾏時間は、SMT機能がオフになっている上 図では7プロセッサー・サイクルです。⼀⽅SMT機能がオンになっている下図は9プロセッサー・サイクルで、時間がかかっています。この理由はいく つか要因があります。例えばSMT機能では8つのスレッドから取り出された命令を組み合わせ効率のよい処理をスケジューリングしますが、同⼀の演 算ユニットを8つのスレッドが同時に利⽤するタイミングが発生し競合する可能性があります。またSMT機能を利⽤しない場合、実⾏中のスレッドか ら取り出された命令は、即座に希望の実⾏ユニットを利⽤できますが、SMT機能を利⽤した場合には、他のスレッドから取り出された命令の実⾏のた めに、待ち時間が発生する可能性もあるからです。 © 2016 IBM Corporation © IBM Corporation 2016. All Rights Reserved. ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独⾃の⾒解を反映したものです。それらは情報提供の目的のみで提供されており、いかなる参加者に対しても法律的またはその他 の指導や助⾔を意図したものではなく、またそのような結果を生むものでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努⼒しましたが、「現状のまま」提供され、明示または暗示にかかわら ずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使⽤によって、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責任を負わないものとします。 本講演資料に含まれている内容は、IBM またはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使⽤を規定する適⽤ライセンス契約の条項を変更することを意図したものでもなく、またそのような結 果を生むものでもありません。 本講演資料でIBM製品、プログラム、またはサービスに⾔及していても、IBMが営業活動を⾏っているすべての国でそれらが使⽤可能であることを暗示するものではありません。本講演資料で⾔及している製品リリース日付や製品機能 は、市場機会またはその他の要因に基づいてIBM独⾃の決定権をもっていつでも変更できるものとし、いかなる⽅法においても将来の製品または機能が使⽤可能になると確約することを意図したものではありません。本講演資料に含ま れている内容は、参加者が開始する活動によって特定の販売、売上⾼の向上、またはその他の結果が生じると述べる、または暗示することを意図したものでも、またそのような結果を生むものでもありません。 パフォーマンスは、管理 された環境において標準的なIBMベンチマークを使⽤した測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、⼊出⼒構成、 ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使⽤したか、またそれらのお客様が達成した結果の実例として示されたものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場 合があります。 IBM、IBM ロゴ、ibm.com、[当該情報に関連し商標リスト中に掲載されたIBMブランド、製品名称があれば追加する]は、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。 他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。 現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。 Adobe, Adobeロゴ, PostScript, PostScriptロゴは、Adobe Systems Incorporatedの米国およびその他の国における登録商標または商標です。 IT Infrastructure Libraryは英国Office of Government Commerceの⼀部であるthe Central Computer and Telecommunications Agencyの登録商標です。 インテル, Intel, Intelロゴ, Intel Inside, Intel Insideロゴ, Intel Centrino, Intel Centrinoロゴ, Celeron, Intel Xeon, Intel SpeedStep, Itanium, およびPentium は Intel Corporationまたは子会社の米国およびその他の国における 商標または登録商標です。 Linuxは、Linus Torvaldsの米国およびその他の国における登録商標です。 Microsoft, Windows, Windows NT および Windowsロゴは Microsoft Corporationの米国およびその他の国における商標です。 ITILは英国The Minister for the Cabinet Officeの登録商標および共同体登録商標であって、米国特許商標庁にて登録されています。 UNIXはThe Open Groupの米国およびその他の国における登録商標です。 Cell Broadband Engineは、Sony Computer Entertainment, Inc.の米国およびその他の国における商標であり、同社の許諾を受けて使⽤しています。 JavaおよびすべてのJava関連の商標およびロゴは Oracleやその関連会社の米国およびその他の国における商標または登録商標です。 Linear Tape-Open, LTO, LTOロゴ, UltriumおよびUltriumロゴは、HP, IBM Corp.およびQuantumの米国およびその他の国における商標です。 © 2016 IBM Corporation 18