[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP4407445B2 - 一定の応答時間を保証する計算機システム - Google Patents

一定の応答時間を保証する計算機システム Download PDF

Info

Publication number
JP4407445B2
JP4407445B2 JP2004272689A JP2004272689A JP4407445B2 JP 4407445 B2 JP4407445 B2 JP 4407445B2 JP 2004272689 A JP2004272689 A JP 2004272689A JP 2004272689 A JP2004272689 A JP 2004272689A JP 4407445 B2 JP4407445 B2 JP 4407445B2
Authority
JP
Japan
Prior art keywords
response time
data
server
business server
business
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.)
Expired - Fee Related
Application number
JP2004272689A
Other languages
English (en)
Other versions
JP2006091946A (ja
Inventor
剛 田中
敬太郎 上原
祥基 村上
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 JP2004272689A priority Critical patent/JP4407445B2/ja
Publication of JP2006091946A publication Critical patent/JP2006091946A/ja
Application granted granted Critical
Publication of JP4407445B2 publication Critical patent/JP4407445B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は計算機システムの性能の制御に関し、特にサーバのハードウェアの性能を直接制御することで性能を一定にする方法及び装置に関する。
1台以上のサーバから構成されるシステム上で稼動するサービスの利用者の端末で、システムに対して要求を入力してから応答が帰ってくるまでの時間を応答時間という。システムの導入初期段階においては、システムへの負荷が小さいため応答時間は小さい。ところが、使用時間の経過とともにデータベースのサイズやサーバに接続するユーザ数が増大する。すると、データベースサイズが増えることで業務サーバがデータを検索する時間が増えたり、接続するユーザ数が増えることでことで業務サーバに対して要求されるスループットが増えることで応答時間が大きくなる。このときの応答時間がシステム開発時に見積もった時間内で収まっていたとしても、新しいシステムを導入したにもかかわらずユーザは不満を感じるようになる。
「データベースチューニング256の法則」Chris Looseley & Frank Douglas著、間宮あきら訳 日経BP社 P.50(非特許文献1)で示されて技術では、システム導入の初期段階ではアプリケーションのコードにタイマ式遅延を組み込んで応答時間を長くしておく。そして、システムの成長に合わせて、この人工的な遅延を徐々に取り除くことで応答時間の変化を小さくすることができ、ユーザが不満を感じにくくする。
特に、業務システムにユーティリティサービスを適用するケースでは、応答時間を一定に保証するサービスを提供することが必須となると考えられる。
サーバを構成するCPUの単体性能が、動作周波数の高周波数化やマルチCPUコアなどの技術で、著しく性能向上した為、マルチプロセッサのサーバでCPU数を増やしたときの性能向上の差が大きくなった。
「データベースチューニング256の法則」Chris Looseley & Frank Douglas著、間宮あきら訳 日経BP社 P.50
上記のように、システム導入の初期段階ではアプリケーションのコードにタイマ式遅延を組み込んで応答時間を長くしておく技術は、現在の開発環境では汎用的であるとは言い難い。その理由として以下の3点が挙げられる。
(理由1)現在のシステム開発は、複数のアプリケーションを組み合わせてシステム開発をすることが多く、ソースコードが開示されず実行形式のプログラムのみでパッケージが構成されている。そのため、アプリケーションのコードに遅延を直接入れることは不可能である。
(理由2)ソースコードを開示したアプリケーションプログラムも普及しつつあるが、データベースなどの大規模で複雑なアプリケーションのコードを不用意に改変することはプログラムの不具合を生む可能性がある。
(理由3)複数のアプリケーションが連携してある業務のフローを実現している場合、特定のアプリケーションにだけ遅延をいれると、遅延が入った処理と遅延が入らなかった処理間との間のタイミングがずれ、データの一貫性が保てなることやデッドロックを引き起こす危険性がある。
したがって、応答時間を制御するためにプログラムのソースコードに遅延を入れることには、上記の理由で問題があるといえる。
さらに、CPUの単体性能が向上することでマルチプロセッサのサーバでCPU数の違いによる性能差が拡大していくことで、適当な応答時間を与えるシステム構成が得られにくく、上記に示したようなシステム導入の初期段階で過剰性能となる可能性がますます高くなっている。
上記課題を解決するために、以下の点に着目した。
サーバのトランザクション処理のスループットは以下の式で求められる。
(スループット性能)=(CPU数×CPU周波数×定数)÷(CPUの実行ステップ数×CPI)
ここで、定数はスループットの値を単位時間当たり、あるいは単位秒あたりに変換する数を指す。CPIは、CPUの1命令あたりの実行サイクル数のことである。従来の方法では、プログラムのソースコードに遅延ループを入れることで、CPUの実行ステップ数を増やして性能を制御した。しかし、その方法では上述の課題1のような問題がある。また、CPU数の変更は、課題2の問題がある。しかし、その方法では上述のような問題がある。そこで、変更できるパラメータはCPU数、CPU周波数、CPIを制御する方法が考えられる。CPU数はハードウェアの設計で制限され、あまり自由度がない。CPU周波数は、性能の変動幅を大きくするには周波数の変動幅を大きくする必要がある。これは、LSIのディレイ設計が困難になると考えられる。
CPIは以下のようにも記述できる。ただし、キャッシュメモリがレベル1とレベル2のみがある場合を例にする。レベル3以降のキャッシュメモリが存在する場合も同様な式で記述できる。
CPI=CPI0+(L1キャッシュのミス率−L2キャッシュミス率)×(L2キャッシュのメモリレイテンシ)×Kc+(L2キャッシュのミス率)×(主記憶のメモリレイテンシ)×Km
CPI0:1次キャッシュが無限の容量ある場合の1命令あたりの実行サイクル数
Kc、Km:メモリアクセスが多重実行される場合を考慮したときの定数値
CPIの値を制御することで性能の制御が可能となるが、キャッシュメモリのミス率を制御することはアプリケーションのワーキングセットサイズによっては効果が得られないケースがある。したがって、メモリレイテンシを制御することでCPIを制御する方法が多くの場合で性能を制御することが可能であるといえる。特に、データベースを使ったOLTP(Online Transaction Processing)やOLAP(Online Analytical Processing)のようなデータが大規模でキャッシュメモリに収まらないケースで有効な手段であると考えられる。
本発明では比較的自由な変動幅でサーバのメモリレイテンシを増加することを可能にすることで、サーバ全体の性能を期待する性能に調節できるようにする。
更に、応答時間の監視と予め指定した応答時間からの逸脱の検出とメモリレイテンシと応答時間の相関関係から適当なメモリレイテンシの増分を計算し、業務サーバのメモリレイテンシを変更する管理サーバを設ける。
以上、本発明によれば、メモリレイテンシの遅延を応答時間やサーバの稼動状態をもとに操作することで、どのようなシステムを導入するときでも、汎用的に性能を変更することができる。
また、CPUの単体性能が向上することでマルチプロセッサのサーバでCPU数の違いによる性能差が拡大していくことで、適当な応答時間を与えるシステム構成が得られにくく、システム導入の初期段階で過剰性能となる可能性を抑止することができる。
以下、図面を参照して本発明の実施の形態について説明する。なお、本明細書で応答時間とは、クライアントでユーザが、Enterキーを押してから(コマンドの実行をしてから)、クライアントまでにデータが最初に帰ってくるまでの時間のことを指す。
図1は、本発明の第1の実施例を表すシステム構成図である。一クライアント1と業務サーバ2は、ネットワーク14を介して接続されている。管理サーバ4は、クライアント1や業務サーバ2と接続して、これらの稼動情報の収集や構成管理を行う。ユーザはクライアント1から、業務サーバ2が提供する業務システムなどのサービスを受ける。なお図は単一のクライアント、単一の業務サーバのみ示すが、システム全体はそれぞれ複数台ずつ存在して接続される。
クライアント1には、業務サーバ2のサービスを要求してから応答が帰ってくるまでの応答時間を計測するクライアント監視エージェント3が稼動している。業務サーバ2では、サーバの稼動状態に係わる情報を集めるサーバ監視エージェント21が動作している。
管理サーバ4では、クライアント1や業務サーバ2を管理する管理プログラム6が稼動している。管理サーバ4は、ハードウェアでメモリレイテンシの遅延を変更できるようになっており。固定された最小メモリレイテンシと最大メモリレイテンシの間でメモリレイテンシを変更することができる。メモリレイテンシの遅延は、メモリ空間上に配置されたコンフィグレーションレジスタにソフトウェアから遅延サイクル数を指定することで変更ができるようになっている。管理プログラム4は、クライアント1や業務サーバ2の稼動状態を監視する性能監視部6とメモリレイテンシの遅延時間の設定をする構成管理部7から構成される。
また、管理サーバ4には、業務サーバ2の目標応答時間を記録した目標性能データ8と、業務サーバ2上で稼動するアプリケーションプログラムごとに応答時間とメモリレイテンシの関係表を格納した性能モデルデータ9と、応答時間が目標を達成していない場合の適切なメモリレイテンシを決定するための判断基準を格納した性能ポリシーデータ10と、監視する対象のサーバ名や監視するイベントを記述した監視対象データ11と、応答時間や業務サーバの稼動状況を示すデータの統計を格納した性能統計データ12と、業務サーバ2で設定しているメモリレイテンシの遅延など構成情報を格納した構成情報データ13が保持されている。
性能監視部6は、目標性能データ8と性能モデルデータ9と性能ポリシーデータ10と
監視対象データ11と性能統計データ12にアクセスし、データの読み書きをする。構成管理部7は、構成情報データ13にアクセスし、データの読み書きをする。更に、構成管理部7は業務サーバ2のメモリレイテンシの遅延量を指定する。管理プログラム5の性能監視部6は、応答時間のログの送付要求をクライアント監視エージェント3に送る(矢印16)。応答時間のログの送付要求を受けたクライアント監視エージェント3は、応答時間のログを管理プログラム5の性能管理部に送付する(矢印15)。一方、管理プログラム5の性能監視部6は、業務サーバ2の稼動状態のログの送付要求をサーバ監視エージェント21に送る(17)。応答時間のログの送付要求を受けたサーバ監視エージェント21は、業務サーバ2の稼動状態のログを管理プログラム5の性能管理部に送付する(18)。
ここで、サーバの稼動状態とは、CPU待ち行列長やディスクの待ち行列長、稼動しているアプリケーションごとのCPU使用率などサーバの稼動状態に係わる情報を指す。
次に、管理プログラムが参照するデータ群について説明する。
図2に目標性能データの例を示す。目標性能データは、クライアントから利用するアプリケーション(図2では業務A、業務B、業務Cと例示)ごとに、目標とする応答時間と、応答時間の許容幅を記録したものである。図2の例では業務Aは(A±ΔA)秒、業務Bは(B±ΔB)秒、業務Cは(C±ΔC)秒の応答時間であればよいことを示している。目標応答時間、許容幅の両者ともサーバの管理者が設定するデータである。
性能モデルデータの例を図3に示す。性能モデルデータは、業務毎に予め用意する。さらに、それぞれの業務に対して、業務サーバの稼動状態と構成情報ごとに業務サーバに接続してサービスを受けているユーザ数と応答時間の関係をメモリレイテンシの遅延量ごとに、予め用意しておく。図3では、ユーザ数と応答時間の関係をグラフにしているが、実際に格納されるデータの形式は、関数あるいは表の形式となっている。
性能ポリシーデータの例を図4に示す。性能ポリシーデータは、ポリシーの集合30から構成される。ポリシーの集合30は、更にポリシー1に示されるような、ある目的を達成するための判断方法が記述されている。ポリシー1では、応答時間を予め設定した目的応答時間を遵守しているか検査し、その目的が充足されないときには、メモリレイテンシの遅延を変更してサーバの性能を変更する方法が記述されている。ポリシーが集合となっているのは要求される目的によって判断方法を変えていく必要があるからである。
次に、このポリシー1について詳細を説明する。
ポリシーは、目的と方法から構成される。図4のポリシー1では、目的は、「応答時間を設定時間±許容幅に収める」ことであり、方法はフローチャートで示されている。今回は理解を容易にするためにフローチャートで記述したが、スクリプト言語での記述でも可能である。以下にフローチャートに示した応答時間を制御する方法について説明する。
(ステップ31)管理サーバ上の管理プログラムが、クライアントや業務サーバから、管理者が予め設定した時間間隔で、応答時間や稼動状態を表す情報(性能統計データ)を収集する。
(ステップ32)応答時間のヒストグラムを作成し、90%値を計算する。90%値とは、応答時間の分布で90%値以下の応答時間の分布が全データの90%となる値のことである(図9)
(ステップ33)(目標応答時間±許容幅)に応答時間の90%値が収まっているか判定し、収まっている場合はステップ31を実行し、収まっていない場合はステップ34を実行する。
(ステップ34)図5(a)に示す性能モデルデータのグラフにおいて、現在のメモリレイテンシ遅延のグラフLb上の点(Up,Ri)が(Up,Rp)と重なるようにグラフを平行移動する。
(ステップ35)ステップ34で操作した後のグラフ(図5(b))で、現在のユーザ数で目標応答時間Rqを通るグラフを探す。その結果見つかったグラフに対応するメモリレイテンシの遅延Lcを業務サーバに適用することを決定。適当なグラフが見つからなかった場合は、最も目標に近いグラフを選択する。
(ステップ36)ステップ35で決定したメモリレイテンシの遅延Lcを業務サーバに設定する。
観測対象データの例を図6に示す。観測対象データは、どのクライアントや業務サーバで何のデータを観測するかサーバの管理者が設定をする。図6では、クライアントx0で応答時間を観測、業務サーバy0でCPU使用率、接続ユーザ数、ディスク待ち行列長を観測対象としている。
性能統計データを例を図7と図8に示す。管理者が予め設定した時間間隔で管理サーバが、稼動状態に関するデータをクライアントや業務サーバから収集する。図7に示すようにCPU使用率、接続ユーザ数、ディスク待ち行列といったデータは管理サーバからデータの要求が到着する間に採取したデータの平均値となっている。クライアントで計測する応答時間は、図8に示すように、クライアントですべての応答時間のログを採取し、管理サーバに送られてきた応答時間の集合(R00,R01,…,R0n)(R10,R11,…,R1n)(R20,R21,…,R2n)として記録する。管理サーバ上の管理プログラムは、これらの統計データから図9に示す90%値Rth0,Rth1、Rth2を算出し、性能統計データとして記録する。この90%値は上述のポリシーがメモリレイテンシを変更するかどうかの判定に用いている。
構成情報データの例を図10に示す。構成情報データは図10(a)に示した各業務サーバのメモリレイテンシの遅延をどのように変更したかのログと、図10(b)に示したサーバ構成情報からなる。図10(a)では、業務サーバyi(i=0,1,2)で、メモリレイテンシの遅延がDLi0、DLi1,DLi2と変更してきたことを示している。一番最後に記録されているメモリレイテンシの遅延が現在の遅延の大きさである。図10(b)の構成情報は、CPU数、CPU周波数、メモリ搭載量、ディスクドライブ数等が含まれる。
次に、応答時間を一定にする処理の流れを初期化時と稼動時に分けて説明する。
(初期化時)
初期化時の処理の流れを図11を用いて説明する。
システム管理者がまず、現在の業務サーバの構成情報やメモリレイテンシの遅延の設定状態の調査を管理サーバに要求する(40)。管理サーバは、業務サーバに情報を問い合わせ(41)、その結果を構成情報データに記録(42)、同時にシステム管理者に構成情報を表示する(43)。システム管理者は、目標性能データ(目標応答時間と許容幅)と性能モデルデータと性能ポリシーを管理サーバ登録する(44、45,46)。
次に、システム管理者は、初期状態でのメモリレイテンシの遅延値を決定し、業務サーバに登録するために、業務サーバの構成変更要求を管理サーバに送る(47)。管理サーバは、目標性能データ、性能モデルデータ、性能ポリシーデータ、及び構成情報からメモリレイテンシの遅延値を算出する(48)。そして、業務サーバに対してメモリレイテンシの遅延設定する(49)。その後、管理サーバは、正しく設定されているか調査(50)した後、構成情報データを更新(51)、管理者にも変更結果を画面表示する(52)。正しく書き込めない場合は再度実行する(図示せず)。管理者が指定した回数失敗した場合は、管理者に通知し管理者の指示を待つ(図示せず)。

その後、管理者は、管理サーバに稼動情報の測定を開始する要求を送る(53)。管理サーバは、クライアントと業務サーバに測定用のエージェントを起動する要求を送る(54)。その要求を受けたクライアントと業務サーバで、監視エージェントが応答時間や稼動状態の情報の測定を開始する(55,56)。
(稼動時)
システム稼動時に応答時間を一定にするためにメモリレテインシを制御する流れを図12を用いて説明する。
クライアントと業務サーバ上では常に性能の監視エージェントが稼動している。管理サーバ上の管理プログラムは、クライアントと業務サーバの監視エージェントに対して、管理者が予め設定したタイミングで定期的に応答時間の測定結果や稼動状態を送付する要求を発行する(60)。クライアントでは、監視エージェントが応答時間測定結果を管理サーバに送付する(61)。業務サーバでは、監視エージェントが稼動状態測定結果を管理サーバに送付する(62)。これらの応答時間や稼動状態のデータは性能統計情報データとして管理サーバで管理される。
管理サーバ上の管理プログラムは、性能統計情報データと目標性能データから、目標性能の条件を満足しているか判定し(64)、その結果を管理者に表示する(63)。
管理プログラムが、目標性能の条件を満足していないと判定した場合、性能統計情報データ、目標性能データ、性能ポリシーデータ、性能モデルデータ、及び構成情報データからメモリレイテンシの遅延の設定値を決める(65)。そして、業務サーバに対して、(65)で決めたメモリレイテンシの遅延の値を設定する(66)。管理プログラムは、正しくメモリレイテンシの遅延が設定されたか、業務サーバに問い合わせて(68)、正しい値であれば構成情報データを更新し、管理者に変更情報を表示する(70)。正しく書き込めない場合は再度実行する(図示せず)。管理者が指定した回数失敗した場合は、管理者に通知し管理者の指示を待つ(図示せず)。
以上で、応答時間を一定にする処理の流れを初期化時と稼動時に分けて説明した。
図13は、本発明の第2の実施例を表すCPUの構成図である。
CPU50は、CPUコア101、キャッシュメモリ102、アドレスキュー104、106、データキュー108、110、キュー制御回路105,107,109、レイテンシ可変キュー制御回路103から構成される。
CPUコア101は、命令を処理する部分であり、CPU内蔵のキャッシュメモリ102と接続している。CPUコア101は、命令やデータをキャッシュメモリ102から取ってくるが、キャッシュメモリ102にCPUコア101で必要とするデータが存在しない場合(キャッシュミス)は、キュー104を通して、アドレスバス111に主記憶あるいは他のキャッシュが持っているデータにアクセスするためのトランザクションを発行する。アドレスバスに発行されたメモリ要求トランザクションは同じアドレスバス111に接続している他のCPU(図示せず)とチップセット114で受信する。
他のCPUはCPU100と同じ構造なので、ここではCPU100を使って説明する。アドレスバス111に発行されたメモリ要求トランザクションは、キュー106を経由してCPUコア101に到着する。CPUコア101は、キャッシュメモリ102にトランザクションが要求しているアドレスのデータが無いか調べる。
これは、一般的なバススヌーピングの動作を意味する。キャッシュメモリにメモリ要求トランザクションが要求するデータがあるかアドレスバス111あるいは、別の専用線(図示せず)を通して、要求発行元のCPUに通知する。存在している場合は、データバスへキュー108を通してデータバス112にデータを転送する。
一方、アドレスバス111からチップセット114へ転送されたメモリ要求トランザクションは、チップセット114から主記憶(図示せず)や他のチップセット(図示せず)に接続しているアドレスバスに転送され、そのアドレスバスに接続しているCPUへ問い合わせが行き、バススヌーピングが行われキャッシュにデータが有るか無いか検査した結果が要求発行元のCPUに通知される。また、主記憶からは、メモリ要求トランザクションの要求するアドレスのデータがチップセット114に転送される。チップセット114では、バススヌーピング結果から、主記憶からのデータか、他のキャッシュから送られたデータを判定してデータバスの112にデータを転送する。CPU100は、キュー110を経由してこのデータをキャッシュメモリに格納し、CPUコアでの処理に使用する。
キュー制御回路105,107,109の構成と動作について図14を用いて説明する。図14に示すように、キュー制御回路120は、ライトポインタ121、ポインタ制御回路122、リードポインタ制御回路123から構成される。ライトポインタ121は、カウンタで構成され、新規に到着したトランザクションを格納するキューの位置を示し、ライトポインタ信号を出力する。一方、リードポインタ123は、キューから発行するトランザクションが格納されている位置を示し、ライトポインタ信号を出力する。
キュー制御回路は120は、キューに格納するトランザクションが来たことを意味するセット信号127をトランザクション発行元から受信して、ポインタ制御回路122に入力する。ポインタ制御回路は、トランザクションの書き込み後、セット信号が到着したときの値をカウントアップして指す位置を一つずらす。また、リリース信号125はトランザクションを発行可能であることをキューの接続先のブロック(図示せず)に通知する。このブロックがトランザクションを受け取ったことを示すリリース完了信号128をポインタ制御回路が受け取ると、リードポインタ123を一つカウントアップしてポインタの指す位置を一つずらす。
次に、レイテンシ可変キュー制御回路103の構成について図15を用いて説明する。図15に示すように、レイテンシ可変キュー制御回路129は、先に説明したキュー制御回路120に遅延制御回路120と待ちカウンタ131と遅延値レジスタ132と比較器133を追加した構成となっている。追加した部分は、メモリレイテンシを変更するために、キューのリリースタイミングを遅らせる動作をする。遅延時間は、遅延値レジスタ132に設定する。この遅延値レジスタ132は、メモリ空間上に配置されたレジスタで、ソフトウェアからアクセスして適当な数値を設定できる構造となっている。
レイテンシ可変キュー制御回路103のこの動作を図16を用いて説明する。
(ステップ140)遅延制御回路120は、トランザクションを格納するキューに何もトランザクションが格納されている場合、ステップ31へ、トランザクションが格納されていない場合は、ステップ32を実行する。
(ステップ31)遅延制御回路120は、キューに格納したトランザクションをリリースするとき、待ちカウンタ131をスタートし、トランザクション発行先でトランザクションを受け取らないようにするため、リリース信号はアクティブにしないでおき、ステップ33へ。
(ステップ32)遅延制御回路120は、キューにトランザクションをセットしたとき、待ちカウンタ131をスタートし、トランザクション発行先でトランザクションを受けたら無いようにするため、リリース信号はアクティブにしないでおき、ステップ33へ。
(ステップ33)遅延制御回路120は、比較器133で待ちカウンタ131と遅延レジスタ132の内容が一致することを検出したとき、キューからトランザクションをリリースする要求をポインタ制御回路122に発行してリリース信号をアクティブにする。これと、同時に待ちカウンタ131をリセットし、ステップ140へ。
上記のレイテンシ可変キュー制御回路103によってCPU50の発行するメモリ要求トランザクションの発行タイミングを管理者が遅延値レジスタ132に設定したサイクル数がけ遅延させることができ、メモリレイテンシの制御が可能となる。
図17は、本発明の第3の実施例を表すチップセットの構成図である。チップセット150は、アドレスキュー154、155、164、170とデータキュー156、157、165、166、171、172とキュー制御回路159、160、161、168、169、173、174、175とレイテンシ可変キュー制御回路158、167とマルチプレクサ162,163、183、184、185、186から構成される。
キュー制御回路159、160、161、168、169、173、174、175は、第2の実施例で説明した図14と同一の回路である。また、レイテンシ可変キュー制御回路158、167は、第2の実施例で説明した図15の回路と同一の回路である。これらのキュー制御回路、レイテンシ可変キュー制御回路の構成及び動作の説明は第2の実施例を参照することにし、ここでは説明を省略する。
次にチップセット150と他のモジュールとのインタフェースについて説明する。
第一に、チップセット150は、アドレスバス152、及びデータバス153と接続しており、これらを通して、CPU150−0、150−1、150−2、150−3とメモリ要求トランザクション、及びデータトランザクションを相互に転送可能となっている。
第二に、チップセット150は、メモリコントローラ180と相互に接続し、メモリ要求トランザクションをチップセット150からメモリコントローラ180を経由してメモリモジュール181に転送される。メモリモジュール181は要求のあったアドレスのデータをメモリコントローラ180を経由してチップセットへ転送される。また、CPUのキャッシュラインのリプレースによって発生するライトバックトランザクションは、チップセット150から書き込みアドレスを指定するライトバックトランザクションと、書き込みデータのデータトランザクションがチップセット150からメモリコントローラ180を経由してメモリモジュール181に転送され、データの書き込みが行われる。
第三に、チップセット150は、I/Oブリッジ183とも相互に接続しており、ネットワークカードやSCSIカード等のPCIデバイス184からに主記憶へのDMA転送をするインバウンド・トランザクションやCPUからPCIデバイスへのアクセスであるインバウンド・トランザクションをI/Oブリッジ183を経由して相互に転送する。
最後に、チップセット150は他のチップセット182と相互に接続され、メモリ要求トランザクションやライトバックトランザクション、データトランザクション等が相互に転送される。この接続はチップセット182に接続しているCPUやメモリモジュールやPCIデバイスへのアクセスをするために使用される。
また、クロスバスイッチを用いて2個以上のチップセット間を相互接続する場合もある。これまでの例の類推で理解できるため、ここでは説明を省略する。
図17のチップセット150の動作について説明する。
なお、今回対象としているチップセットではキャッシュコヒーレンシ制御のためスヌーピング方式を使っているが、キャッシュコヒーレンシ制御の詳細については、本特許によって変更はないので、本実施例ではトランザクションの流れについてだけ説明をする。CPU150−i(i=0,1,2,3)で発行されたメモリ要求トランザクションは、アドレスバス152を経由してチップセット150のアドレスキュー154に格納される。アドレスキュー154は、レイテンシ可変キュー制御回路158で制御されていて、管理者により、アドレスキュー154からトランザクションがリリースされる遅延時間が決められる。アドレスキュー154から発行されたメモリ要求トランザクションは、メモリコントローラ180とI/Oブリッジ183、チップセット182に転送され、キャッシュコヒーレンシ制御が行われる。CPUのキャッシュメモリなどに最新のデータがある場は、チップセット182からデータが、データキュー172、マルチプレクサ163、データキュー157を経由して要求元のCPUのあるデータバス153に転送され、要求元CPUがデータを受け取る。主記憶(メモリモジュール181)からのデータは、マルチプレクサ163、データキュー157を経由して要求元のCPUのあるデータバス153に転送され、要求元CPUがデータを受け取る。
一方、PCIデバイス184発のインバウンド・トランザクションは、I/Oブリッジ183を経由してチップセット150のアドレスキュー164に格納される。このアドレスキュー164はレイテンシ可変キュー制御回路167でリリースするタイミングが変更される。アドレスキュー164で発行されたインバウンド・トランザクションはマルチプレクサ162を経由してアドレスキュー155を経由してアドレスバス152に発行されキャッシュコヒーレンシのための処理が行われる。また、メモリへはマルチプレクサ184を経由してメモリコントローラ180に転送される。他ヒップセット182へのキャッシュコヒーレンシ処理や、メモリへのアクセスのために。マルチプレクサ183を経由してチップセット182に転送される。DMA転送でメモリのデータを読み出す場合は、メモリモジュール181からメモリコントローラ180、マルチプレクサ185、データキュー166を経由してI/Oブリッジへ転送される。DMA転送でI/Oからメモリにデータを書き込む場合は、メモリ要求トランザクションがI/Oブリッジ183からキュー164、マルチプレクサ184を経由してメモリコントローラ180に転送される。一方、データはデータキュー165、マルチプレクサ186を経由して、メモリコントローラ180に転送され、メモリモジュール181にデータを書き込む。
以上の動作により、チップセット内のアドレスキューのリリースタイミングを操作してサーバの性能を制御することができる。
図18は、本発明の第4の実施例を表すファームウェアの階層構成を示したものである。計算機は、ハードウェア200、ファームウェア201、OS202、アプリケーション203の階層構造となっている。ファームウェア201は、ハードウェア200の電源投入後の初期化を行い、OS202が稼動するための環境をハードウェア200に設定する。
ハードウェア200は、実施例2または実施例3で示したメモリレイテンシの遅延を変更する機構が備わっている。このメモリレイテンシの遅延のサイクル数は、メモリ空間上に割り当てられたコンフィグレーションレジスタとして備えられている。電源投入後あるいはシステムのリセット後にファームウェア201が起動時しているとき、このコンフィグレーションレジスタにアクセスすることでハードウェアの性能を変更する。
計算機の開発時など頻繁にファームウェアのセットアップ画面に切り替える必要がある場合、あるいはファームウェが表示するメッセージを読み取らなければならないとき、ハードウェアの性能を低下させることで、設定画面への切り替えメッセージやその他画面に表示されるエラーメッセージなどを見逃さないようにする。
図19は、ファームウェア201がハードウェア200のメモリレイテンシの遅延を設定する処理の流れを示している。
計算機の管理者220が、ハードウェア200の電源を投入する(210)。すると、ハードウェア200では、BIST(Built In Self Test)を実行する(211)。CPU、チップセット、メモリがそれぞれBISTを実行する。それらが完了した時点でハードウェア200は、ROMに格納されたファームウェア201を起動する(212)。ファームウェア201は起動した後、ハードウェア200に対してメモリレイテンシの遅延を設定する。この遅延の大きさは、予め管理者220が設定しておく。ファームウェア201が、ハードウェア200の初期化の際にメッセージを表示している期間(216)やセットアップ画面で切り替えキー入力待ちをしている期間(217)だけハードウェア200のメモリレイテンシの遅延を大きくしておく。これらの期間が終わり、OSのブートローダをメモリ上にロードしようとする前に、ファームウェア201はメモリレイテンシの遅延を0に設定し、元の性能に戻す(213)。この後、ファームウェア201は、OSのブートローダをメモリ上にロードし(214)、OSを起動する(215)。
以上の動作により、ファームウェが表示するメッセージを読み取らなければならないとき、ハードウェアの性能を低下させて設定画面への切り替えメッセージやその他画面に表示されるエラーメッセージなどを見逃さないようにすることができる。
本発明は情報処理システムの応答性能を稼動状態をもとに安定に制御する手段を提供し、用いているCPUの種類等に影響することなく汎用的に性能を設定できるため、この分野に広く採用が期待される。
本発明の第1の実施例を表すシステムのブロック図。 目標性能データの一例。 性能モデルデータの一例。 性能ポリシーデータの一例。 性能モデルデータの変換過程。 監視対象データの一例。 性能統計データの一例(応答時間を除く)。 性能統計データの一例(応答時間)。 応答時間分布での90%値。 構成情報データの一例。 第1の実施例のシステムの動作の流れ(初期化時)。 第1の実施例のシステムの動作の流れ(稼動時)。 本発明の第2の実施例を表すCPUのブロック図。 キュー制御回路のブロック図。 レイテンシ可変キュー制御回路のブロック図。 レイテンシ可変キュー制御回路の遅延制御回路の論理。 本発明の第3の実施例を表すチップセットのブロック図。 本発明の第4の実施例を表すファームウェアのブロック図。 ファームウェアの処理の流れ。
符号の説明
1 クライアント
2 業務サーバ
3 クライアント監視エージェント
4 管理サーバ
5 管理プログラム
8 目標性能データ
9 性能モデルデータ
10 性能ポリシーデータ
11 監視対象データ
12 性能統計データ
13 構成情報データ
21 サーバ監視エージェント
100,151−0,151−1,151−2,151−3 CPU
101 CPUコア
102 キャッシュメモリ
103,129,158,167 レイテンシ可変キュー制御回路
105,107,109,120,159,160,161,167,168,169,173,174,175 キュー制御回路
104,106,154,155,164,170 アドレスキュー
108,110,156,157,165,166,171,172 データキュー
111,152 アドレスバス
112,153 データバス
114,150,182 チップセット
121 ライトポインタ
122 ポインタ制御回路
123 リードポインタ
124 ライトポインタ信号
125 リリース信号
126 リードポインタ信号
127 セット信号
128 リリース完了信号
130 遅延制御回路
131 待ちカウンタ
132 遅延値レジスタ
133 比較器
180 メモリコントローラ
181 メモリモジュール
183 I/Oブリッジ
184 PCIデバイス
162,163,183,184,185,186 マルチプレクサ
200 ハードウェア
201 ファームウェア
202 OS
203 アプリケーション。

Claims (2)

  1. 稼動中にメモリレイテンシを変更可能とするインタフェースを有する計算機であって、業務アプリケーションプログラム及び該計算機の稼働情報を収集する第1のエージェントプログラムが稼働する業務サーバと、
    前記業務サーバからの応答時間を計測する第2のエージェントプログラムが稼動し、前記業アプリケーションプログラムによるサービスを受けるクライアントと、
    前記業務サーバから前記クライアント計算機への応答時間と前記業務サーバのメモリレイテンシとの相関関係を示す性能モデルデータと、前記業務サーバから前記クライアントへの応答時間の目標値及び応答時間の許容範囲を示す目標性能データとを予め前記業務アプリケーションプログラムに対応して保持する記憶装置を備え、前記第1のエージェントプログラムが収集した前記稼働情報及び前記第2のエージェントプログラムが計測した前記応答時間とを収集し、前記業務サーバのメモリレイテンシを決定するための手順を示すポリシーデータに従って、前記応答時間の統計データを作成して前記目標値と比較し、該比較結果が前記許容範囲を逸脱していることを示す場合に、前記目標性能データ、前記稼働情報、及び前記性能モデルデータに基づき前記業務サーバのメモリレイテンシを制御するサーバ管理プログラムが稼働する管理サーバとを有し、
    前記業務サーバ、前記クライアント計算機、及び前記管理サーバとがネットワークを介して接続された計算機システム。
  2. 稼動中にメモリレイテンシを変更可能とするインタフェースを有する計算機であって業務アプリケーションプログラムが稼働する業務サーバと、ネットワークを介して該業務サーバから前記業務アプリケーションプログラムのサービスを受けるクライアントと、前記業務サーバ及び前記クライアントとネットワークを介して接続される管理サーバとを有する計算機システムにおいて、前記管理サーバを、
    前記業務サーバの稼働情報を前記業務サーバ上で稼働するエージェントより収集する手段と、
    前記業務サーバから前記クライアントへの応答時間を前記クライアント上で稼働するエージェントから収集する手段と、
    前記業務サーバのメモリレイテンシを決定するための手順を示すポリシーデータに従って、前記アプリケーションプログラムに対応して予め与えられた応答時間の目標値と収集した応答時間の統計データとを比較し、該比較結果が予め与えられた許容範囲を逸脱していることを示す場合に、前記稼働情報、前記目標値、及び前記業務サーバから前記クライアントへの応答時間と前記業務サーバのメモリレイテンシとの相関関係を前記アプリケーションプログラムごとに示す性能モデルデータに基づき前記業務サーバのメモリレイテンシを決定する手段と、
    決定されたメモリレイテンシに従い前記業務サーバのメモリレイテンシを制御する手段として機能させるためのサーバ管理プログラム。
JP2004272689A 2004-09-21 2004-09-21 一定の応答時間を保証する計算機システム Expired - Fee Related JP4407445B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004272689A JP4407445B2 (ja) 2004-09-21 2004-09-21 一定の応答時間を保証する計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004272689A JP4407445B2 (ja) 2004-09-21 2004-09-21 一定の応答時間を保証する計算機システム

Publications (2)

Publication Number Publication Date
JP2006091946A JP2006091946A (ja) 2006-04-06
JP4407445B2 true JP4407445B2 (ja) 2010-02-03

Family

ID=36232903

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004272689A Expired - Fee Related JP4407445B2 (ja) 2004-09-21 2004-09-21 一定の応答時間を保証する計算機システム

Country Status (1)

Country Link
JP (1) JP4407445B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4992466B2 (ja) 2007-02-22 2012-08-08 富士通株式会社 情報処理装置、その制御方法及び制御プログラム
CN110321272B (zh) * 2019-06-24 2023-01-06 西北工业大学 一种高安全高可靠民机飞控计算机性能评测方法

Also Published As

Publication number Publication date
JP2006091946A (ja) 2006-04-06

Similar Documents

Publication Publication Date Title
CN100514299C (zh) 利用虚拟存储器的事务型存储器执行
US8108632B2 (en) Kernel and application cooperative memory management
CN100422940C (zh) 在数据处理系统中仲裁线程访问共享资源的系统和方法
US10620877B2 (en) Managing a collection of data
Molka et al. Detecting memory-boundedness with hardware performance counters
US11461151B2 (en) Controller address contention assumption
JP2008071237A (ja) ハードウェアモニタを用いた性能評価システム及び再構築可能な計算機システム
Qiao et al. Hermit:{Low-Latency},{High-Throughput}, and Transparent Remote Memory via {Feedback-Directed} Asynchrony
WO2019215795A1 (ja) 情報処理装置、チューニング方法およびチューニングプログラム
JP4407445B2 (ja) 一定の応答時間を保証する計算機システム
CN101647003B (zh) 在仿真处理环境中提供存储器一致性
KR20030041612A (ko) 서버 병목을 실시간으로 분석하는 방법
JP6788188B2 (ja) 制御装置および制御プログラム
Raybuck Scalable tiered main memory management for big data applications
US10102094B2 (en) Simulating legacy bus behavior for backwards compatibility
JP2023538241A (ja) メモリロケーションに記憶されたデータが修正されたかどうかを識別するためのメモリロケーションの監視
JPH0310343A (ja) ホットスポットデータ管理処理方式
Supalov et al. Addressing System Bottlenecks

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060425

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070314

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090331

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090414

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090818

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090901

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: 20091020

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: 20091102

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

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131120

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees