JP2008071237A - ハードウェアモニタを用いた性能評価システム及び再構築可能な計算機システム - Google Patents

ハードウェアモニタを用いた性能評価システム及び再構築可能な計算機システム Download PDF

Info

Publication number
JP2008071237A
JP2008071237A JP2006250645A JP2006250645A JP2008071237A JP 2008071237 A JP2008071237 A JP 2008071237A JP 2006250645 A JP2006250645 A JP 2006250645A JP 2006250645 A JP2006250645 A JP 2006250645A JP 2008071237 A JP2008071237 A JP 2008071237A
Authority
JP
Japan
Prior art keywords
memory
memory access
access request
response time
measurement result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006250645A
Other languages
English (en)
Other versions
JP4839164B2 (ja
Inventor
Takeshi Tanaka
剛 田中
Shiyouki Murakami
祥基 村上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006250645A priority Critical patent/JP4839164B2/ja
Priority to US11/771,397 priority patent/US7577770B2/en
Publication of JP2008071237A publication Critical patent/JP2008071237A/ja
Application granted granted Critical
Publication of JP4839164B2 publication Critical patent/JP4839164B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】アプリケーションプログラムの性能のボトルネックが、メモリやチップセットであるか否かを迅速に判定する。
【解決手段】CPUとメモリ及びI/Oインターフェースを接続するコントローラとを備えた計算機システムにおいて、前記コントローラ6は、メモリに対するアクセス要求を受け付けると、当該メモリアクセス要求に対する応答時間を測定する応答時間測定部(SUB120)と、メモリアクセス要求の発行回数を測定する度数カウント部(インクリメンタ122)と、応答時間に対応する前記発行回数とを関連づけた測定結果を格納する測定結果記憶部(レジスタファイル118)と、測定結果の読み出し要求があったときには、前記測定結果記憶部に格納された測定結果を出力する測定結果制御部パフォーマンスモニタ制御ユニット105と、を備える。
【選択図】図2

Description

本発明は、ハードウェアモニタを搭載した計算機システムに関し、当該ハードウェアモニタで採取した情報を元に性能を評価する性能評価システム、並びに、性能評価結果を用いてハードウェア構成を再構成する計算機システムに関する。
データベースサーバやアプリケーションサーバ等の計算機システムで性能のチューニングを行う場合、始めに性能のボトルネック解析をする。一般的な性能ボトルネックの解析方法は、非特許文献1、非特許文献2で述べられているように、OSのパフォーマンスモニタ等で得られたCPU使用率やCPU待ち行列長、メモリのページングやスワップ、I/Oスループット等から総合的に判断して、ボトルネック箇所を特定することが常套手段となっている。
一般に、サーバのトランザクション処理のスループットは以下の式で求められる。
(スループット性能)=(CPU数×CPU周波数×定数)÷(CPUの実行ステップ数×CPI)
ここで、上記定数はスループットの値を単位時間当たり、あるいは単位秒あたりに変換する数を指す。CPIは、CPUの1命令あたりの実行サイクル数のことである。性能を改善するためには、CPU数、CPU周波数を大きくし、実行ステップ数やCPIを小さくすればよい。
CPIは以下の式で求められる。
CPI=CPI0+(L1キャッシュのミス率−L2キャッシュミス率)×(L2キャッシュのメモリレイテンシ)×Kc+(L2キャッシュのミス率)×(主記憶のメモリレイテンシ)×Km
但し、CPI0:1次キャッシュが無限の容量ある場合の1命令あたりの実行サイクル数
Kc、Km:メモリアクセスが多重実行される場合を考慮したときの定数値
前記の式から、CPU数やCPU周波数を向上すれば性能向上することが分かる。これらは、サーバ上に実装するCPU数と使用するCPU数によって決まる。CPUの実行ステップ数の削減は、コーディング上の工夫やコンパイラによるコードの最適化が従来から取り組まれてきた。
CPIの削減は、コンパイラやCPUの命令スケジューラで命令の並列実行度を高める技術が提案されてきた。しかし、メモリレイテンシはシステムの稼働状態やハードウェアの構造によって異なるため、ワークロードのサイズによっては、メインメモリのレイテンシにより大きく性能が変わるケースがあることが知られている。
これに対して、メモリレイテンシの計測結果を用いて命令スケジューリングをする方法が検討されている(例えば、特許文献1)。この方法は、プロセッサで実行する命令のメモリレイテンシをサンプリングし、命令とメモリレイテンシの関係を記録しておく。命令スケジューラはメモリレイテンシが大きな命令は出来るだけ先行して実行するように命令の実行順序を変更する。または、プリフェッチ命令を挿入する場所を決定する。この方法により、プログラムが動作するサーバのメモリレイテンシにあわせたチューニングをし、CPU時間というハードウェアリソースの有効利用が可能になる。
米国特許6,092,180号 「UNIXシステムパフォーマンスチューニング」,Gian-Paolo D. Musumeci, Mike Loukides著, 砂原 秀樹監訳, 岡島順次郎, 高橋敏明訳, O'REILLY, 2003 (原本題名 System Performance Tuning) 「データベースチューニング256の法則」, Chris Looseley, Frank Douglas著, 間宮あきら訳, 日経BP社 (原本題名 High-Performance Client/Server)
しかしながら、上記のようなOSのパフォーマンスモニタを用いる手法では、ハードウェアが性能のボトルネックになっているのか直接観測が出来ないという問題がある。さらに、上記ワークロードのサイズと、メインメモリのレイテンシによる性能の変化については、CPUにパフォーマンスモニタを搭載し、このパフォーマンスモニタでキャッシュミス率や命令パイプラインでキャッシュミスしてストールしている時間の平均値を計測し、命令レベルでの解析をして手作業でコーディングの最適化をしていく手法が考えられる。
しかし、この手法はコンパイラやCPUにのみ適用され、サーバを構成するためのコンポーネント、例えば、チップセットに対しては適用ができない。
更に、一般に、実行可能なバイナリコードとして配布または購入したアプリケーションプログラムを稼働させるシステムでは、コードレベルのチューニングは不可能なため、上記のようなコーディングの最適化による性能ボトルネック箇所の特定は困難である。
また、サーバなどの計算機では複数のCPUを搭載するマルチプロセッサが使われることが多い。特に少数のCPUを搭載した計算機と、多数のCPUを搭載した計算機では、前者はメモリレイテンシが短いが、OLTP(OnLine Transaction Processing)システムに代表される多重プロセスまたは多重スレッドのアプリケーションでは十分に性能が上げられず、複数のサーバを並べて性能向上を図るクラスタシステムというアプローチがとられることが多い。一方、後者の多数のCPUを搭載した計算機では、多重処理のアプリケーションでは負荷にあわせて性能をスケーラブルに向上できるが、複数のCPU間でキャッシュメモリのコヒーレンシ制御をとる必要がある為、ハードウェアが複雑化し、メモリレイテンシが伸びる傾向がある。このため、同一プロセスまたは同一スレッド数のアプリケーションでは、少数のCPUを搭載した小規模サーバの方が、性能が高いケースがある。これらの使い分けは、実際の業務アプリケーションや標準ベンチマークを動かしてスケーラビリティを評価するなど、評価のための工数が増大する、という問題点がある。
そこで本発明は、上記問題点に鑑みてなされたもので、内部構造を変更することができないCPUや、コーディングの最適化を行うことのできないアプリケーションプログラムの性能のボトルネックが、メモリやチップセットであるか否かを迅速に判定することを第1の目的とする。
また、サーバなどの計算機の性能情報を採取する際に、性能情報を取得するソフトウェアが、測定対象のアプリケーションからCPU時間などのリソースを奪ってしまうのを抑制し、測定対象とするシステムに評価の為の負荷が加わるのを防ぐことを第2の目的とする。
さらに、実際のアプリケーションでのワークロードに適合したシステム構成を、メモリレイテンシの測定を基準にして自動的にシステム管理者に提案することを第3の目的とする。
本発明は、少なくとも1つのCPUと、前記CPUとメモリ及びI/Oインターフェースを接続するコントローラとを備えた計算機システムにおいて、前記コントローラは、前記メモリに対するアクセス要求を受け付けると、当該メモリアクセス要求に対する応答時間を測定する応答時間測定部と、前記メモリアクセス要求の発行回数を測定する度数カウント部と、前記応答時間に対応する前記発行回数とを関連づけた測定結果を格納する測定結果記憶部と、前記測定結果の読み出し要求があったときには、前記測定結果記憶部に格納された測定結果を出力する測定結果制御部と、を備える。
また、前記管理端末は、前記測定結果制御部から取得した測定結果から、前記メモリアクセス要求の応答時間と、当該応答時間に対応するメモリアクセス要求の発行回数から、メモリアクセスの特性を推定する。
したがって、本発明は、メモリとCPUの間に配置されたコントローラは、メモリレイテンシ(応答時間)をメモリアクセス要求の頻度に対応付けて測定することができ、CPUに性能測定の負荷をかけることなく性能測定を実施できる。測定結果から、内部構造を変更することができないCPU3−1〜3−Mや、コーディングの最適化を行うことのできないアプリケーションプログラムの性能のボトルネックが、メモリやチップセット(コントローラ)であるか否かを迅速に判定することが可能となる。
また、多数のノードや多数のCPUを備えた計算機システムでは、システム管理者がアプリケーションに応じた構成を検討する際には、アプリケーション毎のメモリアクセスの特性に基づいて、計算機システムの構成変更を支援することが可能となる。
以下、本発明の一実施形態を添付図面に基づいて説明する。
<対象とする計算機システム>
図1は、第1の実施形態を示し、本発明のハードウェアモニタを実装した計算機システムのブロック図である。
図1において、計算機システム1は、複数のノード2−1〜2−N(但し、Nは整数)で構成されており、各ノード2−1〜2−Nは、クロスバスイッチ14を介して相互に接続される。一つのノード(例えば、ノード2−1)には、キャッシュメモリを含む複数のCPU3−1〜3−M(Mは1以上の整数)と、プログラムやデータを格納するメインメモリ5と、ネットワーク(LAN)13やストレージ装置(DISK)12と接続するためのI/Oインタフェース7と、ノード2−1のハードウェアを管理するボードマネジメントコントローラ10(以降、BMCと略す)と、CPU3−1〜3−Mとメインメモリ5とi/Oインターフェース7及びBMCとを相互に接続するチップセット6(以下、ノードコントローラと呼ぶことにする)とを含んでいる。なお、他のノード2−2〜2−Nも同様に構成される。
CPU3−1〜3−Mは、CPUバス(またはフロントサイドバス)4を介してノードコントローラ6と接続されている。各ノードに搭載されているBMC10は、SVP(サービスプロセッサ)15と接続されている。
SVP15は、シリアルケーブルまたはローカルエリアネットワーク17を介して管理コンソール16と接続されている。ノードコントローラ6は、トランザクション処理ユニット8とトランザクション処理制御ユニット9とパフォーマンスモニタ11から構成され、これらはノードコントローラ6の中で相互に接続されている。
<動作概要>
以下に、ノード2−1〜2−NのCPUによるメインメモリ5へのアクセス動作及び管理コンソール16から計算機システム1へのアクセスについて説明する。なお、以下の説明では、CPU3−1〜3−Mは同一の構成、動作であるので、CPU3−1のみについて説明し、他のCPUの説明は省略する。
CPU3−1が内蔵するキャッシュメモリ(図示省略)に必要なデータが存在しない場合、メインメモリ5に必要なデータを取りに行く為、メモリアクセス要求をCPUバス4に発行する。
同一CPUバス4に接続された他のCPU3−2〜3−Mのキャッシュに、CPU3−1が要求したデータが存在する場合、CPU間でCPUバス4を介してデータが転送される。同一CPUバス4上にデータが存在しない場合、当該メモリアクセス要求はノードコントローラ6内部のトランザクション処理ユニット8に発行される。
トランザクション処理ユニット8は、キャッシュメモリをもっているユニット(ここでは、全ノードのCPU)に対してメモリアクセス要求を発行し、各CPU3−1〜3−Mのキャッシュメモリのコヒーレンシを維持する為のスヌーピング処理を行う。同時に、自ノード2−1に搭載されたメインメモリ5宛ての要求であるか、他ノード2−2〜2−Nに搭載されたメインメモリ5宛ての要求か判定し、要求するアドレスが設定されているノードにメインメモリ読出しの要求を転送する。
該当するメインメモリ5から読み出されたデータは、他ノードからはクロスバスイッチ14、トランザクション処理ユニット8とCPUバス4を介して要求を発行したCPU3−1へ転送され、自ノードであれば、トランザクション処理ユニット8とCPUバス4を介して、メモリアクセス要求発行元のCPU3−1に転送される。
メモリアクセス要求(メモリ要求トランザクション)は、要求の種類、トランザクションのID番号、要求する物理アドレスから構成されている。本実施形態の計算機システム1では、メモリアクセス要求と、その応答であるメモリアクセス応答(メモリ応答トランザクション)は、応答の種類とメモリ(メインメモリ5またはキャッシュメモリ)から読み出したデータとトランザクションID番号から構成されている。このトランザクションID番号はメモリアクセス要求とメモリアクセス応答で同じ番号となっている。このため、トランザクションのID番号だけで要求とその応答の対応関係が判定できる。
システム管理者は、管理コンソール16からSVP15に対して、システムのリセットや、立ち上げ等の要求を発行する。SVP15は、これらの要求を対象となるノード2−1〜2−NのBMC10に伝える。BMC10は、トランザクション処理制御ユニット9に対して前記からの要求を転送する。
そして、トランザクション処理制御ユニット9は、トランザクション処理ユニット8及びパフォーマンスモニタ11の初期化や動作モード変更の為のメモリマップドレジスタ106(図2参照)へのデータの読み書きを行い、システム(またはノード)の初期化や動作モードの切り替えを行う。なお、メモリマップドレジスタ106は、予めメインメモリ5の所定の位置に設定されたものである。各ノード2−1〜2−Nは、SVP15からの設定コマンドで、それぞれ別の計算機システムとして動作するように設定できる。つまり、各ノードが個々の計算機として動作し、別のOSが起動する運用形態が可能である。
<ノード数とメモリレイテンシの関係>
複数のノード2−1〜2−Nをクロスバスイッチ14を介して接続し、ひとつの計算機システムとして構成する場合、メモリアクセス要求を発行したCPUと同じノードに搭載されているメインメモリ(以降、ローカルメモリと呼ぶ)のメモリレイテンシ(応答時間または遅延時間)と、メモリアクセス要求を発行したCPUと異なるノードに搭載されたメインメモリ(以降、リモートメモリと呼ぶ)のメモリレイテンシでは、ノード間の通信が存在しない分、ローカルメモリのメモリレイテンシのほうがリモートメモリのメモリレイテンシよりも短い。ローカルメモリとリモートメモリを物理メモリ空間上に配置する方法は、大きく分けて2種類存在する。
一つは、CPU3−1〜3−Mのキャッシュメモリのラインサイズ程度で各ノード2−1〜2−Nを順番に配置していくインターリーブモードと、ノード2−1〜2−Nごとに連続したアドレス空間を与え、メモリ領域を積み上げていくNUMA(Non Uniform Memmory Access)モードがある。NUMAモードでは、各ノード2−1〜2−Nに属しているCPU3−1〜3−M、物理メモリ空間、I/Oインタフェース7の関係をファームウェアがOSに通知して、OSがプロセスやスレッドのスケジューリングに反映させる。
ここで、上記インターリーブモードは、どのようなメモリアクセスでも、大抵は以下の式で与えられる。
(インタリーブモードの平均メモリレイテンシ)={(ローカルメモリアクセスレイテンシ)+(リモートメモリアクセスレイテンシ)×(ノード数−1)}÷(ノード数)
ローカルメモリに比べてリモートアクセスのレイテンシが非常に大きい場合、平均メモリレイテンシは大きくなってしまうため、NUMAモードを使用するケースもある。この場合、OSならびにアプリケーションプログラムレベルで、メモリアクセスがローカルメモリ領域に収まるようにチューニングをする必要がある。ただし、物理メモリ空間で一部はインタリーブモードで、一部はNUMAモードにするケースも可能である。
<パフォーマンスモニタの構成>
以下に、ノードコントローラ6に配置されたパフォーマンスモニタ11の構成を、図2を用いて説明する。
ノードコントローラ6ではパフォーマンスモニタ11、トランザクション処理ユニット8、トランザクション処理制御ユニット9は、それぞれ、相互に接続されている。トランザクション処理制御ユニット9は、診断パス104で、図1のBMC10と接続されている。トランザクション処理ユニット8は、CPUバス4がCPU3−1〜3−Mに接続され、メモリチャネル124がメインメモリ5に接続され、I/Oチャネル125でI/OブリッジまたはI/Oインタフェース7と接続されている。
パフォーマンスモニタ11は、CPU側からのメモリアクセス要求の到着信号を受け付ける要求トランザクションレジスタ111と、メインメモリ5側から応答を受け付ける応答トランザクションレジスタ112と、パフォーマンスモニタ11を制御するパフォーマンスモニタ制御ユニット105と、予めメインメモリ5側に設定したメモリマップドレジスタ106と、出力する信号を選択するセレクタ113、セレクタ114と、CAM(Content Addressable Memory)115と、CAM115への書き込みを制御するCAM書き込み制御ユニット116と、レジスタファイル(レジスタアレイ)117,118と、所定の周期でカウンタ値を更新するフリーランカウンタ119と、減算器120と、ANDゲート121及びインクリメンタ122で構成される。
パフォーマンスモニタ制御ユニット105は、トランザクション処理ユニット9及びメモリマップドレジスタ106と接続されている。
セレクタ113は、要求トランザクションレジスタ111とメモリマップドレジスタ106のトランザクションタイプレジスタ108と接続される。セレクタ113の出力は、CAM115、CAM書き込み制御ユニット116、レジスタファイル117と接続されている。
応答トランザクションレジスタ112と、メモリマップドレジスタ106のイネーブルレジスタ107とCAM115の出力信号は、ANDゲート121に入力され、ANDゲート121の出力は、レジスタファイル118に接続されている。
CAM書き込み制御ユニット116は、セレクタ113の出力信号とCAM115の出力である一致信号を入力とし、CAM115のデータ書き込みアドレス信号と接続されている。
CAM115の出力の一致アドレス信号は、レジスタファイル117の読み出しアドレス入力に接続されている。
フリーランカウンタ119は、レジスタファイル117の書き込みデータ入力に接続されている。
レジスタファイル117の出力の読み出しデータ信号と、フリーランカウンタ119は、減算器120の入力に接続される。
減算器120の出力信号と、セレクタ114とレジスタファイル118の書き込みアドレス(Write Address)入力に接続されている。
レジスタファイル118の出力の読み出しデータ信号は、インクリメンタ122に入力に接続される。インクリメンタ122の出力は、レジスタファイル118の書き込みデータ入力に接続されている。
メモリマップドレジスタ106のリードアドレスレジスタ109と、減算器120の出力信号は、セレクタ114に入力される、また、セレクタ114の入力を選択する信号としてメモリマップドレジスタ106のイネーブルレジスタ107が入力され、このイネーブルレジスタ107が”1”のと減算器120が、”0”のとき、リードアドレスレジスタ109が選択される。セレクタ114の出力は、レジスタファイルの読出しアドレス(Read Address)入力に接続されている。
レジスタファイル118の読み出しデータ(Read Data)出力は、メモリマップドレジスタ106の度数レジスタ110に接続されている。
CAM115と、レジスタファイル117及びレジスタファイル118は、ライトイネーブル(Write Enable)が”1”のとき、書き込みアドレス(Write Address)入力で指定されたアドレスのエントリに書き込みデータ(Write Data)入力のデータを書き込む設計となっている。
メモリマップドレジスタ106の計測期間レジスタ(MEASUREMENT TIME)130は、タイマ131と接続され、タイマ131は、イネーブルレジスタ107と接続されている。
以上の構成により、後述するようにローカルメモリやリモートメモリのレイテンシを測定し、計算機システム1の性能のボトルネックが、メインメモリ5やノードコントローラ6にあるか否かの判定を行うためのヒストグラムを提供するのである。
パフォーマンスモニタ11の概要は、メモリアクセス要求トランザクションの開始時刻と、メモリ応答トランザクションの到着時刻からレジスタファイル117、118及び減算器120等のハードウェアにより、メモリアクセス要求トランザクションのあったアドレスのレイテンシとアクセス頻度を測定し、該当アドレスのアクセス頻度をレジスタファイル118(測定結果記憶部)に保持するものである。つまり、レジスタファイル118には、測定したレイテンシ(応答時間)に対応するメモリアクセス要求トランザクションの発行回数が関連づけられて格納されることになる。
<パフォーマンスモニタの動作>
上記図2に示したのパフォーマンスモニタ11の動作について、図面を用いて説明する。
メモリアクセス要求のメモリレイテンシのヒストグラムを作成する処理は、図3のフローチャートで示すように、以下の4段階に分かれる。なお、図3のフローチャートは、パフォーマンスモニタ11のパフォーマンスモニタ制御ユニット105が実行する。
ステップ0:パフォーマンスモニタ11の設定、並びに測定開始(図4)
ステップ1:メモリ要求トランザクションのトランザクションIDと到着時刻を登録する(図5(a)及び図6)。
ステップ2:メモリ要求トランザクションの応答である応答トランザクションのトランザクションIDと到着時刻を用いてレイテンシを計算し、その出現頻度をカウントする(図5(b)及び図7)。
ステップ3:測定の停止、並びに計測したメモリレイテンシの度数分布を管理コンソール16で読み出し、ヒストグラムを表示する(図10、図8)。
メモリレイテンシのヒストグラム計測では、計測開始後、ステップ1とステップ2の処理は平行して実行され、それぞれ繰り返し実行される。計測終了後、ステップ3を実行する。
以下、各処理段階の詳細について説明する。
<ステップ0>
図3に示したステップ0の動作を図4のフローチャートで説明する。
始めに、管理コンソール16からSVP15経由等でBMC10にアクセスし、診断パス104を使ってパフォーマンスモニタ11のメモリマップドレジスタ106のトランザクションタイプレジスタ108に、計測対象のトランザクションの種類を表すコードを登録する(ステップ270)。
次に、管理コンソール16からSVP15経由等でBMC10にアクセスし、診断パス104を使ってパフォーマンスモニタ11のメモリマップドレジスタ106のイネーブルレジスタ107に”1”を設定する。イネーブルレジスタ107が“1”である期間中は、パフォーマンスモニタ11は計測を実行する(ステップ271)。ここでは、”1”を設定したときにパフォーマンスモニタ11の測定を開始し、”0”のときパフォーマンスモニタ11でのメモリレイテンシの測定を停止することを意味する。
パフォーマンスモニタ11での計測終了時には、イネーブルレジスタ107を直接SVP15からアクセスして“0”を設定して計測を終了する方法があるが、他に一定時間計測した後に、自動的に終了するオプションもある。これは計測開始前に、計測期間レジスタ(MEASUREMENT TIME)130に計測マシンサイクル数を設定し、イネーブルレジスタ107に“1”を設定すると計測期間レジスタで設定したサイクル数をタイマ131がカウントした後、タイマ131がイネーブルレジスタ107を“0”に設定して自動的に計測を終了させるようになっている。
<ステップ1>
図3のステップ1の概要を図5(a)を用いて説明する。トランザクション処理ユニット8からパフォーマンスモニタ11に発行されたメモリ要求トランザクションのトランザクションID210をCAM115に登録する(205)。図5(a)では、Tx0というトランザクションIDをエントリ番号#0に登録している。ところで、CAM115は、連想メモリとも呼ばれる特殊なメモリで、CAM115内部に格納された複数のデータと、外部からの参照データを平行して比較し、一致するデータが存在した場合、一致信号とそのデータが格納されているエントリのアドレスを出力するメモリである。
CAM115にデータを登録すると同時に、フリーランカウンタ119の値を、レジスタファイル117のCAM115でデータを書き込んだエントリと同じ番号のエントリに書き込む(207)。図5(a)では、T0という値をエントリ#0に書き込んでいる。
次に、ステップ1の詳細について、図6を参照しながら以下に示す。
トランザクション処理ユニット8が、CPU3−1〜3−Mで発行されたメモリアクセス要求トランザクション(Memory Request Transaction)をCPUバス4を経由して受信する。その直後、トランザクション処理ユニット8から、パフォーマンスモニタ11へ当該メモリアクセス要求の到着信号(T_START)、トランザクションの種類、トランザクションIDが送信され、パフォーマンスモニタ11は、これらを要求トランザクションレジスタ111(図5(a))に登録する(ステップ250)。
このとき、メモリアクセス要求の到着信号T_STARTは、トランザクションが有効であるかどうか判定することに使用される。ここでは、T_STARTが”1”のとき、トランザクションが有効であるという意味とする。
メモリアクセス要求の到着信号T_STARTが”1”であり、かつ、トランザクションの種類がトランザクションタイプレジスタ108の内容と一致し、かつトランザクションイネーブルレジスタが”1”のとき、セレクタ113の出力は”1”となり、CAM115のライトイネーブル入力とレジスタファイル117のライトイネーブル入力が”1”に活性化される(ステップ251)。
このとき、CAM115の書き込みデータに入力されているトランザクションIDが、CAM書き込み制御ユニット116が出力している書き込みアドレスで指定されたCAM115のエントリに書き込まれる。同時に、レジスタファイル117でも前記書き込みアドレスで指定されているエントリに、フリーランカウンタ119の値が格納される(ステップ252)。つまり、レジスタファイル117の該当エントリには、フリーランカウンタ119が指し示す時刻が設定され、この時刻はメモリアクセス要求トランザクションの開始時刻となる。
CAM書き込み制御ユニット116は、CAM115のデータを格納するエントリの使用状態を管理しており、未使用のエントリのリストから順に書き込みアドレスをCAM115に発行する。このエントリにデータが書き込まれたら、未使用のエントリのリストからはずす処理をする。また、以下に示すステップ2の検索処理でヒットしたエントリは、未使用のエントリとして再利用する。
<ステップ2>
図3のステップ2の概要を図5(b)を用いて説明する。本実施形態の計算機システム1は、トランザクションIDは、メモリ要求トランザクションとその応答であるメモリ応答トランザクションで同じものが使用される仕様である。この性質を使ってメモリレイテンシを求める。
トランザクション処理ユニット8は、パフォーマンスモニタ11に発行されたメモリ応答トランザクションのトランザクションIDで、CAM115に格納されているデータと一致するものが無いか検索する(211)。トランザクションIDが一致するエントリがある場合、CAM115はトランザクションIDが一致したエントリのアドレスをレジスタファイル117へ出力する(212)。このアドレスを持つレジスタファイル117のエントリのデータを読み出す(214)。この読み出しデータ214はメインメモリ5を読み出すトランザクションの開始時刻にあたり、当該トランザクションの終了時刻にあたるフリーランカウンタ119の値T1との差分を減算器120で生成することで(216)、メモリレイテンシ(ΔT0)が計算できる(218)。このメモリレイテンシを読み出しアドレスとしてレジスタファイル118に入力し(218)、読み出されたデータC0(220)をインクリメンタ122に入力して1を加える(219)。この1を加えたデータC0+1で、レジスタファイル118の始めに格納されていたエントリを更新する(221)。
次に、ステップ2の詳細を図7のフローチャートに基づいて以下に示す。
トランザクション処理ユニット8が、前記メモリアクセス要求トランザクションの応答であるメモリアクセス応答トランザクション(Memory Responce Transaction)をCPUバス4に発行する直前に、トランザクション処理ユニット8から、パフォーマンスモニタ11へ当該メモリアクセス応答の到着信号(T_END)とトランザクションIDが送信され、パフォーマンスモニタ11は、これらを要求トランザクションレジスタ111に登録する(図7のステップ260)。
前記トランザクションIDでCAM115を検索し(ステップ261)、一致するデータがあるか否かを判定し(ステップ262)、一致するデータがある場合は、CAM115が一致信号を”1”を出力し、同時に一致したエントリ番号を示すアドレス信号(Match Address)を出力する。このアドレス信号をレジスタファイル117に入力し、読み出されたデータと、フリーランカウンタ119の値を減算器120に入力する。レイテンシに相当する減算器120の出力は、レジスタファイル118の書き込みアドレス信号として入力される(ステップ263)。
前記CAM115の一致信号(Match)とメモリマップドレジスタ106のイネーブルレジスタ107のデータが、ANDゲート121に入力され、ANDゲート121の出力はレジスタファイル118の書き込みイネーブル入力に送られる。セレクタ114は、メモリマップドレジスタ106のイネーブルレジスタ107が”1”のとき、減算器120の出力をレジスタファイル118の読出しアドレス入力に転送する。そして、レジスタファイル118は、このアドレスのエントリのデータを読出しデータ(Read Data)を出力する。この読出しデータはインクリメンタ122に入力され、”1”を加えた値をレジスタファイル118の書き込みデータ(Write Data)として入力する。このとき、上述の説明によりレジスタファイル118のライトイネーブルは”1”になっているので、書き込みアドレス入力で指定されたアドレスのエントリのデータは、前記書き込みデータの値に更新される(ステップ264)。
<ステップ3>
図3に示したステップ3の動作について主に図8を用いて説明する。
管理コンソール16からSVP15経由等でBMC10にアクセスし、診断パス104を使ってパフォーマンスモニタ11のメモリマップドレジスタ106のイネーブルレジスタ107に”0”を設定し、計測を停止する(ステップ280)。なお、メモリマップドレジスタ106の計測期間レジスタ130を使った自動停止オプションを選択した場合は、設定したサイクル数後に自動的にイネーブルレジスタ107が“0”と設定されるため、SVP15からイネーブルレジスタ107を“0”に設定する必要はなく、予め設定した計測期間後には自動的にパフォーマンスモニタ11の計測が停止する。
次に、レジスタファイル118のデータを読み出すために、管理コンソール16からSVP15経由等でBMC10にアクセスし、診断パス104を使ってパフォーマンスモニタ11のメモリマップドレジスタ106の読み出しアドレスを設定する。この設定後、レジスタファイル118の当該アドレスのデータがメモリマップドレジスタ106の度数レジスタ110に格納される。このデータを管理コンソール16からSVP15経由等でBMC10にアクセスし、診断パス104を使って前記度数レジスタ110を管理コンソール16上に表示、あるいは、管理コンソール16などでファイル等に保存する。この操作を繰り替えし、レジスタファイル118の全エントリのデータを読出し、管理コンソール16で表示あるいはファイル等に保存する(ステップ281)。
以上の処理により、ノードコントローラ6が測定したノードのメモリレイテンシとアクセス頻度は、図9で示すように管理コンソール16の表示装置などに表示される。
図9は、管理コンソール16の表示装置(図示省略)に表示したメモリレイテンシのヒストグラムの例を示す。ここでは、図5(b)のレジスタファイル118のデータを使用してヒストグラムを作成する場合を例にしている。
図9の横軸はメモリレイテンシ(LATENCY)を表している。レジスタファイル118の各エントリのアドレスΔT0、ΔT1、ΔT2、ΔT3がそれに対応する。縦軸は各メモリレイテンシの数値の発生回数である度数(FREQUENCY)を表している。レジスタファイル118の各エントリに格納されている値、ここでは、C0+1、C1、C2、C3となっている。
このようなグラフを得ることで、ローカルメモリやリモートメモリへのアクセス特性を調査することが出来る。例えば、ローカルメモリへのアクセスが集中するようなアプリケーションの場合には、メインメモリ5のDIMMの数を増やしてメインメモリ5のチャネル数を増大させることで、ローカルメモリへアクセスが集中する際の性能のボトルネックを改善できる。あるいは、ローカルメモリ及びリモートメモリのアクセスが多いアプリケーションの場合には、メモリアクセスのモードをNUMAからインターリーブへ切り換えることで、計算機システム1の性能のボトルネックを改善することができる。このように、メモリレイテンシと頻度をヒストグラムとして捕捉することにより、アプリケーション毎のメモリのアクセス特性を容易に把握して、システム管理者が計算機システム1のボトルネックを改善する際の支援を行うことができる。
<他のレイテンシ測定への応用>
上述の説明では、CPU3−1〜3−Mからのメモリアクセス要求のメモリレイテンシのヒストグラムを作成する手段及び動作を説明した。このCPU3−1〜3−Mからのメモリアクセス要求の代わりに、I/Oにおいて、例えばDMA転送におけるメインメモリの読出し要求(DMAリードコマンド)を適用することで、DMA転送でのメモリアクセス特性を示すヒストグラムを作成が可能であり、DMA転送の性能検証に応用できる。例えば、I/Oインターフェース7のDMA制御部(図示省略)からメインメモリ5へのアクセス要求をノードコントローラ6が受け付けると、上記CPU3−1からのメモリアクセス要求と同様に、メモリレイテンシとアクセス頻度を対応付けて測定することができる。
<メモリアクセス特性の検証方法>
上述の手段及び方法で得られるヒストグラムを用いてアプリケーションプログラムのメモリアクセス特性の調査を行う方法を説明する。このメモリアクセス特性の調査は、以下の2フェーズから構成される。
(1)事前検証フェーズ:基本ベンチマークを実行して基本特性データベースを作成する。
(2)実計測フェーズ:検証対象のアプリケーションの動作中のメモリレイテンシのヒストグラムを作成し、基本特性データベースと比較してメモリアクセス特性を推定する。
(1)事前検証フェーズ
図10を用いて事前検証フェーズの処理について説明する。
はじめに、評価対象の計算機システム1で基本ベンチマークを実行する(ステップ300)。この、事前検証フェーズではアプリケーションを動作させない状態で、基本ベンチマークを実行して、計算機システム1の固有の性能(メモリレイテンシ)を測定する。計算機システム1に固有の性能を測定しておくことで、後のアプリケーションの特性を把握することができる。
基本ベンチマークとしては、メモリレイテンシを測定するプログラムやメモリスループット性能を測定するベンチマークプログラムを使用する。例えば、LMBENCH(http://www.bitmover.com/lmbench)やSTREAM(http://www.cs.virginia.edu/stream/)といったベンチマークプログラムがよく知られている。一般にメモリスループット性能を測定するベンチマークはCPUバス4、チップセット6、メインメモリ5といった部位への負荷が高い。ここで言う「負荷が高い」とは、CPUバス4の使用率といったシステムリソースの稼働率が高いことをいう。逆に、LMBENCHに含まれるlat_mem_rdのようなメモリレイテンシを測定するプログラムはポインタのリストを手繰るような処理になりCPUバス4等のシステムリソースの使用率は非常に低い。
次に、基本ベンチマークプログラムが操作している最中に、パフォーマンスモニタを用いて、メモリレイテンシのヒストグラムを作成する(ステップ301)。
予め用意した基本ベンチマークのすべてについてメモリレイテンシのヒストグラムを作成する(ステップ303)。
最後に、基本ベンチマークの結果とシステムの構成情報から評価対象システムの基本特性データベースを作成する(ステップ304)。
この基本特性データベースの例を、図11に示す。基本特性データベース506は、CPU3−1〜3−Mがアクセスするメモリ(ローカルメモリまたはリモートメモリ)の物理的位置を意味する「アクセス対象」(310)という項目と、CPUバス4などのハードウェアリソースの使用率が高いか低いかを意味する「負荷」(311)という項目と、メモリレイテンシのヒストグラムを登録した「特性」(312)という項目から構成される。
このデータベースに登録するデータの件数は、図11の例では5件登録されているが、実際は基本ベンチマークの数とメモリアクセスモード(NUMA/インタリーブ)の組み合わせの数で決まる。また、ローカルメモリやリモートメモリが実装されているか等、基本ベンチマークを実行しただけでは分からない情報もある。そのため、管理コンソール16を操作するシステム管理者などが測定対象の計算機システム1のアーキテクチャも参考にして基本特性データベース506を作成することになる。なお、作成した基本特性データベース506は、管理コンソール16のストレージ装置等に格納することができる。
図11のアクセス対象310では、LOCALはローカルメモリを、REMOTEはリモートメモリを指す。これらは、NUMAモードで先のLMBENCHのメモリレイテンシ測定プログラムを動作させることで容易に測定できる。ただし、レイテンシ測定プログラムを実行するCPUを特定しておく必要がある。INTERLEAVEは、メモリアクセスをインタリーブモードにしたときにメモリレイテンシを測定することで得られる。これらのメモリレイテンシ測定ではCPUバス4等のシステムリソース使用率は低い為、負荷311は負荷が軽いことを示すLIGHTが登録されている。
更に、STREAMベンチマークのようなCPUバス4等のシステムリソースの使用率が高いものは、負荷311の値をHEAVYとして登録している。負荷の項目は、用意した基本ベンチマークのメモリアクセス頻度にあわせて、LIGHT、HEAVYだけでなく、更に多くの分類を設定することが出来る。
上記図11の基本特性データベース506では、CPU3−1〜3−Mからの距離に応じたレイテンシとなり、ローカルメモリへのアクセスはリモートメモリへのアクセスに比してレイテンシは低くなる傾向が分かる。また、負荷が増大するにつれてレイテンシが増大する傾向となる。
<実計測フェーズ>
次に、図12を用いて実計測フェーズの処理について説明する。
最初に、評価対象システムで、評価したいアプリケーションプログラム(実業務プログラムやベンチマークなど)を実行する(ステップ350)。
次に、前記アプリケーションプログラムが稼動している最中に、パフォーマンスモニタでメモリレイテンシの度数分布を測定し、メモリアクセス特性を表すヒストグラムを作成する(ステップ351)。
最後に、管理コンソール16の表示装置で、基本特性データベース506のヒストグラムとステップ351で作成したヒストグラムを比較し、アプリケーションプログラムの特性を推定し、表示する(ステップ352)。
<メモリアクセス特性の解析方法>
基本特性データベース506のヒストグラムと、実計測フェーズで作成したヒストグラムを比較する方法としては、様々な手法が考えられる。ここでは、その一例について説明する。
N個の基本特性データベースのヒストグラムを、メモリレイテンシlの関数であると仮定し、Hi(l)(i=1、…、N)という式で表せると仮定し、更に、実計測フェーズで作成したヒストグラムを、Hr(l)とする。Hr(l)がHi(l)の線形和で近似できるとすると
Hr(l)≒K1×H1(l)+K1×H2(l)+…+KN×HN(l)
ただし、Kiは0以上の実数
という式が成り立つ。基本特性データベース506の要素を増やすことで、より精度の高い近似ができると考えられる。
このKiの数値が大きい基本ベンチマークの特性が、評価対象のアプリケーションの特性に近いワークロードであるか推定できる。
ただし、図11の基本特性データベース506のアクセス対象310の内容が同じ要素のグループでは、”0”以外の値を設定できるのは高々1要素である。例えば、同一のローカルメモリアクセス(列312がLOCAL)に複数の候補が存在するが、この中で高々1つだけを選択するということを意味している。
上記推定方法の一例を、図13を使って説明する。
図13において、基本特性データベース506に、ローカルメモリアクセスを表すヒストグラム361とリモートメモリのヒストグラム362があると想定する。今、評価対象アプリケーションのヒストグラム360を取得したとする。
ヒストグラム361をK1倍、ヒストグラム362をK2倍して合成した推定ヒストグラム365を作成し、評価対象アプリケーションのヒストグラム360と比較し(366)、その差分がもっとも小さくなるようにK1,K2の値を管理コンソール16上で稼動する所定のプログラムで探索する。例えば、K1,K2を各々0から、微小な増分Δずつ増やして生成したグラフの形状が、ヒストグラム360にもっとも近くなるようにプログラムで探索することで実現できる。
また、図14のように、計算機システム1の負荷(CPUバス4の使用率など)が高くなるとレイテンシを示すグラフの傾きが緩やかになる傾向があることは、待ち行列理論の考え方を用いることで容易に推定できる。したがって、グラフの傾きが緩やかになった現象が判明した場合、グラフの高さがもっとも高くなっている部分(図14の370、371、372)に対応するメモリにアクセス集中が発生してレイテンシが伸びる現象が起きていると推定できる。これに関しても、図14のような負荷の違いによるパタンをいくつか用意することで上述の方法で、メモリアクセスの特性を推定できる。
以上のような方法で、アプリケーションのメモリアクセス特性を推定した後、図15に示すような画面を管理コンソール16上で表示することで、ユーザに対して性能のボトルネックの推定材料を提供できる。
図15の例では、ローカルメモリとリモートメモリのアクセスの比率が3:1でローカルアクセスが多いことと、ローカルメモリへのアクセス集中が起きていることを表示している。
<ワークロードに適合したシステム構成の提案手法>
上述のアプリケーションのメモリアクセス特性を推定する方法を応用し、対象とする計算機システム1の複数のノード2−1〜2−Nを、一つのSMP(Symmetric Multiple Processor)サーバに構成変更できるようにしたサーバの構成変更支援システムについて以下に説明する。
A.1:システムの概略
図16は、図1に示した計算機システム1の構成を変更可能にしたもので、同一の部分には同一の符号を付して重複した説明を省略する。
図16に示す構成変更システムは、計算機システム500(図1の計算機システム1に相当)とSVP503(図1のSVP15に相当)と管理サーバ505(図1のコンソール16に相当)から構成されている。SVP503と管理サーバ(Management Server)505またはLAN504で接続されている。なお、計算機システム500及びSVP503の内容は、図1、図2の計算機システム1及びSVP15と同様の構成であり、同一の符号を用いて説明する。
図16の計算機システム500は、ノード501−1、501−2、…、501−Nから構成されている。これらは、図1のノード2−1〜2−Nと等価な装置であり、各ノードは図1のクロスバスイッチ14で相互接続されている。計算機システム500は、SVP503からk台(1≦k≦N)のノードを有効化し、k台のノード501−1、501−2、…、501−kから構成されるSMPサーバ502として運用できる。
更に、前記SMPサーバ502に入れなかった余りのノードを組み合わせて別のSMPサーバとして運用することも出来る。これは物理分割機構といわれる。この機構は、SVP503からノード501−1からノード501−kのノードコントローラ6(図1及び図2参照)に対して、メモリアクセス要求トランザクションの送受信をするノードを、ノードコントローラ6内に実装されているコンフィグレーションレジスタ(図示省略)を通して設定することで実現できる。前記コンフィグレーションレジスタは、メインメモリ5の空間上にマッピングされているメモリマップドレジスタの一種であり、SVP503からBMC10を経由して数値を設定出来る。
物理分割機構を用いて複数のSMPサーバを運用するケースでも一台のSMPサーバを運用するケースから容易に類推することができるため、以下では、計算機システム500の中で一台のSMPサーバ502のみを運用するケースを扱う。
管理サーバ505は、Telnetターミナルエミュレータプログラム等でSVP503にTelnet接続している。このTelnet接続を通して管理サーバ505からSVP503にノード501−1〜501−Nの設定を変更する管理コマンドを送る。この管理コマンドには、サーバの電源をON/OFFするコマンドや、どのノードをSMP接続するか、メモリアクセスをNUMAにするのかインタリーブにするのかといった構成を決定するコマンドが含まれている。更に、管理サーバ505は、基本特性データベース506を管理している。更に、管理サーバ505では、計算機システム500のノードの変更や動作モードの変更など、構成を変更する構成変更支援プログラム(図示省略)が動作しており、この構成変更支援プログラムは、図17で示される構成のいずれを選択すべきであるか支援するために必要なデータ解析処理を実行する。以下では、管理サーバ505で実行される前記構成変更支援プログラムが、SMPサーバ502に対して図18に示したフローチャートに従って計算機システム500の性能解析をし、管理サーバ505を操作するシステム管理者に対してシステム構成案を提案するまでの動作説明をする。
A.2:事前準備、基本特性データベースの作成
システム管理者は、図17に示すようなSMPサーバを構成するノード数と物理メモリ空間の配置の違いを表すメモリアクセスモードの組み合わせで、予めベンチマークプログラムとパフォーマンスモニタで計測したメモリレイテンシのヒストグラムを調査する。このとき、メインメモリ(主記憶)5のレイテンシだけでなく、I/Oデバイスが発行したメインメモリ5からI/OデバイスへのDMAリードのレイテンシの影響を考慮する場合は、DMAによる主記憶リードのヒストグラムを採取する。以下ではメインメモリ5のレイテンシを考慮するケースのみを扱う。なお、以下の説明では図18のフローチャートを参照しながら説明する。
A.3:評価対象システム
計算機システム500で、評価対象であるSMPサーバ502上でアプリケーションプログラム(実業務プログラムやベンチマークなど)を実行する(図18のステップ400)。
A.4:ヒストグラムの計測
次に、管理サーバ505上で稼動する構成変更支援プログラムはSVP503を通して、前記アプリケーションプログラムが稼動中にSMPサーバ501を構成する各ノード501−1、…、501−kにパフォーマンスモニタ11の操作コマンドを送り、メモリレイテンシのヒストグラムを測定する。
操作コマンドは、採取するトランザクションタイプやパフォーマンスモニタ11の開始及び停止等を、図2のメモリマップドレジスタ106に、調査するトランザクションタイプをトランザクションタイプレジスタ108に設定し、パフォーマンスモニタ11の開始及び停止を指示するための値をイネーブルレジスタ107等に設定する。パフォーマンスモニタ11の測定結果は、図2のレジスタファイル118に書き込まれているので、管理サーバ505は、SVP503を通して図2のリードアドレスレジスタ109に設定されたアドレスと、レジスタファイル118の読み出しアドレスを書き込み、レジスタファイル118から読み出されたデータを度数レジスタ110から順次読み出す。この読み出しデータを元に管理サーバ505の前記構成変更支援プログラムが、メモリアクセス特性を表すヒストグラムを作成する(図18のステップ401)。
例えば、ヒストグラムのグラフの形状が急峻な山でなくなだらかに広がっている場合は、メインメモリ5あるいはCPUバス4のビジー(使用)率が高いことが原因の一つと考えられる。この場合は、メモリアクセスモードをNUMAからインタリーブモードにしたり、SMPサーバを構成するノード数を増やしてメモリアクセスの分散を図ったりする構成変更案が考えられる。また、OSのモニタが計測するCPU使用率などの性能統計情報も同時に考慮して構成変更案を考えることも可能である。
A.5:メモリアクセス特性の解析
次に、基本特性データベースのヒストグラムとステップ401で作成したヒストグラムを比較し、アプリケーションプログラムの特性を、上述の<メモリアクセス特性の解析方法>で図12、図13を使って説明した方法で、メモリアクセスのアクセスがローカルノードに集中しているかリモートノードに多く行っているのか、アクセスの頻度が高いか低いかなどを解析する。(図18のステップ402)。
A.6:システム構成案の表示
上記図18のステップ400からステップ402までの処理で、管理サーバ505の表示装置(図示省略)には図15のメッセージが表示され、システムのメモリアクセス特性が表示される。図15の表示は、ステップ402の解析結果に基づいて、管理サーバ505の構成変更支援プログラムがローカルメモリとリモートメモリのアクセス頻度(図中Locality)と負荷の測定結果を集計したものである。この例では、ローカルメモリへのアクセス頻度が高く、また、負荷も高いことを示し、逆にリモートメモリのアクセス頻度は低く、かつ、負荷も低いことを示している。
次に、図18のステップ403では、ステップ402で得られたメモリアクセス特性から、図19の対応表を検索し、システム構成案を選択し、システム構成案を管理サーバ505の表示装置上に図20で示すような提案を表示する。図19は、計算機システムのアーキテクチャと、パフォーマンスモニタ11が測定したメモリのアクセス特性に対応する構成の変更案が予め設定されたもので、例えば、構成変更支援プログラムで予め設定したテーブルとして管理サーバ505に設定される。
今回のパフォーマンスモニタ11による測定結果から、図15のように、ローカルメモリへアクセスが集中し、リモートメモリのアクセスは少ないことから、変更案としては図19の「NUMA、アクセス集中」の変更案「DIMMの枚数を増加させメモリのチャネル数を増やす。または、インタリーブモードに変更。」と、「NUMA、ローカルアクセス大、リモートアクセス微少」の変更案「プログラムがクラスタ化に対応していればクラスタ構成に変更する。」を構成変更支援プログラムが選択し、図20で示すように表示する。
A.7:システム構成変更
図20で示した構成案を元に、システム管理者はサーバのノード数やメモリアクセスモードを変更する。
(1)SMPサーバ502のアプリケーションプログラムのシャットダウン及びOSのシャットダウン。
(2)管理サーバ505からSVP503(図1のSVP15)にブレードサーバ数の変更、メモリアクセスモードの設定コマンドを発行する。前記設定コマンドの入力でSVP503は、各ノードのBMC10を経由してノードコントローラ6のコンフィグレーションレジスタ(図示省略)に、SMPサーバ502を構成するノードを有効化、NUMA等の設定を行う。
(3)OSを再起動。アプリケーションプログラムを起動する。このとき、ノードの追加あるいは削除によりCPU数やメモリ量が変わっているので、アプリケーションプログラムのCPU数やメモリ量の設定を変更する。この変更はシステム管理者が手動でチューニングするか、あらかじめノード数などハードウェア構成ごとの設定パタンを用意して、自動的に設定を入れ替えるようにしてもよい。
一方、図19の変更案でクラスタ構成を推薦された場合、アプリケーションプログラムが複数のOSインスタンス上で別々に稼働することになる。そのため、アプリケーションプログラムがクラスタ化したシステムに対応するように変更しなければならない。例えば、データベースマネージメントシステムの場合は、データベースのデータ分割等変更をする必要がある。また、構成変更したシステムに接続するアプリケーションサーバやWebサーバ等の設定も変更する必要がある。
以上のように、本発明では、パフォーマンスモニタ11がハードウェアで測定したメモリレイテンシのヒストグラムによって、内部構造を変更することができないCPU3−1〜3−Mや、コーディングの最適化を行うことのできないアプリケーションプログラムの性能のボトルネックが、メモリやチップセットであるか否かを迅速に判定することが可能となる。
また、パフォーマンスモニタ11は、ノードコントローラ(チップセット)6のハードウェアで性能測定を実行するので、CPU3−1〜3−Mのリソースを使用する必要がない。このため、サーバなどの計算機の性能情報を採取する際に、性能情報を取得するソフトウェアが、測定対象のアプリケーションからCPU時間などのリソースを奪ってしまうのを防止でき、測定対象とするシステムに評価の為の負荷が加わるのを防いで精度の高い性能測定を実現できるのである。
さらに、実際のアプリケーションでのワークロードに適合したシステム構成を、メモリレイテンシの測定を基準にして自動的にシステム管理者に提案することができ、システム管理者の判断を支援することができ、迅速かつ有効なシステム変更を実現することが可能となる。特に、多数のノードや多数のCPUを備えた計算機システムでは、アプリケーション毎のメモリアクセスの特性に応じた構成を提供することが可能となって、計算機システムのリソースを効率よく利用することが可能となる。
<第2実施形態>
図21は、第2の実施形態を示し、前記第1実施形態の計算機システム1のノード2−1〜2−Nに代わって、ブレードサーバ50−1〜50−Nとして、ブレードサーバ50−1〜50−Nにそれぞれ設けたノードコントローラ56で性能測定を行うようにしたものである。その他の構成は前記第1実施形態と同様である。
前記第1実施形態の計算機システムは、多数のノードから構成される計算機システムを物理的に分割するケースであったが、逆に、小規模の計算機システムを基本構成にした例を説明する。
図21は、本発明のハードウェアモニタを実装したブレードサーバの一例を示すブロック図である。
計算機システム1Aは、複数のブレードサーバ50−1、50−2、…、50−N(Nは1以上の整数)とI/Oボード(またはI/Oブレード)60と、ブレードサーバ50−1〜50−Nを相互に接続するバックプレーンボード66から構成され、すべて同様のユニットから構成される。以下では、ブレードサーバ50−1を例にして構成について説明する。
ブレードサーバ50−1は、複数のCPU51−1〜51−M(Mは1以上の整数)、メインメモリ52、I/Oブリッジ53、ネットワークインタフェース54、チップセット56(以下、ノードコントローラ56と呼ぶことにする)、ボードマネジメントコントローラ55(以降、BMCと略す)から構成される。
I/Oボード60には、ストレージ装置62−1〜62−Nに接続されたI/Oインタフェース61−1、61−2、…、61−Nと、管理コンソール65に接続されたSVP64が搭載されている。これらのI/Oインターフェース61−1〜61−Nは、それぞれブレードサーバ50−1〜50−NのI/Oブリッジ53に接続されて、CPU51−1〜51−MからのI/Oアクセスを受け付ける。
バックプレーンボード66には、内蔵LAN67とSMPリンク68が搭載されている。内蔵LAN67は各ブレードサーバ50−1〜50−Nを相互に接続し、SMPリンク68は、各ブレードサーバ50−1〜50−Nのノードコントローラ56同士を接続してSMP(Symmetric Multiple Processor)サーバの構成を可能にする。
I/Oブリッジ53は、I/Oボード60に搭載されたI/Oインタフェース61−1に接続されている。I/Oインタフェース61−2〜61−Nは、同様に、ブレードサーバ50−2、…、50−NのI/Oブリッジ(図示省略)と接続されている。BMC55は、I/Oボード60に搭載されたSVP64に接続されている。同様にブレードサーバ50−2、…、50−NのBMC(図示せず)は、SVP64に接続されている。SVP64は、管理コンソール65に接続されている。
I/Oインタフェース61、61−2〜61−Nは、ストレージ装置62−1、62−2、…、62−Nとそれぞれ接続されている。ただし、ストレージ装置の代わりに、ネットワーク等のI/O装置を用いるようにしてもよい。
ブレードサーバ50−1に搭載されているノードコントローラ56のトランザクション処理ユニット57は、SMPリンク68と接続されている。同様に、ブレードサーバ50−2、…、50−Nのトランザクション処理ユニット(図示せず)は、SMPリンク68と接続されている。
ブレードサーバ50−1に搭載されているネットワークインタフェース54は、内蔵LAN67と接続されている。同様に、ブレードサーバ50−2、…、50−Nのネットワークインタフェース(図示せず)は、計算機システム1Aの内蔵LAN67と接続されている。
ノードコントローラ56は、トランザクション処理ユニット57とトランザクション処理制御ユニット58とパフォーマンスモニタ59から構成され、これらはノードコントローラ56の中で相互に接続されている。トランザクション処理制御ユニット58は、BMC55と接続されている。
なお、計算機システム1Aを構成するCPU51−1〜51−Mと、メインメモリ52、ノードコントローラ56と、BMC55及び管理コンソール65は、それぞれ前記第1実施形態のCPU3−1〜3−M、メインメモリ5、ノードコントローラ6、BMC10及び管理コンソール16と同様の構成である。また、ノードコントローラ56のパフォーマンスモニタ59、トランザクション処理ユニット57と、トランザクション処理制御ユニット58は、第1実施形態の図2に示したノードコントローラ6のパフォーマンスモニタ11と、トランザクション処理ユニット8と、トランザクション処理制御ユニット9と同一の構成である。
<動作概要>
以下に、ブレードサーバ50−1〜50−NのCPU51−1〜51−Mによる通常のメモリアクセス動作及び管理コンソール65から計算機システム1Aへのアクセスについて説明する。なお、以下の説明では、CPU51−1〜51−Mは同一の構成、動作であるので、CPU51−1のみについて説明し、他のCPUの説明は省略する。
CPU51−1が内蔵するキャッシュメモリ(図示省略)に必要なデータが存在しない場合、メインメモリ52に必要なデータを取りに行く為、メモリアクセス要求をCPUバス69に発行する。同一CPUバス69に接続された他のCPUのキャッシュに要求するデータが存在する場合は、CPU間でCPUバス69を介してデータが転送される。同一CPUバス69上にデータが存在しない場合は、当該メモリアクセス要求はノードコントローラ56内部のトランザクション処理ユニット57に発行される。
トランザクション処理ユニット57は、メインメモリ52にメインメモリ読出しの要求を転送する。メインメモリ52読み出されたデータは、トランザクション処理ユニット57とCPUバス69を介して、メモリアクセス要求発行元のCPU51−1に転送される。
システム管理者は、管理コンソール65からSVP64に対して、システムのリセット、立ち上げ等の要求を発行する。SVP64は、これらの要求を対象となるブレードサーバ50−1〜50−NのBMC55に伝える。BMC55は、トランザクション処理制御ユニット9に対して前記要求を転送する。そして、トランザクション処理制御ユニット58は、トランザクション処理ユニット57及びパフォーマンスモニタ59の初期化や動作モード変更の為のメモリマップドレジスタ106(図2参照)へのデータの読み書きを行い、システムの初期化や動作モードの切り替えを行う。
各ブレードサーバ51−1〜51−Mは、それぞれ別々のサーバとして運用するものであるが、本発明でのブレードサーバは、SVP64からの設定コマンドで、一個の計算機システムとして動作するように設定できる。つまり、第1の実施形態のクロスバスイッチ14の役目をSMPリンク68が実行するとみなせばよい。複数のブレードサーバ51−1〜51−Mを一個のSMP(Symmetric Multi Processor)サーバとして運用する場合のメモリアクセス動作は、前記第1の実施形態の<パフォーマンスモニタの動作>及び<メモリアクセス特性の検証方法>に記載した動作と同じ動作である為、説明は省略する。
次に、性能の測定対象とする計算機システム1Aの複数のブレードサーバ50−1〜50−Nを、一つのSMPサーバに構成変更できるようにしたサーバの構成変更支援システムについて図22を参照しながら以下に説明する。
B.1:システム概略
図22は、前記図21のブレードサーバ50−1〜50−Nからなる計算機システム1Aの構成を変更可能にした構成変更システムを示す。
図22において、計算機システム600は、ブレードサーバ601−1、601−2、…、601−N(図21のブレードサーバ50−1、…、50−Nに相当)とI/Oボード607(図21のI/Oボード60)上に搭載されたSVP603(図21のSVP64に相当)とマネージメントサーバ605(図21の管理コンソール65に相当)から構成されている。SVP603と管理サーバ(Management Server)605はLAN604で接続されている。各ブレードサーバはバックプレーンボード608(図21のバックプレーンボード66に相当)で相互接続されている。また、図21で示したように、バックプレーンボード66上に搭載されているSMPリンク68で各ブレードを接続している。SMPリンク68は、ブレード間を接続する内部ネットワークで、基板上の配線として実装されているケースと、図1のクロスバスイッチ14と等価なクロスバスイッチが実装されているケースがある。
ブレードサーバ50−1〜50−N上のノードコントローラ56には、メインメモリ52の空間上にマッピングされているコンフィグレーションレジスタ(図示省略)が実装されている。前記コンフィグレーションレジスタは、SVP64からアクセス出来、ブレードサーバ50−1、…、50−Nの各ノードコントローラ56に対して、メモリアクセス要求トランザクションを送受信するブレードサーバを設定できる。この機構を用いて図22では、ブレードサーバ601−1、601−2、…、601−kを一台のSMPサーバ602として運用している。
更に、前記コンフィグレーションレジスタの設定でメモリアクセスをインタリーブモードかNUMAモードか選択できるようになっている。
更に、ブレードサーバ601−k+1、…、601−Nから別のSMPサーバを構成、あるいは個別のブレードサーバとして運用し、複数のSMPサーバを運用するケースが考えられるが、一台のSMPサーバ602を運用するケースから他のケースを容易に類推することができるため、以下では、一台のSMPサーバ602のみを運用するケースを扱う。
管理サーバ605は、Telnetターミナルエミュレータプログラム等でSVP603にTelnet接続している。このTelnet接続を通して管理サーバ605からSVP603にブレードサーバ601−1〜601−Nの管理用コマンドを送る。この管理コマンドには、サーバの電源をON/OFFするコマンドや、どのブレードサーバをSMP接続するか、メモリアクセスをNUMAにするのかインタリーブにするのか構成を決定するコマンドが含まれている。
更に、管理サーバ605は、基本特性データベース506を管理している。更に、管理サーバ605では、構成変更支援プログラム(図示省略)が動作しており、この構成変更支援プログラムは、前記第1実施形態の図17で示される構成のいずれを選択すべきであるか支援するために必要なデータ解析処理を実行する。以下では、前記構成変更支援プログラムが、SMPサーバ602に対して図18に示したフローチャートに従って計算機システム600の性能解析を行い、管理サーバ605を操作するシステム管理者に対してシステム構成案を提案するまでの動作説明をする。
B.1:事前準備、基本特性データベースの作成
システム管理者は、図17に示すようなSMPサーバを構成するブレードサーバ数と物理メモリ空間の配置の違いを表すメモリアクセスモードの組み合わせで、予めベンチマークプログラムとパフォーマンスモニタで計測したメモリレイテンシのヒストグラムを調査する。このとき、メインメモリ(主記憶)52のレイテンシだけでなく、I/Oデバイスが発行した主記憶からI/OデバイスへのDMAリードのレイテンシの影響を考慮する場合は、DMAによる主記憶リードのヒストグラムを採取する。以下ではメインメモリ52のレイテンシを考慮するケースのみを扱う。なお、以下の説明では前記第1実施形態に示した図18のフローチャートを参照しながら説明する。
B.2:評価対象システム
評価対象であるSMPサーバ602上でアプリケーションプログラム(実業務プログラムやベンチマークなど)を実行する(図18のステップ400)。
B.3:ヒストグラムの計測
次に、管理サーバ605上で稼動する構成変更支援プログラムはSVP603を通して、前記アプリケーションプログラムが稼動中にSMPサーバ602を構成する各ブレードサーバ601−1、…、601−kにパフォーマンスモニタ(図21のパフォーマンスモニタ59)の操作コマンドを送り、メモリレイテンシのヒストグラムを測定する。
操作コマンドは、採取するトランザクションタイプやパフォーマンスモニタの開始及び停止等を、図2のメモリマップドレジスタ106に、調査するトランザクションタイプをトランザクションタイプレジスタ108に設定し、パフォーマンスモニタ11の開始及び停止を指示するための値をイネーブルレジスタ107等に設定する。パフォーマンスモニタ11の測定結果は、図2のレジスタファイル118に書き込まれているので、管理サーバ605は、SVP603を通して図2のリードアドレス109にレジスタファイル118の読み出しアドレスを書き込み、レジスタファイル118から読み出されたデータを度数レジスタ110から順次読み出す。この読み出しデータを元に管理サーバ605の前記構成変更支援プログラムが、メモリアクセス特性を表すヒストグラムを作成する(図18のステップ401)。
B.4:メモリアクセス特性の解析
次に、基本特性データベースのヒストグラムとステップ401で作成したヒストグラムを比較し、アプリケーションプログラムの特性を、前記第1実施形態の<メモリアクセス特性の解析方法>で図12、図13を使って説明した方法で、メモリアクセスのアクセスがローカルノードに集中しているかリモートノードに多く行っているのか、アクセスの頻度が高いか低いかなどを解析する。(図18のステップ402)。
例えば、ヒストグラムのグラフの形状が急峻な山でなくなだらかに広がっている場合は、メモリあるいはCPUバスのビジー率が高いことが原因の一つと考えられる。この場合は、メモリアクセスモードをNUMAからインタリーブモードにしたり、SMPサーバ602を構成するブレード数を増やしてメモリアクセスの分散を図ったりする構成変更案が考えられる。また、OSが計測するCPU使用率などの性能統計情報も同時に考慮して構成変更案を考えることも可能である。
B.5:システム構成案の表示
図18のステップ400からステップ402までの処理で、管理コンソール605には前記第1実施形態と同様の図15のメッセージが表示され、システムのメモリアクセス特性が表示される。
ステップ403では、上記ステップ402で得られたメモリアクセス特性から、図19の対応表を検索し、システム構成案を選択し、システム構成案を管理サーバ605の表示装置上に前記第1実施形態で示した図20で示すような提案を表示する。
B.6:システム構成変更
図20で示した構成案を元に、システム管理者はサーバのブレードサーバ数やメモリアクセスモードを変更する。
(1)SMPサーバ602のアプリケーションプログラムのシャットダウン及びOSのシャットダウン。
(2)管理サーバ605からSVP603(図1のSVP15)にノード数変更、メモリアクセスモードの設定コマンドを発行する。前記設定コマンドの入力でSVP15は、各ノードのBMC10を経由してノードコントローラ6のコンフィグレーションレジスタ(図示無し)に、SMPサーバ602を構成するノードを有効化、NUMA等の設定を行う。
(3)OSを再起動。アプリケーションプログラムを起動する。このとき、ノードの追加あるいは削除によりCPU数やメモリ量が変わっているので、アプリケーションプログラムのCPU数やメモリ量の設定を変更する。この変更はシステム管理者が手動でチューニングするか、あらかじめノード数などハードウェア構成ごとの設定パタンを用意して、自動的に設定を入れ替えるようにしてもよい。一方、図19の変更案でクラスタ構成を推薦された場合、アプリケーションをクラスタ化に対応するように変更しなければならない。例えば、データベースマネージメントシステムの場合は、データベースのデータ分割や、接続するアプリケーションサーバやWebサーバ側の設定も変更する場合もある。
<第3実施形態>
図23は第3の実施形態を示し、図2に示したパフォーマンスモニタ11が測定するレイテンシの範囲や間隔を任意に設定し、測定の自由度を向上させるものである。
前記第1実施形態に示した図2のパフォーマンスモニタ11に、図23で示す回路を追加することで、測定するレイテンシの範囲や間隔を任意に設定してレイテンシ計測の自由度を増やすことができる。なお、図23では、パフォーマンスモニタ11のレジスタファイル117〜レジスタファイル118の部分のみを示し、その他の構成については前記第1実施形態の図2と同様である。また、前記第1実施形態の図2と同一のものに同一の符号を付した。
(1)回路の概略
図23の回路の概略を説明する。レジスタファイル117の読み出しデータと、フリーランカウンタ119の出力は減算器120に入力される。減算器120の出力(=フリーランカウンタ119の値−レジスタファイル117の読み出しデータ)は、減算器704に出力されている。
また、メモリマップドレジスタとして、ベースレジスタ705と、測定レンジレジスタ708を追加する。ベースレジスタ705の値は、減算器704と比較器705に入力される。減算器704では、減算器120の出力値からベースレジスタ705の値を引いた値が出力される。比較器705では、ベースレジスタ705の値が減算器120の出力値以上であれば“1”を出力し、そうでなければ“0”を出力する。
測定レンジレジスタ708の値は、シフタ710とパタンジェネレータ707に入力される。パタンジェネレータ707は、図24に示したテーブルでシフト幅「bit」と上界値(UPPER BOUBND)の関係に基づいて上界値を生成する。パタンジェネレータ707で生成された上界値は上界値レジスタ706に格納される。上界値レジスタ706の値はセレクタ709と比較器706に入力される。比較器706では、減算器120の出力値が上界値レジスタ706よりも大きな値であれば、“1”を、そうでなければ“0”を出力する。
セレクタ709には、減算器704と比較器705とオール“0”の値が入力され、比較器705と比較器706の入力パタンで、前記3入力のうち一つが選択され、シフタ710に入力される。シフタ710は、測定レンジレジスタ708に格納されているシフト幅(図24)だけ右シフトされ、レジスタファイル701の書き込みアドレス入力に入力される。
セレクタ709では、図25に示した真理値表に従って入力信号を選択する。図25のBSは比較器705の出力で、UBは比較器706の出力である。セレクタ709は、BSとUSの値に応じて図25の「SELECT」欄の端子の信号を選択するもので、「A」の場合では減算器704の出力を選択し、「B」の場合には上界値レジスタ706の値を選択し、「C」であれば固定値の「0」を選択する。
以上の回路によって計測されたヒストグラムの例を図26に示す。図26の横軸800は、メモリレイテンシの大きさであり、例えばパフォーマンスモニタ11の動作するクロックで計測したサイクル数を示している。縦軸801は、それぞれのレイテンシの発生頻度を表しており、例えばメモリアクセストランザクション数を示している。ベース(BASE)802はベースレジスタ705に格納されている数値であり、UPPER BOUND805は、上界値レジスタ706に格納されている数値である。測定対象のレイテンシ804は、BASE802からUPPER BOUND803までである。測定するレイテンシの間隔805は、測定レンジレジスタ708に格納されている数値で与えられる。
(2)追加回路動作例
(2−1)計測レンジの変更
測定可能なレイテンシの観測範囲とシフト幅の関係を図24に示す。減算器120の出力であるメモリレイテンシのデータをシフタ710で右シフトすることで、計測可能なレイテンシの幅が変更できる。例えば、レジスタファイル701が128エントリある場合、0サイクルから127サイクルのレイテンシまで測定可能である。
ここで、1ビット右シフトすることで、一つのエントリに格納されるレイテンシの幅が2サイクル分に広がり(図24の測定レンジ列を参照)、全体として0サイクルから255サイクルまでのレイテンシの測定が可能となる。また、2ビット右シフトすることで、一つのエントリに格納されるレイテンシの幅が4サイクル分になり(図24の測定レンジ列を参照)、全体として0サイクルから255サイクルまでのレイテンシの測定が可能となる。この右シフトするビット数は、測定レンジレジスタ708に設定される。
観測範囲の最大値を超えるレイテンシの発生数を調査するときは、各レンジでの上界値(図24参照)を超えたレイテンシは測定範囲の最大値のエントリの数値としてカウントするという対処も可能である。例えば、シフト幅が0bitのとき、128サイクル以上のレイテンシはすべて127サイクルとみなしてカウントするということである。これは、比較器706の追加とセレクタ710の選択判定を図25のようにすることで実現できる。
(2−2)測定する範囲の変更
観測範囲の最小測定値が0サイクルではなく、特定のサイクル数(以降、ベースサイクル数と呼ぶ)から測定したいケースもある。この場合、ベースサイクル数を測定開始前にベースレジスタ705に設定しておき、減算器120の出力にもう一つの減算器704を接続してベースサイクル数とレイテンシの差分をとることで測定対象とするレイテンシのサイクル数を変更できる。例えば、ベースサイクル数(=ベースレジスタ705の値)を255と設定することで、0サイクルから255サイクルの測定範囲が255サイクルから511サイクルに測定する範囲変更できる。このとき、上記(2−1)で述べたように254サイクル以下のレイテンシの発生数を調査したい場合、ベースレジスタ705より小さいレイテンシを255サイクルの測定値としてカウントすることで対処ができる。これは、比較器705の追加とセレクタ710の選択判定を図25のようにすることで実現できる。
このように、測定するレイテンシの範囲と、レイテンシの間隔を任意に選択することで、性能を測定する対象を絞り込むことができる。例えば、ローカルメモリのレイテンシを重点的に測定したり、あるいは、リモートメモリのレイテンシを重点的に測定することが可能となるのである。
なお、上記各実施形態において、CPUバス4と、メモリチャネル(メモリバス)124とを接続するノードコントローラ6、56にパフォーマンスモニタ11を配置した例を示したが、これに限定されるものではない。例えば、CPUとメモリコントローラを一体にしたプロセッサの場合には、メモリコントローラに本発明のパフォーマンスモニタ11を設けるようにすればよい。
<捕捉>
少なくとも1つのCPUと、前記CPUとメモリ及びI/Oインターフェースを接続するコントローラにおいて、
前記コントローラは、
前記メモリに対するアクセス要求を受け付けると、当該メモリアクセス要求に対する応答時間を測定する応答時間測定部と、
前記メモリアクセス要求の発行回数を測定する度数カウント部と、
前記応答時間に対応する前記発行回数とを関連づけた測定結果を格納する測定結果記憶部と、
前記測定結果の読み出し要求があったときには、前記測定結果記憶部に格納された測定結果を出力する測定結果制御部と、
を備えたことを特徴とするコントローラ。
または、少なくとも1つのCPUと、前記CPUとメモリを接続するコントローラにおいて、
前記コントローラは、
前記メモリに対するアクセス要求を受け付けると、当該メモリアクセス要求に対する応答時間を測定する応答時間測定部と、
前記メモリアクセス要求の発行回数を測定する度数カウント部と、
前記応答時間に対応する前記発行回数とを関連づけた測定結果を格納する測定結果記憶部と、
前記測定結果の読み出し要求があったときには、前記測定結果記憶部に格納された測定結果を出力する測定結果制御部と、
を備えたことを特徴とするコントローラ。
以上のように、本発明は性能情報を取得する必要がある計算機システムに適用することができ、特に、取得した性能情報に基づいてノードやサーバブレードの構成を変更可能なクラスタサーバやブレードサーバに適用することができる。また、CPUとメモリを接続するコントローラに適用することができる。
本発明の第1の実施形態を示し、物理分割可能な計算機システムのブロック図。 ノードコントローラの構成を示すブロック図。 ノードコントローラのパフォーマンスモニタで実行される処理の一例を示すフローチャート。 図3のステップ0で行われる処理の一例を示すフローチャート。 メモリレイテンシの測定の様子を示すブロック図で、(a)はメモリアクセス要求トランザクションの開始時のCAMとレジスタファイル117の様子を示し、(b)は応答トランザクションのCAM、レジスタファイル117、118の様子を示す。 図3のステップ1で行われる処理の一例を示すフローチャート。 図3のステップ2で行われる処理の一例を示すフローチャート。 図3のステップ3で行われる処理の一例を示すフローチャート。 メモリレイテンシとアクセス頻度の測定結果の一例を示し、管理コンソールでヒストグラムとして出力した場合の説明図。 計算機システムの固有の性能情報(基本特性データベース)を測定する事前検証フェーズの手順を示すフローチャート。 基本特性データベースの一例を示す説明図。 計算機システムで実行するアプリケーションの性能情報を測定する実計測フェーズの手順を示すフローチャート。 基本特性データベースと測定結果のアプリケーション。 メモリレイテンシと負荷の関係を示すヒストグラム。 メモリレイテンシの測定結果を管理コンソールで表示した場合の画面イメージ。 ノードの構成を変更可能にした計算機システムのブロック図。 構成変更の一例を示す説明図。 構成変更支援の処理の一例を示すフローチャート。 構成変更支援の変更案を示すテーブル。 メモリレイテンシの測定結果に基づく構成変更案を管理コンソールで表示した場合の画面イメージ。 第2の実施形態を示し、ブレードサーバで構成された計算機システムのブロック図。 同じく、第2の実施形態を示し、ノードの構成を変更可能にした計算機システムのブロック図。 第3の実施形態を示し、ノードコントローラの一部を示すブロック図。 同じく、第3の実施形態を示し、観測範囲と測定レンジとシフト幅及び上界値の関係を示すテーブル。 同じく、第3の実施形態を示し、セレクタ709の動作を規定した真理テーブル。 同じく、第3の実施形態を示し、メモリレイテンシと負荷の関係を示すヒストグラム。
符号の説明
1 計算機システム
2−1〜2−N ノード
3−1〜3−M、51−1〜51−M CPU
5、52 メインメモリ
6、56 ノードコントローラ(チップセット)
8、57 トランザクション処理ユニット
9、58 トランザクション処理制御ユニット
11、59 パフォーマンスモニタ
16、65 管理コンソール
50−1〜50−N ブレードサーバ
105 パフォーマンスモニタ制御ユニット
106 メモリマップドレジスタ
107 イネーブルレジスタ
108 トランザクションタイプレジスタ
109 リードアドレスレジスタ
110 度数レジスタ
111 メモリアクセス要求トランザクションレジスタ
112 メモリアクセス応答トランザクションレジスタ
113、114 セレクタ
115 CAM
116 CAM書き込み制御ユニット
117、118 レジスタファイル
119 フリーランカウンタ
120 減算器
121 ANDゲート
122 インクリメンタ

Claims (17)

  1. 少なくとも1つのCPUと、前記CPUとメモリ及びI/Oインターフェースを接続するコントローラとを備えた計算機システムにおいて、
    前記コントローラは、
    前記メモリに対するアクセス要求を受け付けると、当該メモリアクセス要求に対する応答時間を測定する応答時間測定部と、
    前記メモリアクセス要求の発行回数を測定する度数カウント部と、
    前記応答時間に対応する前記発行回数とを関連づけた測定結果を格納する測定結果記憶部と、
    前記測定結果の読み出し要求があったときには、前記測定結果記憶部に格納された測定結果を出力する測定結果制御部と、
    を備えたことを特徴とする計算機システム。
  2. 前記メモリアクセス要求は、前記CPUが発行したメモリアクセス要求であることを特徴とする請求項1に記載の計算機システム。
  3. 前記I/Oインターフェースは、前記メモリに対してアクセスを行うDMA制御部を含み、
    前記メモリアクセス要求は、前記I/Oインターフェースが発行したメモリアクセス要求であることを特徴とする請求項1に記載の計算機システム。
  4. 前記測定結果制御部は、測定結果の読み出し要求を送信する管理端末に接続され、前記読み出し要求を受け付けたときには、前記管理端末へ前記測定結果を送信することを特徴とする請求項1に記載の計算機システム。
  5. 前記応答時間測定部は、
    前記応答時間の測定範囲を設定する測定範囲設定部と、
    前記測定する応答時間の間隔を設定する測定間隔設定部と、
    を備えたことを特徴とする請求項1に記載の計算機システム。
  6. 前記管理端末は、
    前記測定結果制御部から取得した測定結果に基づいて、前記メモリアクセス要求の応答時間と、当該応答時間に対応するメモリアクセス要求の発行回数から、メモリアクセスの特性を推定することを特徴とする請求項4に記載の計算機システム。
  7. 前記計算機システムは、
    少なくとも1つのCPUと、前記CPUとメモリ及びI/Oインターフェースを接続するコントローラとを含むノードを複数備え、前記複数のノードを相互に接続する通信部を有することを特徴とする請求項1に記載の計算機システム。
  8. 前記計算機システムは、前記複数のノードのうち、予め設定した複数のノードを組み合わせて一つの処理を実行する物理分割部を備えたことを特徴とする請求項6に記載の計算機システム。
  9. 少なくとも1つのCPUと、前記CPUとメモリ及びI/Oインターフェースを接続するコントローラとを備えた計算機と、
    前記計算機に接続された管理端末と、を備えた計算機の性能評価システムにおいて、
    前記コントローラは、
    前記メモリに対するアクセス要求を受け付けると、当該メモリアクセス要求に対する応答時間を測定する応答時間測定部と、
    前記メモリアクセス要求の発行回数を測定する度数カウント部と、
    前記応答時間に対応する前記発行回数とを関連づけた測定結果を格納する測定結果記憶部と、
    前記管理端末から測定結果の読み出し要求があったときには、前記測定結果記憶部に格納された測定結果を前記管理端末へ出力する測定結果制御部と、を備え、
    前記管理端末は、
    前記測定結果制御部から取得した測定結果から、前記メモリアクセス要求の応答時間と、当該応答時間に対応するメモリアクセス要求の発行回数から、メモリアクセスの特性を推定する性能推定部を備えたことを特徴とする計算機の性能評価システム。
  10. 前記メモリアクセス要求は、前記CPUが発行したメモリアクセス要求であることを特徴とする請求項9に記載の計算機の性能評価システム。
  11. 前記I/Oインターフェースは、前記メモリに対してアクセスを行うDMA制御部を含み、
    前記メモリアクセス要求は、前記I/Oインターフェースが発行したメモリアクセス要求であることを特徴とする請求項9に記載の計算機の性能評価システム。
  12. 前記応答時間測定部は、
    前記応答時間の測定範囲を設定する測定範囲設定部と、
    前記測定する応答時間の間隔を設定する測定間隔設定部と、
    を備え、
    前記管理端末は、
    前記測定範囲設定部に応答時間の測定範囲を送信し、前記測定間隔設定部に応答時間の測定間隔を送信する測定条件設定部を有することを特徴とする請求項9に記載の計算機の性能評価システム。
  13. 前記性能推定部は、
    前記測定結果制御部から取得した測定結果から、前記メモリアクセス要求の応答時間と、当該応答時間に対応するメモリアクセス要求の発行回数から、メモリアクセス要求を行ったメモリの物理的な位置を推定することを特徴とする請求項9に記載の計算機の性能評価システム。
  14. 前記計算機は、
    少なくとも1つのCPUと、前記CPUとメモリ及びI/Oインターフェースを接続するコントローラとを含むノードを複数備え、前記複数のノードを相互に接続する通信部と、前記複数のノードのうち、予め設定した複数のノードを組み合わせて一つの処理を実行する物理分割部と、を備え、
    前記管理端末は、
    前記性能推定部が推定したメモリアクセスの特性に基づいて、前記応答時間を短縮可能な前記計算機のノードの構成を出力する構成支援部を備えたことを特徴とする請求項9に記載の計算機の性能評価システム。
  15. 少なくとも1つのCPUと、前記CPUとメモリ及びI/Oインターフェースを接続するコントローラとを備えた計算機と、前記計算機に接続された管理端末で計算機の性能を評価する方法であって、
    前記計算機でアプリケーションを実行させるステップと、
    前記コントローラがメモリに対するアクセス要求を受け付けると、当該メモリアクセス要求に対する応答時間を測定するステップと、
    前記コントローラがメモリアクセス要求の発行回数を測定するステップと、
    前記応答時間に対応する前記発行回数とを関連づけた測定結果を格納するステップと、
    前記アプリケーションの実行終了後に前記管理端末から測定結果の読み出し要求があったときには、前記格納された測定結果を前記管理端末へ送信するステップと、
    前記管理端末は、コントローラから取得した測定結果から、前記メモリアクセス要求の応答時間と、当該応答時間に対応するメモリアクセス要求の発行回数から、前記アプリケーションのメモリアクセスの特性を推定するステップと、
    を含むことを特徴とする計算機の性能評価方法。
  16. 前記メモリアクセスの特性を推定するステップは、
    前記取得した測定結果から、前記メモリアクセス要求の応答時間と、当該応答時間に対応するメモリアクセス要求の発行回数から、メモリアクセス要求を行ったメモリの物理的な位置を推定することを特徴とする請求項15に記載の計算機の性能評価方法。
  17. 前記計算機は、
    少なくとも1つのCPUと、前記CPUとメモリ及びI/Oインターフェースを接続するコントローラとを含むノードを複数備え、前記複数のノードを相互に接続する通信部と、前記複数のノードのうち、予め設定した複数のノードを組み合わせて一つの処理を実行する物理分割部と、を備え、
    前記性能推定部が推定したメモリアクセスの特性に基づいて、前記応答時間を短縮可能な前記計算機のノードの構成を出力するステップを、さらに含むことを特徴とする請求項15に記載の計算機の性能評価方法。
JP2006250645A 2006-09-15 2006-09-15 ハードウェアモニタを用いた性能評価システム及び再構築可能な計算機システム Expired - Fee Related JP4839164B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006250645A JP4839164B2 (ja) 2006-09-15 2006-09-15 ハードウェアモニタを用いた性能評価システム及び再構築可能な計算機システム
US11/771,397 US7577770B2 (en) 2006-09-15 2007-06-29 System and method for performance monitoring and reconfiguring computer system with hardware monitor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006250645A JP4839164B2 (ja) 2006-09-15 2006-09-15 ハードウェアモニタを用いた性能評価システム及び再構築可能な計算機システム

Publications (2)

Publication Number Publication Date
JP2008071237A true JP2008071237A (ja) 2008-03-27
JP4839164B2 JP4839164B2 (ja) 2011-12-21

Family

ID=39190007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006250645A Expired - Fee Related JP4839164B2 (ja) 2006-09-15 2006-09-15 ハードウェアモニタを用いた性能評価システム及び再構築可能な計算機システム

Country Status (2)

Country Link
US (1) US7577770B2 (ja)
JP (1) JP4839164B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010033496A (ja) * 2008-07-31 2010-02-12 Fujitsu Ltd コンピュータシステム
CN104516799A (zh) * 2013-09-27 2015-04-15 上海宝信软件股份有限公司 服务器性能测试方法
JP2019511784A (ja) * 2016-03-31 2019-04-25 クアルコム,インコーポレイテッド パフォーマンスカウンタおよびトレース論理を使用する性能解析
WO2024158199A1 (ko) * 2023-01-26 2024-08-02 삼성전자 주식회사 전자 장치 및 전자 장치의 성능 변화 감지 방법

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631401B2 (en) * 2007-07-24 2014-01-14 Ca, Inc. Capacity planning by transaction type
US7957948B2 (en) * 2007-08-22 2011-06-07 Hyperformit, Inc. System and method for capacity planning for systems with multithreaded multicore multiprocessor resources
WO2009096161A1 (ja) * 2008-01-29 2009-08-06 Panasonic Corporation プロセッサ性能解析装置、方法及びシミュレータ
US8261278B2 (en) * 2008-02-01 2012-09-04 Ca, Inc. Automatic baselining of resource consumption for transactions
US8402468B2 (en) * 2008-03-17 2013-03-19 Ca, Inc. Capacity planning based on resource utilization as a function of workload
US8744991B2 (en) * 2008-04-28 2014-06-03 Infosys Technologies Limited Knowledge artifact analysis system and method
US8805822B2 (en) * 2008-05-02 2014-08-12 Oracle International Corporation Knowledge base search utility
US20100125655A1 (en) * 2008-11-19 2010-05-20 Uri Elzur Method and system for centralized logic for centrally managed machines
WO2011007599A1 (ja) * 2009-07-17 2011-01-20 株式会社 東芝 メモリ管理装置
US9250687B1 (en) * 2009-08-10 2016-02-02 Ajoy Aswadhati High performance flexible storage system architecture
KR101617377B1 (ko) * 2009-11-06 2016-05-02 삼성전자주식회사 동적 전압 주파수 스케일링 방법
KR101262846B1 (ko) * 2009-12-15 2013-05-10 한국전자통신연구원 임베디드 단말 성능 측정 장치 및 방법
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US8671267B2 (en) 2010-06-24 2014-03-11 International Business Machines Corporation Monitoring processing time in a shared pipeline
US8850172B2 (en) * 2010-11-15 2014-09-30 Microsoft Corporation Analyzing performance of computing devices in usage scenarios
US9323655B1 (en) * 2011-06-30 2016-04-26 Emc Corporation Location of data among storage tiers
US9965381B1 (en) * 2011-06-30 2018-05-08 EMC IP Holding Company LLC Indentifying data for placement in a storage system
US8626880B2 (en) * 2011-07-06 2014-01-07 Dell Products, Lp Embedded configuration variance detector
JP5794010B2 (ja) * 2011-07-19 2015-10-14 富士通株式会社 情報処理装置、制御プログラムおよび制御方法
US9148495B2 (en) 2011-07-26 2015-09-29 International Business Machines Corporation Dynamic runtime choosing of processing communication methods
US8959313B2 (en) 2011-07-26 2015-02-17 International Business Machines Corporation Using predictive determinism within a streaming environment
US8990452B2 (en) * 2011-07-26 2015-03-24 International Business Machines Corporation Dynamic reduction of stream backpressure
US8793459B2 (en) 2011-10-31 2014-07-29 International Business Machines Corporation Implementing feedback directed NUMA mitigation tuning
US20130132128A1 (en) 2011-11-17 2013-05-23 Us Airways, Inc. Overbooking, forecasting and optimization methods and systems
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
TWI480730B (zh) * 2011-12-30 2015-04-11 Ibm 量測一資訊設備之效能的方法與裝置
US9405553B2 (en) 2012-01-30 2016-08-02 International Business Machines Corporation Processing element management in a streaming data system
GB2490390B (en) * 2012-03-29 2014-01-29 Renesas Mobile Corp Method, apparatus and computer program for latency measurement
US9146775B2 (en) 2012-04-26 2015-09-29 International Business Machines Corporation Operator graph changes in response to dynamic connections in stream computing applications
US9930081B2 (en) 2012-11-13 2018-03-27 International Business Machines Corporation Streams optional execution paths depending upon data rates
US9727940B2 (en) 2013-03-08 2017-08-08 American Airlines, Inc. Demand forecasting systems and methods utilizing unobscuring and unconstraining
US20140257881A1 (en) * 2013-03-08 2014-09-11 Us Airways, Inc. Demand forecasting systems and methods utilizing fare adjustment
US11321721B2 (en) 2013-03-08 2022-05-03 American Airlines, Inc. Demand forecasting systems and methods utilizing prime class remapping
US9813235B2 (en) * 2013-03-11 2017-11-07 Indian Institute of Technology Kharagpur Resistance to cache timing attacks on block cipher encryption
US20140278615A1 (en) 2013-03-15 2014-09-18 Us Airways, Inc. Misconnect management systems and methods
US10860352B2 (en) * 2013-07-25 2020-12-08 Hewlett Packard Enterprise Development Lp Host system and method for managing data consumption rate in a virtual data processing environment
GB2517195A (en) * 2013-08-15 2015-02-18 Ibm Computer system productivity monitoring
CN103442087B (zh) * 2013-09-12 2016-09-14 重庆大学 一种基于响应时间趋势分析的Web服务系统访问量控制装置和方法
US9465709B2 (en) * 2013-11-22 2016-10-11 Netapp, Inc. System and method for providing performance sampling in a computing system
US9625971B2 (en) * 2014-01-10 2017-04-18 Taiwan Semiconductor Manufacturing Company, Ltd. System and method of adaptive voltage frequency scaling
US10755207B1 (en) 2014-01-17 2020-08-25 American Airlines, Inc. Demand class remapping for airline seat bookings
US10748087B2 (en) 2014-01-17 2020-08-18 American Airlines, Inc. Determining even-spaced quantiles for network optimization
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
JP6428784B2 (ja) * 2014-10-07 2018-11-28 日本電気株式会社 測定装置、測定システム、測定方法、および、プログラム
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US10459414B2 (en) 2014-11-28 2019-10-29 Mitsubishi Electric Corporation Communication device, communication adaptor, communication system, communication parameter response method, and program
US10452538B2 (en) 2015-01-21 2019-10-22 Red Hat, Inc. Determining task scores reflective of memory access statistics in NUMA systems
WO2016118162A1 (en) * 2015-01-23 2016-07-28 Hewlett Packard Enterprise Development Lp Non-uniform memory access aware monitoring
US9720601B2 (en) * 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9658937B2 (en) 2015-03-17 2017-05-23 Qualcomm Incorporated Optimization of hardware monitoring for computing devices
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10402227B1 (en) * 2016-08-31 2019-09-03 Amazon Technologies, Inc. Task-level optimization with compute environments
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10521112B2 (en) * 2017-03-17 2019-12-31 International Business Machines Corporation Layered clustered scale-out storage system
KR101879416B1 (ko) * 2017-06-12 2018-07-18 고려대학교 산학협력단 이상 금융거래 탐지 방법 및 그 전자 장치
US10360214B2 (en) * 2017-10-19 2019-07-23 Pure Storage, Inc. Ensuring reproducibility in an artificial intelligence infrastructure
US10579492B2 (en) * 2017-12-29 2020-03-03 Intel Corporation Device, system and method for identifying a source of latency in pipeline circuitry
US10649688B1 (en) * 2018-11-01 2020-05-12 Intel Corporation Precise longitudinal monitoring of memory operations
US11184446B2 (en) 2018-12-05 2021-11-23 Micron Technology, Inc. Methods and apparatus for incentivizing participation in fog networks
US11030038B2 (en) * 2019-02-12 2021-06-08 Microsoft Technology Licensing, Llc Fault prediction and detection using time-based distributed data
US11256778B2 (en) * 2019-02-14 2022-02-22 Micron Technology, Inc. Methods and apparatus for checking the results of characterized memory searches
US11327551B2 (en) 2019-02-14 2022-05-10 Micron Technology, Inc. Methods and apparatus for characterizing memory devices
US11150165B2 (en) * 2019-03-01 2021-10-19 Dell Products, L.P. System and method for configuration drift detection and remediation
US12118056B2 (en) 2019-05-03 2024-10-15 Micron Technology, Inc. Methods and apparatus for performing matrix transformations within a memory array
US10867655B1 (en) 2019-07-08 2020-12-15 Micron Technology, Inc. Methods and apparatus for dynamically adjusting performance of partitioned memory
US11449577B2 (en) 2019-11-20 2022-09-20 Micron Technology, Inc. Methods and apparatus for performing video processing matrix operations within a memory array
US11853385B2 (en) 2019-12-05 2023-12-26 Micron Technology, Inc. Methods and apparatus for performing diversity matrix operations within a memory array
CN113050874A (zh) * 2019-12-26 2021-06-29 华为技术有限公司 一种内存设置方法以及装置
US11550762B2 (en) 2021-02-24 2023-01-10 Sap Se Implementation of data access metrics for automated physical database design
US11875057B2 (en) * 2021-07-20 2024-01-16 Nvidia Corporation Shared structure for a logic analyzer and programmable state machine
US20240232032A1 (en) * 2023-01-09 2024-07-11 Western Digital Technologies, Inc. Stream temperature interleave monitor
US20250138985A1 (en) * 2023-11-01 2025-05-01 Sap Se Predicting hardware safety margin

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09101906A (ja) * 1995-10-09 1997-04-15 Hitachi Ltd 並列計算機の性能測定方法
JPH10275099A (ja) * 1997-03-13 1998-10-13 Internatl Business Mach Corp <Ibm> データ処理システムにおけるパフォーマンス監視
JPH11272499A (ja) * 1998-03-23 1999-10-08 Nec Corp 性能測定回路を備えた並列プロセッサシステムと、プログラムの性能測定方法
WO2005041056A2 (en) * 2003-10-27 2005-05-06 Koninklijke Philips Electronics N.V. Integrated circuit comprising a measurement unit for measuring utilization of a communication bus connecting its building blocks

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5872972A (en) * 1996-07-05 1999-02-16 Ncr Corporation Method for load balancing a per processor affinity scheduler wherein processes are strictly affinitized to processors and the migration of a process from an affinitized processor to another available processor is limited
US6092180A (en) 1997-11-26 2000-07-18 Digital Equipment Corporation Method for measuring latencies by randomly selected sampling of the instructions while the instruction are executed

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09101906A (ja) * 1995-10-09 1997-04-15 Hitachi Ltd 並列計算機の性能測定方法
JPH10275099A (ja) * 1997-03-13 1998-10-13 Internatl Business Mach Corp <Ibm> データ処理システムにおけるパフォーマンス監視
JPH11272499A (ja) * 1998-03-23 1999-10-08 Nec Corp 性能測定回路を備えた並列プロセッサシステムと、プログラムの性能測定方法
WO2005041056A2 (en) * 2003-10-27 2005-05-06 Koninklijke Philips Electronics N.V. Integrated circuit comprising a measurement unit for measuring utilization of a communication bus connecting its building blocks
JP2007514214A (ja) * 2003-10-27 2007-05-31 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 使用率を計測するための計測ユニットを備える集積回路

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010033496A (ja) * 2008-07-31 2010-02-12 Fujitsu Ltd コンピュータシステム
CN104516799A (zh) * 2013-09-27 2015-04-15 上海宝信软件股份有限公司 服务器性能测试方法
JP2019511784A (ja) * 2016-03-31 2019-04-25 クアルコム,インコーポレイテッド パフォーマンスカウンタおよびトレース論理を使用する性能解析
WO2024158199A1 (ko) * 2023-01-26 2024-08-02 삼성전자 주식회사 전자 장치 및 전자 장치의 성능 변화 감지 방법

Also Published As

Publication number Publication date
US20080071939A1 (en) 2008-03-20
JP4839164B2 (ja) 2011-12-21
US7577770B2 (en) 2009-08-18

Similar Documents

Publication Publication Date Title
JP4839164B2 (ja) ハードウェアモニタを用いた性能評価システム及び再構築可能な計算機システム
Martin et al. Using destination-set prediction to improve the latency/bandwidth tradeoff in shared-memory multiprocessors
CN110865968B (zh) 多核处理装置及其内核之间数据传输方法
US7992051B2 (en) Method, apparatus, and computer program product in a processor for dynamically during runtime allocating memory for in-memory hardware tracing
Bobba et al. Performance pathologies in hardware transactional memory
US9684600B2 (en) Dynamic process/object scoped memory affinity adjuster
US7913123B2 (en) Concurrently sharing a memory controller among a tracing process and non-tracing processes using a programmable variable number of shared memory write buffers
US7844860B2 (en) Apparatus and computer program product in a processor for performing in-memory tracing using existing communication paths
Thakkar et al. Performance of an OLTP application on Symmetry multiprocessor system
Lupon et al. A dynamically adaptable hardware transactional memory
US20160140052A1 (en) System and Method for Efficient Cache Utility Curve Construction and Cache Allocation
Tse et al. CPU cache prefetching: Timing evaluation of hardware implementations
Yu et al. Virtual shuffling for efficient data movement in mapreduce
JPH11316711A (ja) メモリシステムトランザクションの特性の統計値を推定する方法
Peng et al. Memory performance and scalability of Intel's and AMD's dual-core processors: a case study
Nussbaum et al. Statistical simulation of symmetric multiprocessor systems
Brown et al. Fast thread migration via cache working set prediction
Awan et al. Node architecture implications for in-memory data analytics on scale-in clusters
Chafi et al. TAPE: A transactional application profiling environment
Kundu et al. A case for shared instruction cache on chip multiprocessors running oltp
Zhao et al. SEL-TM: Selective eager-lazy management for improved concurrency in transactional memory
KR101924466B1 (ko) 하둡 기반 시스템을 위한 캐시 인지 작업 스케줄링 장치 및 방법
He et al. Numa-aware contention scheduling on multicore systems
CN114356732A (zh) 一种基于numa架构的应用系统性能优化方法及装置
US20080005726A1 (en) Methods and systems for modifying software applications to implement memory allocation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110905

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110927

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111003

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141007

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees