JP2009181554A - 計算機システム、性能情報取得方法、および性能情報取得プログラム - Google Patents

計算機システム、性能情報取得方法、および性能情報取得プログラム Download PDF

Info

Publication number
JP2009181554A
JP2009181554A JP2008022810A JP2008022810A JP2009181554A JP 2009181554 A JP2009181554 A JP 2009181554A JP 2008022810 A JP2008022810 A JP 2008022810A JP 2008022810 A JP2008022810 A JP 2008022810A JP 2009181554 A JP2009181554 A JP 2009181554A
Authority
JP
Japan
Prior art keywords
state
cpu
processing
performance information
executed
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
JP2008022810A
Other languages
English (en)
Other versions
JP4883022B2 (ja
Inventor
Aoi Kawahara
葵 川原
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2008022810A priority Critical patent/JP4883022B2/ja
Publication of JP2009181554A publication Critical patent/JP2009181554A/ja
Application granted granted Critical
Publication of JP4883022B2 publication Critical patent/JP4883022B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】サービスに係る処理にかかったCPU時間を正確に取得する。
【解決手段】本発明に係る計算機システム100は、サーバ処理が実行中であれば第1の状態、クライアント処理が実行中であれば第2の状態、それら以外は第3の状態を記憶する処理識別部131と、実行開始時に処理識別部を第1の状態にし、終了したら第3の状態にするサーバ処理実行部151と、実行開始時に処理識別部を第2の状態にし、終了したら第3の状態にするクライアント処理実行部152と、第1〜第3のCPU時間を記憶する性能情報記憶部113と、処理識別部の第1〜第3の状態に対応してそれぞれ第1〜第3のCPU時間を加算する性能情報取得部112とを有する。
【選択図】図1

Description

本発明は、計算機システムにおいてCPU時間の取得に関し、特にサービスに係る処理に要したCPU時間の取得に関する。
コンピュータネットワークにおいて、NFS(Network File System)、SMB(Server Message Block)、NIS(Network Information Server)、LDAP(Lightweight Directory Access Protocol)などのような、ネットワークを介して使用されるサービス(以後単にサービスという)が使用されることが多くなっている。それにつれて、コンピュータ資源のうちの多くの割合がそのようなサービスに係る処理で使用される結果、ユーザの処理が阻害されてしまうケースが出てきている。特に、HPC(High-Performance Computing)分野などにおいては、ネットワーク負荷などシステムのオーバーヘッドが少なくするような運用を行い、ユーザプログラムの実行に多くのコンピュータ資源を割り当てることが望ましい。
そのためには、それらのサービスの運用に係るコンピュータシステム(以後単にシステムという)の負荷状況を監視し、システム利用状況の分析を行い、運用を最適化することが重要となる。特にシステムの高負荷状態の原因を特定するには、性能情報を取得し、そこから各々の機能ごとにCPU上での処理に要した時間(CPU時間)等の解析を行うことが一般的である。
このことに関連して、次のような文献がある。特許文献1には、ストレージネットワークの性能情報の収集を、タイマーによって定期的に起動されるエージェントによって行うという技術が記載されている。特許文献2には、スキャンシステムにおいてスキャナが自らの処理状態をサーバに記憶することが記載されている。特許文献3には、複数のプロセッサが主記憶装置を共有して複数のプロセスを並列に動作させるコンピュータシステムにおけるバッファ制御方式の一例が記載されている。
特許文献4には、時間計測を指示するフラグを用いることでユーザプログラムの任意の区間の処理時間を測定するという技術が記載されている。特許文献5には、プログラムを実行するタスクが消費した時間の内訳を、該プログラムの構成要素(セグメント、ページなど)を単位として測定するという技術が記載されている。
特許文献6には、ユーザ空間でデーモン(daemon)が動作し、該デーモンに対応するモジュールがカーネル空間で動作するという通信フロー制御方式が記載されている。特許文献7には、ネットワークの性能管理に係る(入出力パケット数、CPU負荷率など)の性能情報を得るポーリング間隔を、過去の性能値の時間変動率などをもとに算出するという技術が記載されている。
特開2005−157933号公報 特開2006−217212号公報 特開平05−241862号公報 特開平05−274182号公報 特開平07−152612号公報 特開平11−143800号公報 特開平11−154955号公報
しかしながら、NFSサーバを例に取った場合、従来はnfsstat等による統計情報の取得のみが可能であり、システム全体に対する負荷を測定する方法がない。また、NFSに係る処理中にシステム性能情報取得のための処理を加える事は、既に標準的な動作が既定されているNFSでは困難であり、また性能劣化にもつながるため、システムに対し影響を与えることなく性能情報を取得することはできなかった。
NFSは高速なI/Oを実現するために、ユーザプログラムが発行するI/Oを分割し、システムに常駐するデーモンが非同期にI/Oを実施している。このようなデーモンは割込みなどのイベントを契機にシステムとして動作し、また、他のユーザプログラムのI/Oとも同時に複数のデーモンが処理するため、個々のユーザプログラムのためにどの程度CPUを消費したかを知ることができなかった。
従来のシステム性能情報は、ユーザプログラムの動作したユーザ時間と、OSなどが動作したシステム時間とを区別することしかできない。しかしながらそれらのデーモンはOSの一部として動作するため、NFSデーモンの動作したCPU時間はシステム時間として計上される。そのため、NFSに係る処理に要した負荷を知ることは困難であった。
また、性能情報を取得するLinuxのsarコマンドによって過去のNFS統計情報も取得できるが、取得できる情報はRPC(リモートプロシージャコール)実行回数や転送パケット数などであり、CPU時間ではない。それらのような、NFSの転送パケット数などの統計情報でNFSに係る負荷の原因を特定するには、NFSを利用する全てのノードで大量のNFSのI/O要求があったかを調べる必要があった。
さらに、前述のシステム性能情報で知ることのできるユーザ時間とシステム時間のうち、NFSに係る処理は全てシステム時間に含められていたが、NFSの動作には、自システムがNFSクライアントとなる場合と、NFSサーバとして動作する場合の二通りがある。そのため、NFSクライアントとNFSサーバの両方が動作している場合に、どちらの処理の負荷が高いかを知ることができなかった。
このような場合、カーネル内でどの処理がどれだけ動いたかを分析するには、一般にはカーネルプロファイル機能を利用する。この機能は、タイマーティック(システム上で管理される時間の単位)毎にカーネルの実行アドレスをサンプリングすることで実行中の関数、実行された回数、処理時間等を求める事ができるが、特定の機能のために消費した時間は知ることができない欠点がある。また、全てのCPUに対しタイマーティックごとに実行されるので、オーバーヘッドが大きく、通常の運用時、特に高負荷である時に利用できないという問題もある。
以上ではNFSを例に説明したが、実際にはNFS以外の、たとえば前述のSMB、NIS、LDAPなどのようなサービスにおいても、本質的にはこれと同じ問題点を抱えている。
前述の特許文献の中で、特許文献4は、時間計測を指示するフラグを用いることでユーザプログラムの任意の区間の処理時間を測定する手法について述べている。しかし、この手法はユーザプログラムを対象としているため、カーネル内部の処理は計測できない。また、マルチプロセッサシステムについて考慮されていないので、複数のCPUでシステムコールが発行された場合、資源排他制御の待ち時間が発生しシステムの性能低下につながるといった課題がある。
また、特許文献1および特許文献7の技術は、ネットワークの性能情報を取得する監視手段が性能情報の取得を行う間隔を調整することで、監視対象のネットワークや装置にかかる負荷を軽減しつつ管理に必要な情報を集める手法であるが、NFSに係る処理に消費したCPU時間を取得することには適用できない。その他の特許文献も、上記の問題に対して適用できるものではない。
本発明の目的は、サービスに係る処理にかかったCPU時間を、該処理自体には変更を加えず、また該処理以外のプロセスに影響をほとんど与えることなく、正確に取得することのできる計算機システム、性能情報取得方法、および性能情報取得プログラムを提供することにある。
上記目的を達成するため、本発明に係る計算機システムは、サービスに係る処理およびその他の処理を実行するCPUを有する計算機システムであって、サービスに係る処理が実行中であれば第1の状態を記憶し、その他の処理が実行中であれば第2の状態を記憶する処理識別部と、サービスに係る処理を実行開始する時に処理識別部を第1の状態にし、サービスに係る処理の実行が終了したら処理識別部を第2の状態にする処理実行部と、CPUにおいてサービスに係る処理が実行中である第1のCPU時間、およびその他の処理が実行中である第2のCPU時間を記憶する性能情報記憶部と、処理識別部が第1の状態であれば第1のCPU時間を加算し、処理識別部が第2の状態であれば第2のCPU時間を加算する性能情報取得部とを有することを特徴とする。
上記目的を達成するため、本発明に係る別の計算機システムは、サービスに係るサーバ処理とクライアント処理、およびその他の処理を実行するCPUを有する計算機システムであって、サーバ処理が実行中であれば第1の状態を記憶し、クライアント処理が実行中であれば第2の状態を記憶し、その他の処理が実行中であれば第3の状態を記憶する処理識別部と、サーバ処理を実行開始する時に処理識別部を第1の状態にし、サーバ処理の実行が終了したら処理識別部を第3の状態にするサーバ処理実行部と、クライアント処理を実行開始する時に処理識別部を第2の状態にし、クライアント処理の実行が終了したら処理識別部を第3の状態にするクライアント処理実行部と、CPUにおいてサーバ処理が実行中である第1のCPU時間、クライアント処理が実行中である第2のCPU時間、およびその他の処理が実行中である第3のCPU時間を記憶する性能情報記憶部と、処理識別部が第1の状態であれば第1のCPU時間を加算し、処理識別部が第2の状態であれば第2のCPU時間を加算し、処理識別部が第3の状態であれば第3のCPU時間を加算する性能情報取得部とを有することを特徴とする。
上記目的を達成するため、本発明に係る性能情報取得方法は、サービスに係る処理およびその他の処理を実行するCPUを有する計算機システムにあって性能情報を取得する方法であって、サービスに係る処理を実行開始する時に第1の状態を記憶し、サービスに係る処理の実行が終了したら第2の状態を記憶する処理実行工程と、第1の状態が記憶されていればCPUにおいてサービスに係る処理が実行中である第1のCPU時間を加算し、第2の状態が記憶されていればその他の処理が実行中である第2のCPU時間を加算する性能情報加算工程とを有することを特徴とする。
上記目的を達成するため、本発明に係る別の性能情報取得方法は、サービスに係るサーバ処理とクライアント処理、およびその他の処理を実行するCPUを有する計算機システムにあって性能情報を取得する方法であって、サーバ処理を実行開始する時に第1の状態を記憶し、サーバ処理の実行が終了したら第3の状態を記憶するサーバ処理実行工程と、クライアント処理を実行開始する時に第2の状態を記憶し、クライアント処理の実行が終了したら第3の状態を記憶するクライアント処理実行工程と、第1の状態が記憶されていればCPUにおいてサーバ処理が実行中である第1のCPU時間を加算し、第2の状態が記憶されていればCPUにおいてクライアント処理が実行中である第2のCPU時間を加算し、第3の状態が記憶されていればCPUにおいてその他の処理が実行中である第3のCPU時間を加算する性能情報取得工程とを有することを特徴とする。
上記目的を達成するため、本発明に係る性能情報取得プログラムは、サービスに係る処理およびその他の処理を実行するCPUを有する計算機システムに、実行開始する時に第1の状態を記憶し、実行が終了したら第2の状態を記憶するサービス処理と、第1の状態が記憶されていればCPUにおいてサービスに係る処理が実行中である第1のCPU時間を加算し、第2の状態が記憶されていればその他の処理が実行中である第2のCPU時間を加算する性能情報取得処理とを実行させることを特徴とする。
上記目的を達成するため、本発明に係る別の性能情報取得プログラムは、サービスに係るサーバ処理とクライアント処理、およびその他の処理を実行するCPUを有する計算機システムに、実行開始する時に第1の状態を記憶し、実行が終了したら第3の状態を記憶するサーバ処理と、実行開始する時に第2の状態を記憶し、実行が終了したら第3の状態を記憶するクライアント処理と、第1の状態が記憶されていればCPUにおいてサーバ処理が実行中である第1のCPU時間を加算し、第2の状態が記憶されていればCPUにおいてクライアント処理が実行中である第2のCPU時間を加算し、第3の状態が記憶されていればCPUにおいてその他の処理が実行中である第3のCPU時間を加算する性能情報取得処理とを実行させることを特徴とする。
本発明は、サービスに係る処理およびその他の処理のいずれが実行中であるかの情報を記憶するように構成したので、該情報に基づいて各々の実行にかかるCPU時間を正確に取得できる。しかも各々の処理の前後に該情報を変更するようにすればいいので、処理にかかるプログラム自体の変更は必要ない。これによって、サービスに係る処理にかかったCPU時間を、該処理自体には変更を加えず、また該処理以外のプロセスに影響をほとんど与えることなく、正確に取得することができるという、従来にない優れた計算機システム、性能情報取得方法、および性能情報取得プログラムを提供することができる。
[第1の実施の形態]
図1は、本発明の第1の実施の形態に係る計算機システム100の構成を示す機能ブロック図である。計算機システム100は共有並列型マルチプロセッサ計算機システムであり、主記憶101とCPUユニット140と出力装置170で構成され、ネットワーク180に接続されている。主記憶101は、OSが動作するカーネル空間102とユーザプログラムが動作するユーザ空間103で構成される。
カーネル空間102では、性能情報の取得を行う性能取得手段110と、処理中のプロセスに後述のNFS処理識別機構131を設定する識別機構設定手段120と、プロセス管理情報130と、NFS150と、性能情報を出力装置170に記録する性能情報出力手段160が動作する。NFS150は、NFSサーバ処理151とNFSクライアント処理152とからなる。
プロセス管理情報130は、識別機構設定手段120によって使用されるNFS処理識別機構131から構成される。ユーザ空間103では、カーネル空間102のNFSサーバ処理151を起動するNFSサーバデーモン153と、ユーザプログラム(図示せず)からのNFS要求を受け付けるNFSクライアントデーモン154が動作する。CPUユニット140はプロセス管理情報130を用い、プロセスを実行する。NFS処理のリクエストはネットワーク180を介して実行される。
性能取得手段110は、タイマー処理手段111とNFS性能情報取得手段112とNFS性能情報記憶領域113により構成される。タイマー処理手段111は一定間隔で、NFS性能情報取得手段112を起動する。NFS性能情報取得手段112は、プロセス管理情報130のNFS処理識別機構131を利用してCPU時間の取得を行い、その情報をNFS性能情報記憶領域113に格納する。
NFS性能情報記憶領域113は、「NFSサーバCPU時間」「NFSクライアントCPU時間」「その他のCPU時間」という各々のCPU時間を記憶する。NFS性能情報取得手段112は、NFS処理識別機構131に記憶されている内容にもとづいて、NFS性能情報記憶領域113は、「NFSサーバCPU時間」「NFSクライアントCPU時間」「その他のCPU時間」のうちのいずれかに記憶されている内容を更新する。
識別機構設定手段120は、NFSサーバ処理識別機構設定手段121とNFSクライアント処理識別機構設定手段122により構成される。NFSサーバ処理識別機構設定手段121は、プロセス管理情報130が保持するNFS処理識別機構131を設定する。NFSクライアント処理識別機構設定手段122は、プロセス管理情報130が保持するNFS処理識別機構131を設定する。
プロセス管理情報130は、NFS処理識別機構131等などのような各プロセスに固有の情報を保持する。NFS処理識別機構131は、後述するN+1個のCPU141a〜…(#0〜N)の各々に対応する複数の記憶域を持つ。CPU141a〜…(#0〜N)の各々において、プロセスがNFSサーバ処理151を行っている場合は、該CPUに対応する記憶域が「NFSサーバ処理中」の状態に設定され、NFSクライアント処理152を行っている場合は「NFSクライアント処理中」の状態に設定され、NFS以外の処理を行っている場合は「NFS以外の処理中」の状態に設定される。
NFS150は、カーネル空間102で動作するNFSサーバ処理151、NFSクライアント処理152と、ユーザ空間で動作するNFSサーバデーモン153、NFSクライアントデーモン154から構成される。NFSサーバデーモン153は、NFSクライアントからのファイルシステム要求によりNFSサーバ処理151を起動する。NFSクライアントデーモン154はユーザプログラムからのNFS処理要求を受付け、NFSクライアント処理152を起動する。
性能情報出力手段160は、NFS性能情報記憶領域113に記録されている性能情報を、プリンタ、シーケンスファイル、ディスプレイなどのような出力装置170に出力する。CPUユニット140は、N個のCPU141a〜…で構成される。なお、Nは2以上の整数である。
図2は、図1で開示した計算機システム100で、CPUユニット140上で特定の時点で実行されているプロセスについて示す概念図である。CPUユニット140を構成するN+1個のCPU141a〜…(#0〜N)で、M+1個のプロセス133a〜…(#0〜M)が起動している。なお、Mは3以上の整数であり、Nとは同数であってもなくてもよい。
ここで、プロセス133c(#2)はNFSサーバ処理識別機構設定手段121がNFSサーバ処理151を行うプロセス、プロセス133d(#3)はNFSクライアント処理識別機構設定手段122がNFSクライアント処理152を行うプロセスであるとする。それら以外のプロセス133a、133bおよび133d〜…(#0、#1、#4〜M)は、NFS以外の処理を行うプロセスとする。
図3は、図1で開示した計算機システム100で、NFSサーバ処理識別機構設定手段121が実行するプロセス133c(#2、NFSサーバ処理151)の動作を示すフローチャートである。NFSサーバ処理識別機構設定手段121はまず、プロセス133c(#2)に固有の情報として、NFS処理識別機構131で現在該プロセスを実行するCPU141a(#0)が「NFSサーバ処理中」であるという状態にする(ステップS301)。続いてNFSサーバ処理識別機構設定手段121はNFSサーバ処理151を動作させ(ステップS302)、該処理が終了した後はNFS処理識別機構131を該CPUが「NFS以外の処理中」の状態にする(ステップS303)。
図4は、図1で開示した計算機システム100で、NFSクライアント処理識別機構設定手段122が実行するプロセス133d(#3、NFSクライアント処理152)の動作を示すフローチャートである。NFSクライアント処理識別機構設定手段122はまず、プロセス133c(#2)に固有の情報として、NFS処理識別機構131で現在該プロセスを実行するCPU141b(#1)が「NFSクライアント処理中」の状態にする(ステップS401)。続いてNFSクライアント処理識別機構設定手段122はNFSクライアント処理152を動作させ(ステップS402)、該処理が終了した後はNFS処理識別機構131を該CPUが「NFS以外の処理中」の状態にする(ステップS403)。
図3および図4に示した処理は、NFSに係る関数の前後にNFS処理識別機構131に係る処理を付加するだけでよい。たとえば図3に示したNFSサーバ処理151であれば、NFSサーバ処理に係る関数の本来の処理(ステップS302)については変更はなく、該処理が実行される前後に、ステップS301および303で示したNFS処理識別機構131に係る処理を付加するだけでよい。NFSクライアント処理152(図4)についても同様である。NFSに係る関数は、サーバ処理とクライアント処理で各々別の関数が用意されているので、サーバ処理に係る関数は図3のように、クライアント処理に係る関数は図4のように、各々NFS処理識別機構131に係る処理を付加するようにするとよい。
なお、NFS以外の処理を行うプロセス133a、133bおよび133d〜…(#0、#1、#4〜M)の場合、NFS以外のカーネル内処理において識別機構設定手段120が実行されることはないので、NFS処理識別機構131の状態は「NFS以外の処理中」のまま変化しない。図2では、NFS以外の処理であるプロセス133a(#0)がCPU141c(#2)で実行される。
図5は、図1で開示した計算機システム100の性能取得手段110において、一定時間ごとに起動されるNFS性能情報取得手段112の動作を示すフローチャートである。図5のフローチャートに示す処理は、タイマー処理手段111が一定間隔経過するごとに、CPUユニット140に含まれる任意のCPU上でNFS性能情報取得手段112を起動することで実行される。ここでは、故障していないCPUの中で最若番のCPU141a(#0)で図5に示す処理が実行されるものとする。
タイマー処理手段111がNFS性能情報取得手段112を起動させる時間間隔を、ここではTとする。タイマー処理手段111から割り込みを受けたCPUは、実行中のプロセスを中断して、図5に示す処理を実行する。ここでは、プロセス133c(#3、NFSクライアント処理152)が中断されることになる。
この処理において、NFS性能情報取得手段112は、自らが実行されているCPU141a(#0)を含めた全てのCPUに対して、ステップS502〜507で示す処理を実行する。NFS性能情報取得手段112はまずi=0として(ステップS501)、各CPU上で実行されているプロセスのプロセス管理情報130を取得して該CPUでプロセスが実行されているか否かを判断する(ステップS502)。
ステップS502でプロセスが実行されていれば、取得したプロセス管理情報130中のNFS処理識別機構131が「NFSサーバ処理中」であるかを判断する(ステップS503)。ステップS502でプロセスが実行されていなければ、後述のステップS506に進む。
ステップS503でNFS処理識別機構131が「NFSサーバ処理中」であれば、NFS性能情報記憶領域113のNFSサーバCPU時間に時間Tを加算する(ステップS505)。ステップS503でNFS処理識別機構131が「NFSサーバ処理中」でなければ、NFS処理識別機構131が「NFSクライアント処理中」であるかを判断する(ステップS504)。
ステップS504でNFS処理識別機構131が「NFSクライアント処理中」であれば、NFS性能情報記憶領域113のNFSクライアントCPU時間に時間Tを加算する(ステップS507)。ステップS504でNFS処理識別機構131が「NFSクライアント処理中」でなければ、NFS処理識別機構131は「NFS以外の処理中」であるということになるので、NFS性能情報記憶領域113のその他のCPU時間に時間Tを加算する(ステップS506)。
ステップS505、506、507のうちいずれかの処理が実行されたらステップ508に進み、i=Nであるか否かを判断する。i=Nであれば処理を終了する。i=Nでなければi=i+1としてステップS502に戻って処理を繰り返す。なお、図2に示した状態では、CPUに割り当てられているプロセス133a、133c、133d(#0、#2、#3)のCPU時間の情報が取得され、プロセス133b(#1)はCPUに割り当てられていない(実行されていない)ため性能情報は取得されない。
性能情報出力手段160はタイマー処理手段111によって起動され、NFS性能情報記憶領域113に蓄積された情報を出力装置170に出力する。
なお、タイマー処理手段111が性能情報出力手段160を起動する間隔は、前述の時間Tとは関係なく、任意のものとしてよい。また、ユーザの操作に反応して性能情報出力手段160が起動されるようにしてもよい。
図6は、図1で開示した性能情報出力手段160によって出力装置170に出力された性能情報の一例を示す概念図である。性能情報出力手段160は、NFS性能情報記憶領域113に蓄積された情報から統計情報を求めて出力装置170に出力することが可能である。
各々の時刻におけるプロセスの全CPU時間は、全CPU時間=(NFSサーバCPU時間+NFSクライアントCPU時間+その他)として示される。NFSサーバ機能が動作していた時間の割合は、NFSサーバ率(%NFSS)=NFSサーバCPU時間÷全CPU時間の百分率として、集計プログラム(図示せず)によって求められる。またNFSクライアント機能が動作していた時間の割合であるNFSクライアント率(%NFSC)、その他の機能が動作していた時間の割合(%other)についても同様に求められる。図6では、%NFSS、%NFSC、%otherの各々を、時刻ごとの百分率、およびそれらを全時間帯に渡って平均した百分率(Average)で示している。
NFSに係る関数は、図3および図4のように、関数の本来の処理の前後にNFS処理識別機構131に係る処理を付加されるだけである。そして図5に示した性能情報取得の処理は、CPUユニット140が高負荷状態であってもそうでなくても、タイマー処理手段111が間隔Tごとに必ず実行する。従って、NFSなどのように、デーモンを用いるネットワークファイルシステムの処理自体には影響を与えずに、システム全体に対する性能情報を取得することが可能となる。特に、計算機システム100の中でNFSサーバ処理151とNFSクライアント処理152のいずれの負荷がより高いかを、明確に求めることが可能である。
そして、性能情報の取得は、CPUユニット140に含まれる任意のプロセッサが、CPUユニット140を構成するすべての有効なCPUに対して、実行中のプロセスのCPU時間を代理で集計することができる。従って、性能情報を取得する際に、他のCPUで実行中のプロセスに影響を与えることはない。
[第2の実施の形態]
図7は、本発明の第2の実施の形態に係る計算機システム100の構成を示す機能ブロック図である。計算機システム100は、本発明の第1の実施の形態に係るものと同一の共有並列型マルチプロセッサ計算機システムである。従って、ここでは第1の実施の形態との相違点のみを説明し、同一の要素については同一の参照番号を付して説明を省略する。
カーネル空間102では、性能情報の取得を行う性能取得手段110と、処理中のプロセスにNIS処理識別機構131を設定する識別機構設定手段120と、プロセス管理情報130と、NIS150bと、性能情報を出力装置170に記録する性能情報出力手段160が動作する。NIS150bは、NISサーバ処理151bとNISクライアント処理152bとからなる。
プロセス管理情報130は、識別機構設定手段120によって使用されるNIS処理識別機構131bから構成される。ユーザ空間103では、カーネル空間102のNISサーバ処理151bを起動するNISサーバデーモン153bと、ユーザプログラム(図示せず)からのNIS要求を受け付けるNISクライアントデーモン154bが動作する。CPUユニット140はプロセス管理情報130を用い、プロセスを実行する。NIS処理のリクエストはネットワーク180を介して実行される。
性能取得手段110は、タイマー処理手段111とNIS性能情報取得手段112bとNIS性能情報記憶領域113bにより構成される。タイマー処理手段111は一定間隔で、NIS性能情報取得手段112bを起動する。NIS性能情報取得手段112bは、プロセス管理情報130のNIS処理識別機構131bを利用してCPU時間の取得を行い、その情報をNIS性能情報記憶領域113bに格納する。
識別機構設定手段120は、NISサーバ処理識別機構設定手段121bとNISクライアント処理識別機構設定手段122bにより構成される。NISサーバ処理識別機構設定手段121は、プロセス管理情報130が保持するNIS処理識別機構131bを設定する。NISクライアント処理識別機構設定手段122bは、プロセス管理情報130が保持するNIS処理識別機構131bを設定する。
プロセス管理情報130は、NIS処理識別機構131b等などのような各プロセスに固有の情報を保持する。NIS処理識別機構131bは、プロセスがNISサーバ処理151bを行っている場合は「NISサーバ処理中」の状態に設定され、NISクライアント処理152bを行っている場合は「NISクライアント処理中」の状態に設定される。NIS以外の処理を行っている場合は「NIS以外の処理中」の状態に設定される。
NIS150bは、カーネル空間102で動作するNISサーバ処理151b、NISクライアント処理152bと、ユーザ空間で動作するNISサーバデーモン153b、NISクライアントデーモン154bから構成される。NISサーバデーモン153bは、NISクライアントからのファイルシステム要求によりNISサーバ処理151bを起動する。NISクライアントデーモン154bはユーザプログラムからのNIS処理要求を受付け、NISクライアント処理152bを起動する。
性能情報出力手段160は、NIS性能情報記憶領域113bに記録されている性能情報を出力装置170に出力する。CPUユニット140は、N個のCPU141a〜141nで構成される。なお、Nは2以上の整数である。
図8は、図7で開示した計算機システム100で、CPUユニット140上で特定の時点で実行されているプロセスについて示す概念図である。CPUユニット140を構成するN+1個のCPU141a〜…(#0〜N)で、M+1個のプロセス133a〜…(#0〜M)が起動している。なお、Mは3以上の整数であり、Nとは同数であってもなくてもよい。
ここで、プロセス133c(#2)はNISサーバ処理識別機構設定手段121bがNISサーバ処理151bを行うプロセス、プロセス133d(#3)はNISクライアント処理識別機構設定手段122bがNISクライアント処理152bを行うプロセスであるとする。それら以外のプロセス133a、133bおよび133d〜…(#0、#1、#4〜M)は、NIS以外の処理を行うプロセスとする。
以上で示したように、計算機システム100において図7〜8に示すNISに係る処理は、図1〜2に示したNFSに係る処理において「NFS」を「NIS」に読み替えただけである。もちろん、図3〜6で説明したアルゴリズムおよび性能情報についても、「NFS」を「NIS」に読み替えれば、図7〜8に示すNISに係る処理にそのまま適用できる。
つまり、NFSおよびNISだけでなく、その他のサービスに対しても、上記の説明においてサービスの名称を読み替えるだけで、同じ処理をそのまま適用可能である。また、たとえばNFSに対する性能情報の取得と、NISに対する性能情報の取得と、それら以外のサービスに対する性能情報の取得とを、同一の計算機システムの中で同時に実行することも可能である。サービスごとにサーバ処理とクライアント処理のどちらの処理の負荷が高いか、またいずれのサービスにおける負荷が高いかについての情報を取得することも容易に可能である。
また、以上で示した実施例ではNFSおよびNISのサーバ処理とクライアント処理とをその他の処理と区別するように構成していたが、サーバ処理のみ、もしくはクライアント処理のみをその他の処理と区別するように構成してもよい。逆に、3種類以上の処理をその他の処理と区別する拡張も容易に実現できる。
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることは言うまでもないことである。
本発明は、NFS、NISのようなサービスを利用する計算機システムにおいて、負荷情報を取得する用途に適用できる。
本発明の第1の実施の形態に係る計算機システムの構成を示す機能ブロック図である。 図1で開示した計算機システムで、CPUユニット上で特定の時点で実行されているプロセスについて示す概念図である。 図1で開示した計算機システムで、NFSサーバ処理識別機構設定手段が実行するプロセス(NFSサーバ処理)の動作を示すフローチャートである。 図1で開示した計算機システムで、NFSクライアント処理識別機構設定手段が実行するプロセス(NFSクライアント処理)の動作を示すフローチャートである。 図1で開示した計算機システムの性能取得手段において、一定時間ごとに起動されるNFS性能情報取得手段の動作を示すフローチャートである。 図1で開示した性能情報出力手段によって出力装置に出力された性能情報の一例の一例を示す概念図である。 本発明の第2の実施の形態に係る計算機システムの構成を示す機能ブロック図である。 図7で開示した計算機システムで、CPUユニット上で特定の時点で実行されているプロセスについて示す概念図である。
符号の説明
100 計算機システム
101 主記憶
102 カーネル空間
103 ユーザ空間
110 性能取得手段
111 タイマー処理手段
112 NFS性能情報取得手段
113 NFS性能情報記憶領域
120 識別機構設定手段
121 NFSサーバ処理識別機構設定手段
122 NFSクライアント処理識別機構設定手段
130 プロセス管理情報
131 NFS処理識別機構
133a〜… プロセス
140 CPUユニット
141a〜… CPU
150 NFS
151 NFSサーバ処理
152 NFSクライアント処理
153 NFSサーバデーモン
154 NFSクライアントデーモン
160 性能情報出力手段
170 出力装置
180 ネットワーク
112b NIS性能情報取得手段
113b NIS性能情報記憶領域
121b NISサーバ処理識別機構設定手段
122b NISクライアント処理識別機構設定手段
131b NIS処理識別機構
150b NIS
151b NISサーバ処理
152b NISクライアント処理
153b NISサーバデーモン
154b NISクライアントデーモン

Claims (15)

  1. サービスに係る処理およびその他の処理を実行するCPUを有する計算機システムであって、
    前記サービスに係る処理が実行中であれば第1の状態を記憶し、前記その他の処理が実行中であれば第2の状態を記憶する処理識別部と、
    前記サービスに係る処理を実行開始する時に前記処理識別部を第1の状態にし、前記サービスに係る処理の実行が終了したら前記処理識別部を前記第2の状態にする処理実行部と、
    前記CPUにおいて前記サービスに係る処理が実行中である第1のCPU時間、および前記その他の処理が実行中である第2のCPU時間を記憶する性能情報記憶部と、
    前記処理識別部が前記第1の状態であれば前記第1のCPU時間を加算し、前記処理識別部が前記第2の状態であれば前記第2のCPU時間を加算する性能情報取得部と
    を有することを特徴とする計算機システム。
  2. サービスに係るサーバ処理とクライアント処理、およびその他の処理を実行するCPUを有する計算機システムであって、
    前記サーバ処理が実行中であれば第1の状態を記憶し、前記クライアント処理が実行中であれば第2の状態を記憶し、前記その他の処理が実行中であれば第3の状態を記憶する処理識別部と、
    前記サーバ処理を実行開始する時に前記処理識別部を第1の状態にし、前記サーバ処理の実行が終了したら前記処理識別部を前記第3の状態にするサーバ処理実行部と、
    前記クライアント処理を実行開始する時に前記処理識別部を前記第2の状態にし、前記クライアント処理の実行が終了したら前記処理識別部を前記第3の状態にするクライアント処理実行部と、
    前記CPUにおいて前記サーバ処理が実行中である第1のCPU時間、前記クライアント処理が実行中である第2のCPU時間、および前記その他の処理が実行中である第3のCPU時間を記憶する性能情報記憶部と、
    前記処理識別部が前記第1の状態であれば前記第1のCPU時間を加算し、前記処理識別部が前記第2の状態であれば前記第2のCPU時間を加算し、前記処理識別部が前記第3の状態であれば前記第3のCPU時間を加算する性能情報取得部と
    を有することを特徴とする計算機システム。
  3. 前記性能情報取得部をあらかじめ定められた時間間隔で起動するタイマー処理手段を有し、
    前記性能情報取得部が前記時間間隔を前記第1のCPU時間、前記第2のCPU時間、および前記第3のCPU時間のうちのいずれかに加算することを特徴とする、請求項2に記載の計算機システム。
  4. 前記計算機システムのユーザ空間で動作するサーバ処理デーモンおよびクライアント処理デーモンを有し、
    前記サーバ処理が前記サーバ処理デーモンからの要求によって起動されて前記計算機システムのカーネル空間で動作し、
    前記クライアント処理が前記クライアント処理デーモンからの要求によって起動されて前記計算機システムのカーネル空間で動作することを特徴とする、請求項3に記載の計算機システム。
  5. 前記CPUが複数のCPUによって構成されるCPUユニットであり、
    前記性能情報記憶部が前記複数のCPUの各々に対して前記第1の状態、前記第2の状態、および前記第3の状態のうちいずれかを記憶する複数の記憶域を有し、
    前記性能情報取得部が前記複数の記憶域のすべてに対して、前記記憶域が前記第1の状態であれば前記第1のCPU時間を加算し、前記記憶域が前記第2の状態であれば前記第2のCPU時間を加算し、前記記憶域が前記第3の状態であれば前記第3のCPU時間を加算することを特徴とする、請求項3に記載の計算機システム。
  6. 前記サービスがNFS(Network File System)、SMB(Server Message Block)、NIS(Network Information Server)、LDAP(Lightweight Directory Access Protocol)のうち1つ以上を含むことを特徴とする、請求項2ないし請求項5のうちいずれか1項に記載の計算機システム。
  7. 前記性能情報記憶部に記憶された前記第1のCPU時間、前記第2のCPU時間、および前記第3のCPU時間を出力する出力手段を有することを特徴とする、請求項2ないし請求項6のうちいずれか1項に記載の計算機システム。
  8. サービスに係る処理およびその他の処理を実行するCPUを有する計算機システムにあって性能情報を取得する方法であって、
    前記サービスに係る処理を実行開始する時に第1の状態を記憶し、前記サービスに係る処理の実行が終了したら第2の状態を記憶する処理実行工程と、
    前記第1の状態が記憶されていれば前記CPUにおいて前記サービスに係る処理が実行中である第1のCPU時間を加算し、前記第2の状態が記憶されていれば前記その他の処理が実行中である第2のCPU時間を加算する性能情報加算工程と
    を有することを特徴とする性能情報取得方法。
  9. サービスに係るサーバ処理とクライアント処理、およびその他の処理を実行するCPUを有する計算機システムにあって性能情報を取得する方法であって、
    前記サーバ処理を実行開始する時に第1の状態を記憶し、前記サーバ処理の実行が終了したら第3の状態を記憶するサーバ処理実行工程と、
    前記クライアント処理を実行開始する時に第2の状態を記憶し、前記クライアント処理の実行が終了したら第3の状態を記憶するクライアント処理実行工程と、
    前記第1の状態が記憶されていれば前記CPUにおいて前記サーバ処理が実行中である第1のCPU時間を加算し、前記第2の状態が記憶されていれば前記CPUにおいて前記クライアント処理が実行中である第2のCPU時間を加算し、前記第3の状態が記憶されていれば前記CPUにおいて前記その他の処理が実行中である第3のCPU時間を加算する性能情報取得工程と
    を有することを特徴とする性能情報取得方法。
  10. 前記性能情報取得工程があらかじめ定められた時間間隔で起動され、前記時間間隔を前記第1のCPU時間、前記第2のCPU時間、および前記第3のCPU時間のうちのいずれかに加算することを特徴とする、請求項9に記載の性能情報取得方法。
  11. 前記CPUが複数のCPUによって構成されるCPUユニットであり、
    前記サーバ処理実行工程および前記クライアント処理実行工程が前記複数のCPUの各々に対して前記第1の状態、前記第2の状態、および前記第3の状態のうちいずれかを記憶し、
    前記性能情報取得工程が前記複数の記憶域のすべてに対して、前記記憶域が前記第1の状態であれば前記第1のCPU時間を加算し、前記記憶域が前記第2の状態であれば前記第2のCPU時間を加算し、前記記憶域が前記第3の状態であれば前記第3のCPU時間を加算することを特徴とする、請求項10に記載の性能情報取得方法。
  12. 前記第1のCPU時間、前記第2のCPU時間、および前記第3のCPU時間を出力する出力工程を有することを特徴とする、請求項9ないし請求項11のうちいずれか1項に記載の性能情報取得方法。
  13. サービスに係る処理およびその他の処理を実行するCPUを有する計算機システムに、
    実行開始する時に第1の状態を記憶し、実行が終了したら第2の状態を記憶するサービス処理と、
    前記第1の状態が記憶されていれば前記CPUにおいて前記サービスに係る処理が実行中である第1のCPU時間を加算し、前記第2の状態が記憶されていれば前記その他の処理が実行中である第2のCPU時間を加算する性能情報取得処理と
    を実行させることを特徴とする性能情報取得プログラム。
  14. サービスに係るサーバ処理とクライアント処理、およびその他の処理を実行するCPUを有する計算機システムに、
    実行開始する時に第1の状態を記憶し、実行が終了したら第3の状態を記憶するサーバ処理と、
    実行開始する時に第2の状態を記憶し、実行が終了したら第3の状態を記憶するクライアント処理と、
    前記第1の状態が記憶されていれば前記CPUにおいて前記サーバ処理が実行中である第1のCPU時間を加算し、前記第2の状態が記憶されていれば前記CPUにおいて前記クライアント処理が実行中である第2のCPU時間を加算し、前記第3の状態が記憶されていれば前記CPUにおいて前記その他の処理が実行中である第3のCPU時間を加算する性能情報取得処理と
    を実行させることを特徴とする性能情報取得プログラム。
  15. 前記性能情報取得処理があらかじめ定められた時間間隔で実行され、前記時間間隔を前記第1のCPU時間、前記第2のCPU時間、および前記第3のCPU時間のうちのいずれかに加算することを特徴とする、請求項14に記載の性能情報取得プログラム。
JP2008022810A 2008-02-01 2008-02-01 計算機システム、性能情報取得方法、および性能情報取得プログラム Expired - Fee Related JP4883022B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008022810A JP4883022B2 (ja) 2008-02-01 2008-02-01 計算機システム、性能情報取得方法、および性能情報取得プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008022810A JP4883022B2 (ja) 2008-02-01 2008-02-01 計算機システム、性能情報取得方法、および性能情報取得プログラム

Publications (2)

Publication Number Publication Date
JP2009181554A true JP2009181554A (ja) 2009-08-13
JP4883022B2 JP4883022B2 (ja) 2012-02-22

Family

ID=41035447

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008022810A Expired - Fee Related JP4883022B2 (ja) 2008-02-01 2008-02-01 計算機システム、性能情報取得方法、および性能情報取得プログラム

Country Status (1)

Country Link
JP (1) JP4883022B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003050721A (ja) * 2001-08-08 2003-02-21 Fujitsu Ltd 並列効率計算方法及び装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003050721A (ja) * 2001-08-08 2003-02-21 Fujitsu Ltd 並列効率計算方法及び装置

Also Published As

Publication number Publication date
JP4883022B2 (ja) 2012-02-22

Similar Documents

Publication Publication Date Title
CN107798108B (zh) 一种异步任务查询方法及设备
US7945914B2 (en) Methods and systems for performing operations in response to detecting a computer idle condition
US8166480B2 (en) Reducing lock contention by adding a time slice to an active thread holding a lock
US8347021B1 (en) Storing application messages
US9491247B2 (en) Automatic capture of detailed analysis information based on remote server analysis
CN106130810B (zh) 网站监测方法和装置
US20120297216A1 (en) Dynamically selecting active polling or timed waits
JPWO2009150815A1 (ja) マルチプロセッサシステム
CN109117279B (zh) 电子装置及其限制进程间通信的方法、存储介质
Iyer et al. Achieving microsecond-scale tail latency efficiently with approximate optimal scheduling
JP4883022B2 (ja) 計算機システム、性能情報取得方法、および性能情報取得プログラム
US8504749B2 (en) Synchronization of multiple processor cores
US8607232B2 (en) Identifying a transient thread and excluding the transient thread from a processor load calculation
JP5348315B2 (ja) マルチコアプロセッサシステム、制御プログラム、および制御方法
CN109062706B (zh) 电子装置及其限制进程间通信的方法、存储介质
US9317262B2 (en) Identification of code synchronization points
JP5605477B2 (ja) マルチコアプロセッサシステム、制御プログラム、および制御方法
JP5376042B2 (ja) マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
CN113254185A (zh) 终端任务的调度方法、终端设备及计算机存储介质
US9813316B1 (en) Implementing scalable throttled poller
US10419532B2 (en) Asynchronous connection handling in a multi-threaded server
Tsou et al. Latency profiling for SCA software radio
JP2023022571A (ja) コールバック管理方式
CN117632683A (zh) 一种分布式拨测监控方法、系统、电子设备及存储介质
JP5582241B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090519

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110830

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111019

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

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

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

Free format text: PAYMENT UNTIL: 20141216

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