(57)【特許請求の範囲】
【請求項１】
サービスに係るサーバ処理とクライアント処理、およびその他の処理を実行するＣＰＵを有する計算機システムであって、
前記サーバ処理が実行中であれば第１の状態を記憶し、前記クライアント処理が実行中であれば第２の状態を記憶し、前記その他の処理が実行中であれば第３の状態を記憶する処理識別部と、
前記サーバ処理を実行開始する時に前記処理識別部を第１の状態にし、前記サーバ処理の実行が終了したら前記処理識別部を前記第３の状態にするサーバ処理実行部と、
前記クライアント処理を実行開始する時に前記処理識別部を前記第２の状態にし、前記クライアント処理の実行が終了したら前記処理識別部を前記第３の状態にするクライアント処理実行部と、
前記ＣＰＵにおいて前記サーバ処理が実行中である第１のＣＰＵ時間、前記クライアント処理が実行中である第２のＣＰＵ時間、および前記その他の処理が実行中である第３のＣＰＵ時間を記憶する性能情報記憶部と、
併設されたタイマー処理手段によってあらかじめ定められた時間間隔で起動され、前記処理識別部が前記第１の状態であれば前記第１のＣＰＵ時間に前記時間間隔を加算し、前記処理識別部が前記第２の状態であれば前記第２のＣＰＵ時間に前記時間間隔を加算し、前記処理識別部が前記第３の状態であれば前記第３のＣＰＵ時間に前記時間間隔を加算する性能情報取得部と
を有することを特徴とする計算機システム。
【請求項２】
前記計算機システムのユーザ空間で動作するサーバ処理デーモンおよびクライアント処理デーモンを有し、
前記サーバ処理が前記サーバ処理デーモンからの要求によって起動されて前記計算機システムのカーネル空間で動作し、
前記クライアント処理が前記クライアント処理デーモンからの要求によって起動されて前記計算機システムのカーネル空間で動作することを特徴とする、請求項１に記載の計算機システム。
【請求項３】
前記ＣＰＵが複数のＣＰＵによって構成されるＣＰＵユニットであり、
前記性能情報記憶部が前記複数のＣＰＵの各々に対して前記第１の状態、前記第２の状態、および前記第３の状態のうちいずれかを記憶する複数の記憶域を有し、
前記性能情報取得部が前記複数の記憶域のすべてに対して、前記記憶域が前記第１の状態であれば前記第１のＣＰＵ時間を加算し、前記記憶域が前記第２の状態であれば前記第２のＣＰＵ時間を加算し、前記記憶域が前記第３の状態であれば前記第３のＣＰＵ時間を加算することを特徴とする、請求項２に記載の計算機システム。
【請求項４】
前記サービスがＮＦＳ（Network File System）、ＳＭＢ（Server Message Block）、ＮＩＳ（Network Information Server）、ＬＤＡＰ（Lightweight Directory Access Protocol）のうち１つ以上を含むことを特徴とする、請求項１ないし請求項３のうちいずれか１項に記載の計算機システム。
【請求項５】
前記性能情報記憶部に記憶された前記第１のＣＰＵ時間、前記第２のＣＰＵ時間、および前記第３のＣＰＵ時間を出力する出力手段を有することを特徴とする、請求項１ないし請求項４のうちいずれか１項に記載の計算機システム。
【請求項６】
サービスに係るサーバ処理とクライアント処理、およびその他の処理を実行するＣＰＵを有する計算機システムにあって性能情報を取得する方法であって、
前記サーバ処理を実行開始する時に第１の状態を記憶し、前記サーバ処理の実行が終了したら第３の状態を記憶するサーバ処理実行工程と、
前記クライアント処理を実行開始する時に第２の状態を記憶し、前記クライアント処理の実行が終了したら第３の状態を記憶するクライアント処理実行工程と、
あらかじめ定められた時間間隔で起動され、前記第１の状態が記憶されていれば前記ＣＰＵにおいて前記サーバ処理が実行中である第１のＣＰＵ時間に前記時間間隔を加算し、前記第２の状態が記憶されていれば前記ＣＰＵにおいて前記クライアント処理が実行中である第２のＣＰＵ時間に前記時間間隔を加算し、前記第３の状態が記憶されていれば前記ＣＰＵにおいて前記その他の処理が実行中である第３のＣＰＵ時間に前記時間間隔を加算する性能情報取得工程と
を有することを特徴とする性能情報取得方法。
【請求項７】
前記ＣＰＵが複数のＣＰＵによって構成されるＣＰＵユニットであり、
前記サーバ処理実行工程および前記クライアント処理実行工程が前記複数のＣＰＵの各々に対して前記第１の状態、前記第２の状態、および前記第３の状態のうちいずれかを記憶し、
前記性能情報取得工程が前記複数の記憶域のすべてに対して、前記記憶域が前記第１の状態であれば前記第１のＣＰＵ時間を加算し、前記記憶域が前記第２の状態であれば前記第２のＣＰＵ時間を加算し、前記記憶域が前記第３の状態であれば前記第３のＣＰＵ時間を加算することを特徴とする、請求項６に記載の性能情報取得方法。
【請求項８】
前記第１のＣＰＵ時間、前記第２のＣＰＵ時間、および前記第３のＣＰＵ時間を出力する出力工程を有することを特徴とする、請求項６ないし請求項７のうちいずれか１項に記載の性能情報取得方法。
【請求項９】
サービスに係るサーバ処理とクライアント処理、およびその他の処理を実行するＣＰＵを有する計算機システムに、
実行開始する時に第１の状態を記憶し、実行が終了したら第３の状態を記憶するサーバ処理と、
実行開始する時に第２の状態を記憶し、実行が終了したら第３の状態を記憶するクライアント処理と、
あらかじめ定められた時間間隔で起動され、前記第１の状態が記憶されていれば前記ＣＰＵにおいて前記サーバ処理が実行中である第１のＣＰＵ時間に前記時間間隔を加算し、前記第２の状態が記憶されていれば前記ＣＰＵにおいて前記クライアント処理が実行中である第２のＣＰＵ時間に前記時間間隔を加算し、前記第３の状態が記憶されていれば前記ＣＰＵにおいて前記その他の処理が実行中である第３のＣＰＵ時間に前記時間間隔を加算する性能情報取得処理と
を実行させることを特徴とする性能情報取得プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムにおいてＣＰＵ時間の取得に関し、特にサービスに係る処理に要したＣＰＵ時間の取得に関する。
【背景技術】
【０００２】
コンピュータネットワークにおいて、ＮＦＳ（Network File System）、ＳＭＢ（Server Message Block）、ＮＩＳ（Network Information Server）、ＬＤＡＰ（Lightweight Directory Access Protocol）などのような、ネットワークを介して使用されるサービス（以後単にサービスという）が使用されることが多くなっている。それにつれて、コンピュータ資源のうちの多くの割合がそのようなサービスに係る処理で使用される結果、ユーザの処理が阻害されてしまうケースが出てきている。特に、ＨＰＣ（High-Performance Computing）分野などにおいては、ネットワーク負荷などシステムのオーバーヘッドが少なくするような運用を行い、ユーザプログラムの実行に多くのコンピュータ資源を割り当てることが望ましい。
【０００３】
そのためには、それらのサービスの運用に係るコンピュータシステム（以後単にシステムという）の負荷状況を監視し、システム利用状況の分析を行い、運用を最適化することが重要となる。特にシステムの高負荷状態の原因を特定するには、性能情報を取得し、そこから各々の機能ごとにＣＰＵ上での処理に要した時間（ＣＰＵ時間）等の解析を行うことが一般的である。
【０００４】
このことに関連して、次のような文献がある。特許文献１には、ストレージネットワークの性能情報の収集を、タイマーによって定期的に起動されるエージェントによって行うという技術が記載されている。特許文献２には、スキャンシステムにおいてスキャナが自らの処理状態をサーバに記憶することが記載されている。特許文献３には、複数のプロセッサが主記憶装置を共有して複数のプロセスを並列に動作させるコンピュータシステムにおけるバッファ制御方式の一例が記載されている。
【０００５】
特許文献４には、時間計測を指示するフラグを用いることでユーザプログラムの任意の区間の処理時間を測定するという技術が記載されている。特許文献５には、プログラムを実行するタスクが消費した時間の内訳を、該プログラムの構成要素（セグメント、ページなど）を単位として測定するという技術が記載されている。
【０００６】
特許文献６には、ユーザ空間でデーモン（daemon）が動作し、該デーモンに対応するモジュールがカーネル空間で動作するという通信フロー制御方式が記載されている。特許文献７には、ネットワークの性能管理に係る（入出力パケット数、ＣＰＵ負荷率など）の性能情報を得るポーリング間隔を、過去の性能値の時間変動率などをもとに算出するという技術が記載されている。
【０００７】
【特許文献１】特開２００５−１５７９３３号公報
【特許文献２】特開２００６−２１７２１２号公報
【特許文献３】特開平０５−２４１８６２号公報
【特許文献４】特開平０５−２７４１８２号公報
【特許文献５】特開平０７−１５２６１２号公報
【特許文献６】特開平１１−１４３８００号公報
【特許文献７】特開平１１−１５４９５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、ＮＦＳサーバを例に取った場合、従来はｎｆｓｓｔａｔ等による統計情報の取得のみが可能であり、システム全体に対する負荷を測定する方法がない。また、ＮＦＳに係る処理中にシステム性能情報取得のための処理を加える事は、既に標準的な動作が既定されているＮＦＳでは困難であり、また性能劣化にもつながるため、システムに対し影響を与えることなく性能情報を取得することはできなかった。
【０００９】
ＮＦＳは高速なＩ／Ｏを実現するために、ユーザプログラムが発行するＩ／Ｏを分割し、システムに常駐するデーモンが非同期にＩ／Ｏを実施している。このようなデーモンは割込みなどのイベントを契機にシステムとして動作し、また、他のユーザプログラムのＩ／Ｏとも同時に複数のデーモンが処理するため、個々のユーザプログラムのためにどの程度ＣＰＵを消費したかを知ることができなかった。
【００１０】
従来のシステム性能情報は、ユーザプログラムの動作したユーザ時間と、ＯＳなどが動作したシステム時間とを区別することしかできない。しかしながらそれらのデーモンはＯＳの一部として動作するため、ＮＦＳデーモンの動作したＣＰＵ時間はシステム時間として計上される。そのため、ＮＦＳに係る処理に要した負荷を知ることは困難であった。
【００１１】
また、性能情報を取得するＬｉｎｕｘのｓａｒコマンドによって過去のＮＦＳ統計情報も取得できるが、取得できる情報はＲＰＣ（リモートプロシージャコール）実行回数や転送パケット数などであり、ＣＰＵ時間ではない。それらのような、ＮＦＳの転送パケット数などの統計情報でＮＦＳに係る負荷の原因を特定するには、ＮＦＳを利用する全てのノードで大量のＮＦＳのＩ／Ｏ要求があったかを調べる必要があった。
【００１２】
さらに、前述のシステム性能情報で知ることのできるユーザ時間とシステム時間のうち、ＮＦＳに係る処理は全てシステム時間に含められていたが、ＮＦＳの動作には、自システムがＮＦＳクライアントとなる場合と、ＮＦＳサーバとして動作する場合の二通りがある。そのため、ＮＦＳクライアントとＮＦＳサーバの両方が動作している場合に、どちらの処理の負荷が高いかを知ることができなかった。
【００１３】
このような場合、カーネル内でどの処理がどれだけ動いたかを分析するには、一般にはカーネルプロファイル機能を利用する。この機能は、タイマーティック（システム上で管理される時間の単位）毎にカーネルの実行アドレスをサンプリングすることで実行中の関数、実行された回数、処理時間等を求める事ができるが、特定の機能のために消費した時間は知ることができない欠点がある。また、全てのＣＰＵに対しタイマーティックごとに実行されるので、オーバーヘッドが大きく、通常の運用時、特に高負荷である時に利用できないという問題もある。
【００１４】
以上ではＮＦＳを例に説明したが、実際にはＮＦＳ以外の、たとえば前述のＳＭＢ、ＮＩＳ、ＬＤＡＰなどのようなサービスにおいても、本質的にはこれと同じ問題点を抱えている。
【００１５】
前述の特許文献の中で、特許文献４は、時間計測を指示するフラグを用いることでユーザプログラムの任意の区間の処理時間を測定する手法について述べている。しかし、この手法はユーザプログラムを対象としているため、カーネル内部の処理は計測できない。また、マルチプロセッサシステムについて考慮されていないので、複数のＣＰＵでシステムコールが発行された場合、資源排他制御の待ち時間が発生しシステムの性能低下につながるといった課題がある。
【００１６】
また、特許文献１および特許文献７の技術は、ネットワークの性能情報を取得する監視手段が性能情報の取得を行う間隔を調整することで、監視対象のネットワークや装置にかかる負荷を軽減しつつ管理に必要な情報を集める手法であるが、ＮＦＳに係る処理に消費したＣＰＵ時間を取得することには適用できない。その他の特許文献も、上記の問題に対して適用できるものではない。
【００１７】
本発明の目的は、サービスに係る処理にかかったＣＰＵ時間を、該処理自体には変更を加えず、また該処理以外のプロセスに影響をほとんど与えることなく、正確に取得することのできる計算機システム、性能情報取得方法、および性能情報取得プログラムを提供することにある。
【課題を解決するための手段】
【００１９】
上記目的を達成するため、本発明に係る計算機システムは、サービスに係るサーバ処理とクライアント処理、およびその他の処理を実行するＣＰＵを有する計算機システムであって、サーバ処理が実行中であれば第１の状態を記憶し、クライアント処理が実行中であれば第２の状態を記憶し、その他の処理が実行中であれば第３の状態を記憶する処理識別部と、サーバ処理を実行開始する時に処理識別部を第１の状態にし、サーバ処理の実行が終了したら処理識別部を第３の状態にするサーバ処理実行部と、クライアント処理を実行開始する時に処理識別部を第２の状態にし、クライアント処理の実行が終了したら処理識別部を第３の状態にするクライアント処理実行部と、ＣＰＵにおいてサーバ処理が実行中である第１のＣＰＵ時間、クライアント処理が実行中である第２のＣＰＵ時間、およびその他の処理が実行中である第３のＣＰＵ時間を記憶する性能情報記憶部と、併設されたタイマー処理手段によってあらかじめ定められた時間間隔で起動され、処理識別部が第１の状態であれば第１のＣＰＵ時間に時間間隔を加算し、処理識別部が第２の状態であれば第２のＣＰＵ時間に時間間隔を加算し、処理識別部が第３の状態であれば第３のＣＰＵ時間に時間間隔を加算する性能情報取得部とを有することを特徴とする。
【００２１】
上記目的を達成するため、本発明に係る性能情報取得方法は、サービスに係るサーバ処理とクライアント処理、およびその他の処理を実行するＣＰＵを有する計算機システムにあって性能情報を取得する方法であって、サーバ処理を実行開始する時に第１の状態を記憶し、サーバ処理の実行が終了したら第３の状態を記憶するサーバ処理実行工程と、クライアント処理を実行開始する時に第２の状態を記憶し、クライアント処理の実行が終了したら第３の状態を記憶するクライアント処理実行工程と、あらかじめ定められた時間間隔で起動され、第１の状態が記憶されていればＣＰＵにおいてサーバ処理が実行中である第１のＣＰＵ時間に時間間隔を加算し、第２の状態が記憶されていればＣＰＵにおいてクライアント処理が実行中である第２のＣＰＵ時間に時間間隔を加算し、第３の状態が記憶されていればＣＰＵにおいてその他の処理が実行中である第３のＣＰＵ時間に時間間隔を加算する性能情報取得工程とを有することを特徴とする。
【００２３】
上記目的を達成するため、本発明に係る性能情報取得プログラムは、サービスに係るサーバ処理とクライアント処理、およびその他の処理を実行するＣＰＵを有する計算機システムに、実行開始する時に第１の状態を記憶し、実行が終了したら第３の状態を記憶するサーバ処理と、実行開始する時に第２の状態を記憶し、実行が終了したら第３の状態を記憶するクライアント処理と、あらかじめ定められた時間間隔で起動され、第１の状態が記憶されていればＣＰＵにおいてサーバ処理が実行中である第１のＣＰＵ時間に時間間隔を加算し、第２の状態が記憶されていればＣＰＵにおいてクライアント処理が実行中である第２のＣＰＵ時間に時間間隔を加算し、第３の状態が記憶されていればＣＰＵにおいてその他の処理が実行中である第３のＣＰＵ時間に時間間隔を加算する性能情報取得処理とを実行させることを特徴とする。
【発明の効果】
【００２４】
本発明は、サービスに係る処理およびその他の処理のいずれが実行中であるかの情報を記憶するように構成したので、該情報に基づいて各々の実行にかかるＣＰＵ時間を正確に取得できる。しかも各々の処理の前後に該情報を変更するようにすればいいので、処理にかかるプログラム自体の変更は必要ない。これによって、サービスに係る処理にかかったＣＰＵ時間を、該処理自体には変更を加えず、また該処理以外のプロセスに影響をほとんど与えることなく、正確に取得することができるという、従来にない優れた計算機システム、性能情報取得方法、および性能情報取得プログラムを提供することができる。
【発明を実施するための最良の形態】
【００２５】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係る計算機システム１００の構成を示す機能ブロック図である。計算機システム１００は共有並列型マルチプロセッサ計算機システムであり、主記憶１０１とＣＰＵユニット１４０と出力装置１７０で構成され、ネットワーク１８０に接続されている。主記憶１０１は、ＯＳが動作するカーネル空間１０２とユーザプログラムが動作するユーザ空間１０３で構成される。
【００２６】
カーネル空間１０２では、性能情報の取得を行う性能取得手段１１０と、処理中のプロセスに後述のＮＦＳ処理識別機構１３１を設定する識別機構設定手段１２０と、プロセス管理情報１３０と、ＮＦＳ１５０と、性能情報を出力装置１７０に記録する性能情報出力手段１６０が動作する。ＮＦＳ１５０は、ＮＦＳサーバ処理１５１とＮＦＳクライアント処理１５２とからなる。
【００２７】
プロセス管理情報１３０は、識別機構設定手段１２０によって使用されるＮＦＳ処理識別機構１３１から構成される。ユーザ空間１０３では、カーネル空間１０２のＮＦＳサーバ処理１５１を起動するＮＦＳサーバデーモン１５３と、ユーザプログラム（図示せず）からのＮＦＳ要求を受け付けるＮＦＳクライアントデーモン１５４が動作する。ＣＰＵユニット１４０はプロセス管理情報１３０を用い、プロセスを実行する。ＮＦＳ処理のリクエストはネットワーク１８０を介して実行される。
【００２８】
性能取得手段１１０は、タイマー処理手段１１１とＮＦＳ性能情報取得手段１１２とＮＦＳ性能情報記憶領域１１３により構成される。タイマー処理手段１１１は一定間隔で、ＮＦＳ性能情報取得手段１１２を起動する。ＮＦＳ性能情報取得手段１１２は、プロセス管理情報１３０のＮＦＳ処理識別機構１３１を利用してＣＰＵ時間の取得を行い、その情報をＮＦＳ性能情報記憶領域１１３に格納する。
【００２９】
ＮＦＳ性能情報記憶領域１１３は、「ＮＦＳサーバＣＰＵ時間」「ＮＦＳクライアントＣＰＵ時間」「その他のＣＰＵ時間」という各々のＣＰＵ時間を記憶する。ＮＦＳ性能情報取得手段１１２は、ＮＦＳ処理識別機構１３１に記憶されている内容にもとづいて、ＮＦＳ性能情報記憶領域１１３は、「ＮＦＳサーバＣＰＵ時間」「ＮＦＳクライアントＣＰＵ時間」「その他のＣＰＵ時間」のうちのいずれかに記憶されている内容を更新する。
【００３０】
識別機構設定手段１２０は、ＮＦＳサーバ処理識別機構設定手段１２１とＮＦＳクライアント処理識別機構設定手段１２２により構成される。ＮＦＳサーバ処理識別機構設定手段１２１は、プロセス管理情報１３０が保持するＮＦＳ処理識別機構１３１を設定する。ＮＦＳクライアント処理識別機構設定手段１２２は、プロセス管理情報１３０が保持するＮＦＳ処理識別機構１３１を設定する。
【００３１】
プロセス管理情報１３０は、ＮＦＳ処理識別機構１３１等などのような各プロセスに固有の情報を保持する。ＮＦＳ処理識別機構１３１は、後述するＮ＋１個のＣＰＵ１４１ａ〜…（＃０〜Ｎ）の各々に対応する複数の記憶域を持つ。ＣＰＵ１４１ａ〜…（＃０〜Ｎ）の各々において、プロセスがＮＦＳサーバ処理１５１を行っている場合は、該ＣＰＵに対応する記憶域が「ＮＦＳサーバ処理中」の状態に設定され、ＮＦＳクライアント処理１５２を行っている場合は「ＮＦＳクライアント処理中」の状態に設定され、ＮＦＳ以外の処理を行っている場合は「ＮＦＳ以外の処理中」の状態に設定される。
【００３２】
ＮＦＳ１５０は、カーネル空間１０２で動作するＮＦＳサーバ処理１５１、ＮＦＳクライアント処理１５２と、ユーザ空間で動作するＮＦＳサーバデーモン１５３、ＮＦＳクライアントデーモン１５４から構成される。ＮＦＳサーバデーモン１５３は、ＮＦＳクライアントからのファイルシステム要求によりＮＦＳサーバ処理１５１を起動する。ＮＦＳクライアントデーモン１５４はユーザプログラムからのＮＦＳ処理要求を受付け、ＮＦＳクライアント処理１５２を起動する。
【００３３】
性能情報出力手段１６０は、ＮＦＳ性能情報記憶領域１１３に記録されている性能情報を、プリンタ、シーケンスファイル、ディスプレイなどのような出力装置１７０に出力する。ＣＰＵユニット１４０は、Ｎ個のＣＰＵ１４１ａ〜…で構成される。なお、Ｎは２以上の整数である。
【００３４】
図２は、図１で開示した計算機システム１００で、ＣＰＵユニット１４０上で特定の時点で実行されているプロセスについて示す概念図である。ＣＰＵユニット１４０を構成するＮ＋１個のＣＰＵ１４１ａ〜…（＃０〜Ｎ）で、Ｍ＋１個のプロセス１３３ａ〜…（＃０〜Ｍ）が起動している。なお、Ｍは３以上の整数であり、Ｎとは同数であってもなくてもよい。
【００３５】
ここで、プロセス１３３ｃ（＃２）はＮＦＳサーバ処理識別機構設定手段１２１がＮＦＳサーバ処理１５１を行うプロセス、プロセス１３３ｄ（＃３）はＮＦＳクライアント処理識別機構設定手段１２２がＮＦＳクライアント処理１５２を行うプロセスであるとする。それら以外のプロセス１３３ａ、１３３ｂおよび１３３ｄ〜…（＃０、＃１、＃４〜Ｍ）は、ＮＦＳ以外の処理を行うプロセスとする。
【００３６】
図３は、図１で開示した計算機システム１００で、ＮＦＳサーバ処理識別機構設定手段１２１が実行するプロセス１３３ｃ（＃２、ＮＦＳサーバ処理１５１）の動作を示すフローチャートである。ＮＦＳサーバ処理識別機構設定手段１２１はまず、プロセス１３３ｃ（＃２）に固有の情報として、ＮＦＳ処理識別機構１３１で現在該プロセスを実行するＣＰＵ１４１ａ（＃０）が「ＮＦＳサーバ処理中」であるという状態にする（ステップＳ３０１）。続いてＮＦＳサーバ処理識別機構設定手段１２１はＮＦＳサーバ処理１５１を動作させ（ステップＳ３０２）、該処理が終了した後はＮＦＳ処理識別機構１３１を該ＣＰＵが「ＮＦＳ以外の処理中」の状態にする（ステップＳ３０３）。
【００３７】
図４は、図１で開示した計算機システム１００で、ＮＦＳクライアント処理識別機構設定手段１２２が実行するプロセス１３３ｄ（＃３、ＮＦＳクライアント処理１５２）の動作を示すフローチャートである。ＮＦＳクライアント処理識別機構設定手段１２２はまず、プロセス１３３ｃ（＃２）に固有の情報として、ＮＦＳ処理識別機構１３１で現在該プロセスを実行するＣＰＵ１４１ｂ（＃１）が「ＮＦＳクライアント処理中」の状態にする（ステップＳ４０１）。続いてＮＦＳクライアント処理識別機構設定手段１２２はＮＦＳクライアント処理１５２を動作させ（ステップＳ４０２）、該処理が終了した後はＮＦＳ処理識別機構１３１を該ＣＰＵが「ＮＦＳ以外の処理中」の状態にする（ステップＳ４０３）。
【００３８】
図３および図４に示した処理は、ＮＦＳに係る関数の前後にＮＦＳ処理識別機構１３１に係る処理を付加するだけでよい。たとえば図３に示したＮＦＳサーバ処理１５１であれば、ＮＦＳサーバ処理に係る関数の本来の処理（ステップＳ３０２）については変更はなく、該処理が実行される前後に、ステップＳ３０１および３０３で示したＮＦＳ処理識別機構１３１に係る処理を付加するだけでよい。ＮＦＳクライアント処理１５２（図４）についても同様である。ＮＦＳに係る関数は、サーバ処理とクライアント処理で各々別の関数が用意されているので、サーバ処理に係る関数は図３のように、クライアント処理に係る関数は図４のように、各々ＮＦＳ処理識別機構１３１に係る処理を付加するようにするとよい。
【００３９】
なお、ＮＦＳ以外の処理を行うプロセス１３３ａ、１３３ｂおよび１３３ｄ〜…（＃０、＃１、＃４〜Ｍ）の場合、ＮＦＳ以外のカーネル内処理において識別機構設定手段１２０が実行されることはないので、ＮＦＳ処理識別機構１３１の状態は「ＮＦＳ以外の処理中」のまま変化しない。図２では、ＮＦＳ以外の処理であるプロセス１３３ａ（＃０）がＣＰＵ１４１ｃ（＃２）で実行される。
【００４０】
図５は、図１で開示した計算機システム１００の性能取得手段１１０において、一定時間ごとに起動されるＮＦＳ性能情報取得手段１１２の動作を示すフローチャートである。図５のフローチャートに示す処理は、タイマー処理手段１１１が一定間隔経過するごとに、ＣＰＵユニット１４０に含まれる任意のＣＰＵ上でＮＦＳ性能情報取得手段１１２を起動することで実行される。ここでは、故障していないＣＰＵの中で最若番のＣＰＵ１４１ａ（＃０）で図５に示す処理が実行されるものとする。
【００４１】
タイマー処理手段１１１がＮＦＳ性能情報取得手段１１２を起動させる時間間隔を、ここではＴとする。タイマー処理手段１１１から割り込みを受けたＣＰＵは、実行中のプロセスを中断して、図５に示す処理を実行する。ここでは、プロセス１３３ｃ（＃３、ＮＦＳクライアント処理１５２）が中断されることになる。
【００４２】
この処理において、ＮＦＳ性能情報取得手段１１２は、自らが実行されているＣＰＵ１４１ａ（＃０）を含めた全てのＣＰＵに対して、ステップＳ５０２〜５０７で示す処理を実行する。ＮＦＳ性能情報取得手段１１２はまずｉ＝０として（ステップＳ５０１）、各ＣＰＵ上で実行されているプロセスのプロセス管理情報１３０を取得して該ＣＰＵでプロセスが実行されているか否かを判断する（ステップＳ５０２）。
【００４３】
ステップＳ５０２でプロセスが実行されていれば、取得したプロセス管理情報１３０中のＮＦＳ処理識別機構１３１が「ＮＦＳサーバ処理中」であるかを判断する（ステップＳ５０３）。ステップＳ５０２でプロセスが実行されていなければ、後述のステップＳ５０６に進む。
【００４４】
ステップＳ５０３でＮＦＳ処理識別機構１３１が「ＮＦＳサーバ処理中」であれば、ＮＦＳ性能情報記憶領域１１３のＮＦＳサーバＣＰＵ時間に時間Ｔを加算する（ステップＳ５０５）。ステップＳ５０３でＮＦＳ処理識別機構１３１が「ＮＦＳサーバ処理中」でなければ、ＮＦＳ処理識別機構１３１が「ＮＦＳクライアント処理中」であるかを判断する（ステップＳ５０４）。
【００４５】
ステップＳ５０４でＮＦＳ処理識別機構１３１が「ＮＦＳクライアント処理中」であれば、ＮＦＳ性能情報記憶領域１１３のＮＦＳクライアントＣＰＵ時間に時間Ｔを加算する（ステップＳ５０７）。ステップＳ５０４でＮＦＳ処理識別機構１３１が「ＮＦＳクライアント処理中」でなければ、ＮＦＳ処理識別機構１３１は「ＮＦＳ以外の処理中」であるということになるので、ＮＦＳ性能情報記憶領域１１３のその他のＣＰＵ時間に時間Ｔを加算する（ステップＳ５０６）。
【００４６】
ステップＳ５０５、５０６、５０７のうちいずれかの処理が実行されたらステップ５０８に進み、ｉ＝Ｎであるか否かを判断する。ｉ＝Ｎであれば処理を終了する。ｉ＝Ｎでなければｉ＝ｉ＋１としてステップＳ５０２に戻って処理を繰り返す。なお、図２に示した状態では、ＣＰＵに割り当てられているプロセス１３３ａ、１３３ｃ、１３３ｄ（＃０、＃２、＃３）のＣＰＵ時間の情報が取得され、プロセス１３３ｂ（＃１）はＣＰＵに割り当てられていない（実行されていない）ため性能情報は取得されない。
【００４７】
性能情報出力手段１６０はタイマー処理手段１１１によって起動され、ＮＦＳ性能情報記憶領域１１３に蓄積された情報を出力装置１７０に出力する。
【００４８】
なお、タイマー処理手段１１１が性能情報出力手段１６０を起動する間隔は、前述の時間Ｔとは関係なく、任意のものとしてよい。また、ユーザの操作に反応して性能情報出力手段１６０が起動されるようにしてもよい。
【００４９】
図６は、図１で開示した性能情報出力手段１６０によって出力装置１７０に出力された性能情報の一例を示す概念図である。性能情報出力手段１６０は、ＮＦＳ性能情報記憶領域１１３に蓄積された情報から統計情報を求めて出力装置１７０に出力することが可能である。
【００５０】
各々の時刻におけるプロセスの全ＣＰＵ時間は、全ＣＰＵ時間＝（ＮＦＳサーバＣＰＵ時間＋ＮＦＳクライアントＣＰＵ時間＋その他）として示される。ＮＦＳサーバ機能が動作していた時間の割合は、ＮＦＳサーバ率（％ＮＦＳＳ）＝ＮＦＳサーバＣＰＵ時間÷全ＣＰＵ時間の百分率として、集計プログラム（図示せず）によって求められる。またＮＦＳクライアント機能が動作していた時間の割合であるＮＦＳクライアント率（％ＮＦＳＣ）、その他の機能が動作していた時間の割合（％ｏｔｈｅｒ）についても同様に求められる。図６では、％ＮＦＳＳ、％ＮＦＳＣ、％ｏｔｈｅｒの各々を、時刻ごとの百分率、およびそれらを全時間帯に渡って平均した百分率（Ａｖｅｒａｇｅ）で示している。
【００５１】
ＮＦＳに係る関数は、図３および図４のように、関数の本来の処理の前後にＮＦＳ処理識別機構１３１に係る処理を付加されるだけである。そして図５に示した性能情報取得の処理は、ＣＰＵユニット１４０が高負荷状態であってもそうでなくても、タイマー処理手段１１１が間隔Ｔごとに必ず実行する。従って、ＮＦＳなどのように、デーモンを用いるネットワークファイルシステムの処理自体には影響を与えずに、システム全体に対する性能情報を取得することが可能となる。特に、計算機システム１００の中でＮＦＳサーバ処理１５１とＮＦＳクライアント処理１５２のいずれの負荷がより高いかを、明確に求めることが可能である。
【００５２】
そして、性能情報の取得は、ＣＰＵユニット１４０に含まれる任意のプロセッサが、ＣＰＵユニット１４０を構成するすべての有効なＣＰＵに対して、実行中のプロセスのＣＰＵ時間を代理で集計することができる。従って、性能情報を取得する際に、他のＣＰＵで実行中のプロセスに影響を与えることはない。
【００５３】
［第２の実施の形態］
図７は、本発明の第２の実施の形態に係る計算機システム１００の構成を示す機能ブロック図である。計算機システム１００は、本発明の第１の実施の形態に係るものと同一の共有並列型マルチプロセッサ計算機システムである。従って、ここでは第１の実施の形態との相違点のみを説明し、同一の要素については同一の参照番号を付して説明を省略する。
【００５４】
カーネル空間１０２では、性能情報の取得を行う性能取得手段１１０と、処理中のプロセスにＮＩＳ処理識別機構１３１を設定する識別機構設定手段１２０と、プロセス管理情報１３０と、ＮＩＳ１５０ｂと、性能情報を出力装置１７０に記録する性能情報出力手段１６０が動作する。ＮＩＳ１５０ｂは、ＮＩＳサーバ処理１５１ｂとＮＩＳクライアント処理１５２ｂとからなる。
【００５５】
プロセス管理情報１３０は、識別機構設定手段１２０によって使用されるＮＩＳ処理識別機構１３１ｂから構成される。ユーザ空間１０３では、カーネル空間１０２のＮＩＳサーバ処理１５１ｂを起動するＮＩＳサーバデーモン１５３ｂと、ユーザプログラム（図示せず）からのＮＩＳ要求を受け付けるＮＩＳクライアントデーモン１５４ｂが動作する。ＣＰＵユニット１４０はプロセス管理情報１３０を用い、プロセスを実行する。ＮＩＳ処理のリクエストはネットワーク１８０を介して実行される。
【００５６】
性能取得手段１１０は、タイマー処理手段１１１とＮＩＳ性能情報取得手段１１２ｂとＮＩＳ性能情報記憶領域１１３ｂにより構成される。タイマー処理手段１１１は一定間隔で、ＮＩＳ性能情報取得手段１１２ｂを起動する。ＮＩＳ性能情報取得手段１１２ｂは、プロセス管理情報１３０のＮＩＳ処理識別機構１３１ｂを利用してＣＰＵ時間の取得を行い、その情報をＮＩＳ性能情報記憶領域１１３ｂに格納する。
【００５７】
識別機構設定手段１２０は、ＮＩＳサーバ処理識別機構設定手段１２１ｂとＮＩＳクライアント処理識別機構設定手段１２２ｂにより構成される。ＮＩＳサーバ処理識別機構設定手段１２１は、プロセス管理情報１３０が保持するＮＩＳ処理識別機構１３１ｂを設定する。ＮＩＳクライアント処理識別機構設定手段１２２ｂは、プロセス管理情報１３０が保持するＮＩＳ処理識別機構１３１ｂを設定する。
【００５８】
プロセス管理情報１３０は、ＮＩＳ処理識別機構１３１ｂ等などのような各プロセスに固有の情報を保持する。ＮＩＳ処理識別機構１３１ｂは、プロセスがＮＩＳサーバ処理１５１ｂを行っている場合は「ＮＩＳサーバ処理中」の状態に設定され、ＮＩＳクライアント処理１５２ｂを行っている場合は「ＮＩＳクライアント処理中」の状態に設定される。ＮＩＳ以外の処理を行っている場合は「ＮＩＳ以外の処理中」の状態に設定される。
【００５９】
ＮＩＳ１５０ｂは、カーネル空間１０２で動作するＮＩＳサーバ処理１５１ｂ、ＮＩＳクライアント処理１５２ｂと、ユーザ空間で動作するＮＩＳサーバデーモン１５３ｂ、ＮＩＳクライアントデーモン１５４ｂから構成される。ＮＩＳサーバデーモン１５３ｂは、ＮＩＳクライアントからのファイルシステム要求によりＮＩＳサーバ処理１５１ｂを起動する。ＮＩＳクライアントデーモン１５４ｂはユーザプログラムからのＮＩＳ処理要求を受付け、ＮＩＳクライアント処理１５２ｂを起動する。
【００６０】
性能情報出力手段１６０は、ＮＩＳ性能情報記憶領域１１３ｂに記録されている性能情報を出力装置１７０に出力する。ＣＰＵユニット１４０は、Ｎ個のＣＰＵ１４１ａ〜１４１ｎで構成される。なお、Ｎは２以上の整数である。
【００６１】
図８は、図７で開示した計算機システム１００で、ＣＰＵユニット１４０上で特定の時点で実行されているプロセスについて示す概念図である。ＣＰＵユニット１４０を構成するＮ＋１個のＣＰＵ１４１ａ〜…（＃０〜Ｎ）で、Ｍ＋１個のプロセス１３３ａ〜…（＃０〜Ｍ）が起動している。なお、Ｍは３以上の整数であり、Ｎとは同数であってもなくてもよい。
【００６２】
ここで、プロセス１３３ｃ（＃２）はＮＩＳサーバ処理識別機構設定手段１２１ｂがＮＩＳサーバ処理１５１ｂを行うプロセス、プロセス１３３ｄ（＃３）はＮＩＳクライアント処理識別機構設定手段１２２ｂがＮＩＳクライアント処理１５２ｂを行うプロセスであるとする。それら以外のプロセス１３３ａ、１３３ｂおよび１３３ｄ〜…（＃０、＃１、＃４〜Ｍ）は、ＮＩＳ以外の処理を行うプロセスとする。
【００６３】
以上で示したように、計算機システム１００において図７〜８に示すＮＩＳに係る処理は、図１〜２に示したＮＦＳに係る処理において「ＮＦＳ」を「ＮＩＳ」に読み替えただけである。もちろん、図３〜６で説明したアルゴリズムおよび性能情報についても、「ＮＦＳ」を「ＮＩＳ」に読み替えれば、図７〜８に示すＮＩＳに係る処理にそのまま適用できる。
【００６４】
つまり、ＮＦＳおよびＮＩＳだけでなく、その他のサービスに対しても、上記の説明においてサービスの名称を読み替えるだけで、同じ処理をそのまま適用可能である。また、たとえばＮＦＳに対する性能情報の取得と、ＮＩＳに対する性能情報の取得と、それら以外のサービスに対する性能情報の取得とを、同一の計算機システムの中で同時に実行することも可能である。サービスごとにサーバ処理とクライアント処理のどちらの処理の負荷が高いか、またいずれのサービスにおける負荷が高いかについての情報を取得することも容易に可能である。
【００６５】
また、以上で示した実施例ではＮＦＳおよびＮＩＳのサーバ処理とクライアント処理とをその他の処理と区別するように構成していたが、サーバ処理のみ、もしくはクライアント処理のみをその他の処理と区別するように構成してもよい。逆に、３種類以上の処理をその他の処理と区別する拡張も容易に実現できる。
【００６６】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることは言うまでもないことである。
【産業上の利用可能性】
【００６７】
本発明は、ＮＦＳ、ＮＩＳのようなサービスを利用する計算機システムにおいて、負荷情報を取得する用途に適用できる。
【図面の簡単な説明】
【００６８】
【図１】本発明の第１の実施の形態に係る計算機システムの構成を示す機能ブロック図である。
【図２】図１で開示した計算機システムで、ＣＰＵユニット上で特定の時点で実行されているプロセスについて示す概念図である。
【図３】図１で開示した計算機システムで、ＮＦＳサーバ処理識別機構設定手段が実行するプロセス（ＮＦＳサーバ処理）の動作を示すフローチャートである。
【図４】図１で開示した計算機システムで、ＮＦＳクライアント処理識別機構設定手段が実行するプロセス（ＮＦＳクライアント処理）の動作を示すフローチャートである。
【図５】図１で開示した計算機システムの性能取得手段において、一定時間ごとに起動されるＮＦＳ性能情報取得手段の動作を示すフローチャートである。
【図６】図１で開示した性能情報出力手段によって出力装置に出力された性能情報の一例の一例を示す概念図である。
【図７】本発明の第２の実施の形態に係る計算機システムの構成を示す機能ブロック図である。
【図８】図７で開示した計算機システムで、ＣＰＵユニット上で特定の時点で実行されているプロセスについて示す概念図である。
【符号の説明】
【００６９】
１００  計算機システム
１０１  主記憶
１０２  カーネル空間
１０３  ユーザ空間
１１０  性能取得手段
１１１  タイマー処理手段
１１２  ＮＦＳ性能情報取得手段
１１３  ＮＦＳ性能情報記憶領域
１２０  識別機構設定手段
１２１  ＮＦＳサーバ処理識別機構設定手段
１２２  ＮＦＳクライアント処理識別機構設定手段
１３０  プロセス管理情報
１３１  ＮＦＳ処理識別機構
１３３ａ〜…  プロセス
１４０  ＣＰＵユニット
１４１ａ〜…  ＣＰＵ
１５０  ＮＦＳ
１５１  ＮＦＳサーバ処理
１５２  ＮＦＳクライアント処理
１５３  ＮＦＳサーバデーモン
１５４  ＮＦＳクライアントデーモン
１６０  性能情報出力手段
１７０  出力装置
１８０  ネットワーク
１１２ｂ  ＮＩＳ性能情報取得手段
１１３ｂ  ＮＩＳ性能情報記憶領域
１２１ｂ  ＮＩＳサーバ処理識別機構設定手段
１２２ｂ  ＮＩＳクライアント処理識別機構設定手段
１３１ｂ  ＮＩＳ処理識別機構
１５０ｂ  ＮＩＳ
１５１ｂ  ＮＩＳサーバ処理
１５２ｂ  ＮＩＳクライアント処理
１５３ｂ  ＮＩＳサーバデーモン
１５４ｂ  ＮＩＳクライアントデーモン
【図１】
0004883022.tif 000002
【図２】
0004883022.tif 000003
【図３】
0004883022.tif 000004
【図４】
0004883022.tif 000005
【図５】
0004883022.tif 000006
【図６】
0004883022.tif 000007
【図７】
0004883022.tif 000008
【図８】
0004883022.tif 000009