JP2014052680A - プロセス数制御プログラム、プロセス数制御方法、および情報処理装置 - Google Patents

プロセス数制御プログラム、プロセス数制御方法、および情報処理装置 Download PDF

Info

Publication number
JP2014052680A
JP2014052680A JP2012194694A JP2012194694A JP2014052680A JP 2014052680 A JP2014052680 A JP 2014052680A JP 2012194694 A JP2012194694 A JP 2012194694A JP 2012194694 A JP2012194694 A JP 2012194694A JP 2014052680 A JP2014052680 A JP 2014052680A
Authority
JP
Japan
Prior art keywords
program
application
processes
business
manager
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
JP2012194694A
Other languages
English (en)
Other versions
JP5920125B2 (ja
Inventor
Yohei Kaneko
洋平 金子
Toshihiro Kawasaki
智弘 川崎
Naoki Yamano
直樹 山野
Atsushi Shimano
淳 島野
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012194694A priority Critical patent/JP5920125B2/ja
Priority to US13/937,934 priority patent/US9329902B2/en
Publication of JP2014052680A publication Critical patent/JP2014052680A/ja
Application granted granted Critical
Publication of JP5920125B2 publication Critical patent/JP5920125B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】プロセス数変動について負荷の急激な変化に対する追随性を向上して、リソースを有効に活用する。
【解決手段】情報処理装置1は、サービス要求の受付に先立ち、所要数(2以上のN個)のプロセス3をあらかじめ起動する。情報処理装置1は、第1のプログラム4からプロセス3を起動する。第1のプログラム4は、異なるサービス要求に対応する複数種類のプログラムに共通の実行基盤となるプロセス3を起動するプログラムである。プロセス3は、記憶領域5の割当を受けて、記憶領域5にサービスに応じたプログラム(第2のプログラム6)を展開可能にし、展開したプログラムの展開を解除可能にしている。情報処理装置1は、第2のプログラム6を展開しているプロセス3の負荷を監視して、負荷量に応じて制御対象プロセス数の増減を制御する。
【選択図】図1

Description

本発明は、プロセス数制御プログラム、プロセス数制御方法、および情報処理装置に関する。
クライアントからのサービス要求が高負荷の場合、アプリケーションのプロセス多重度を調整することで、サービス要求に応えるサーバシステムがある。このようなサーバシステムは、サービス要求に対するレスポンス時間や、あらかじめ見積もった時間あたりのサービス要求数から、アプリケーションのプロセス多重度を調整する。
アプリケーションのプロセス多重度の調整は、システム管理者により手動でおこなうことができる。また、サービス要求の負荷状態を監視して自動でプロセス多重度の調整をおこなうことができるサーバシステムの提案もある。
特開2006−317991号公報 特開平9−265409号公報
しかしながら、プロセス多重度の調整は、サービス要求の負荷ピークに合わせておこなう必要があるものの、負荷ピークの適切な見積りは困難である。
また、プロセス多重度の調整は、プロセスの起動と停止にかかるコストが高く、負荷の急激な変化に対して追随が困難である。
このように、プロセス多重度の調整は、負荷ピークの見積りの困難さと、負荷の急激な変化に対する追随の困難さとから、未だ多くの時間でリソースを無駄に消費している。
1つの側面では、本発明は、負荷の急激な変化に対する追随性を向上して、リソースを有効に活用可能なプロセス数制御プログラム、プロセス数制御方法、および情報処理装置を提供することを目的とする。
上記目的を達成するために、アプリケーションプロセスの多重度を動的に制御するプロセス数制御プログラム、およびプロセス数制御方法が提供される。プロセス数制御プログラム、およびプロセス数制御方法は、以下に示すような処理をコンピュータに実行させる。コンピュータは、第1のプログラムからN(2以上)個のプロセスを起動し、N個のプロセスのうちの1のプロセスに対応する記憶領域への第2のプログラムの展開と、記憶領域への第2のプログラムの展開の解除とにより、第2のプログラムを展開したプロセスの数の変動をN個の範囲内で第2のプログラムを展開したプロセスの負荷に応じて制御する。
また、上記目的を達成するために、以下に示すような、情報処理装置が提供される。情報処理装置は、制御部を備える。制御部は、第1のプログラムからN(2以上)個のプロセスを起動し、N個のプロセスのうちの1のプロセスに対応する記憶領域への第2のプログラムの展開と、記憶領域への第2のプログラムの展開の解除とにより、第2のプログラムを展開したプロセスの数の変動をN個の範囲内で第2のプログラムを展開したプロセスの負荷に応じて制御する。
1態様によれば、プロセス数制御プログラム、プロセス数制御方法、および情報処理装置において、負荷の急激な変化に対する追随性を向上して、リソースを有効に活用できる。
第1の実施形態の情報処理装置の構成例を示す図である。 第2の実施形態のアプリケーションサーバとクライアント端末の接続例を示す図である。 第2の実施形態のアプリケーションサーバの構成例を示す図である。 第2の実施形態の業務アプリの入れ替え前の配置例を示す図である。 第2の実施形態の業務アプリの入れ替え後の配置例を示す図である。 第2の実施形態のアプリケーションサーバのハードウェア構成例を示す図である。 第2の実施形態の第1プロセス管理処理のフローチャートである。 第2の実施形態の設定テーブルの一例である。 第2の実施形態のプロセス管理テーブルの一例である。 第2の実施形態の第1返却処理のフローチャートである。 第2の実施形態の第1配備処理のフローチャートである。 第3の実施形態の第2プロセス管理処理のフローチャートである。 第3の実施形態の設定テーブルの一例である。 第3の実施形態の第2返却処理のフローチャートである。 第3の実施形態の第2配備処理のフローチャートである。
以下、実施の形態を図面を参照して詳細に説明する。
[第1の実施形態]
まず、第1の実施形態の情報処理装置について図1を用いて説明する。図1は、第1の実施形態の情報処理装置の構成例を示す図である。
情報処理装置1は、クライアント端末からのサービス要求に応じてサービス応答をおこなう。情報処理装置1は、サービスに応じたプログラムの実行によりサービス応答をおこなう。また、情報処理装置1は、複数のサービス要求に対応するため、プログラムの実行単位となるプロセス3を複数起動する。
情報処理装置1は、第1のプログラム4からプロセス3を起動する。第1のプログラム4は、異なるサービス要求に対応する複数種類のプログラムに共通の実行基盤となるプロセス3を起動するプログラムである。たとえば、第1のプログラム4は、所要のリソースの割当、所要のライブラリのマッピングなどをおこない、プロセス3を起動する。図1に示す例では、情報処理装置1は、第1のプログラム4から、N個のプロセス3(プロセス31,32,33,…,3N)を起動する。
このように、情報処理装置1は、サービス要求の受付に先立ち、所要数(2以上のN個)のプロセス3をあらかじめ起動する。たとえば、所要数は、あらかじめ設定した数、情報処理装置1が利用可能な資源量に応じて決定される数などがある。したがって、情報処理装置1は、第1のプログラム4によるプロセス3の起動にかかる処理コストを、クライアント端末からのサービス要求前に負担する。
プロセス3は、記憶領域5の割当を受けて、記憶領域5にサービスに応じたプログラム(第2のプログラム6)を展開可能にしている。たとえば、プロセス31,32は、記憶領域5に第2のプログラム6aを展開する。また、プロセス3は、記憶領域5に展開したプログラムの展開を解除可能にしている。たとえば、プロセス33は、記憶領域5に展開していた第2のプログラム6bの展開を解除する。
このとき、情報処理装置1は、複数種類のプログラムに共通の実行基盤としてプロセス3を起動しているため、第2のプログラム6の展開と解除にかかる処理コストを軽減可能にしている。したがって、情報処理装置1は、記憶領域5に第2のプログラム6を展開するプロセス3の数(制御対象プロセス数)を、小さなコストで制御可能にしている。
情報処理装置1は、第2のプログラム6を展開しているプロセス3を複数にして、サービス要求を同時に処理できるプロセス多重度を設定する。時間あたりのクライアント端末からのサービス要求は、一定でなく変動するため、情報処理装置1は、第2のプログラム6を展開しているプロセス3の多重度を動的に制御する。
情報処理装置1は、第2のプログラム6を展開しているプロセス3の負荷を監視して、負荷量に応じて制御対象プロセス数の増減を制御する。制御対象プロセス数は、あらかじめ起動したプロセス3の数であるN個の範囲内で制御可能である。情報処理装置1は、たとえば、第2のプログラム6を展開しているプロセス3のうち、サービス要求にかかる処理を実行中のプロセス3の数あるいは割合などに応じて、第2のプログラム6を展開しているプロセス3にかかる負荷を検出することができる。
したがって、情報処理装置1は、第2のプログラム6を展開しているプロセス3の負荷変動に対する多重度制御の追随性を向上することができ、さらに、負荷軽減によるリソースの有効活用を図ることができる。
[第2の実施形態]
次に、第2の実施形態のアプリケーションサーバとクライアント端末の接続について図2を用いて説明する。図2は、第2の実施形態のアプリケーションサーバとクライアント端末の接続例を示す図である。
アプリケーションサーバ10は、ネットワーク11を介して複数のクライアント端末12と接続する。アプリケーションサーバ10は、たとえば、クライアント端末12からのリクエスト(サービス要求)に応じてレスポンス(サービス応答)をおこなう。
次に、第2の実施形態のアプリケーションサーバの構成について図3を用いて説明する。図3は、第2の実施形態のアプリケーションサーバの構成例を示す図である。
アプリケーションサーバ10は、クライアント端末12からのサービス要求に応じてサービス応答をおこなう。アプリケーションサーバ10は、クライアント端末12に対して業務Aにかかるサービスと、業務Bにかかるサービスとを提供する。業務Aにかかるサービスは、業務アプリA17が実行する処理により提供され、業務Bにかかるサービスは、業務アプリB20が実行する処理により提供される。
アプリケーションサーバ10は、実行単位となる業務アプリA17、業務アプリB20により、クライアント端末12からのサービス要求に対する処理を実行する。アプリケーションサーバ10は、複数のクライアント端末12からのサービス要求を同時に処理するため、業務アプリA17、業務アプリB20を複数配備する。
業務アプリA17は、あらかじめ起動されたプロセスであるアプリ実行基盤15に対応するメモリに業務アプリケーションA(プログラム)18が展開されている。業務アプリB20は、アプリ実行基盤15に割り当てられているメモリに業務アプリケーションB(プログラム)19が展開されている。
アプリ実行基盤15は、所要のリソースを確保した起動状態のプロセスである。アプリ実行基盤15は、所要数が起動され、プール14にプールされた状態(プール状態)としてマネージャ13に管理される。アプリ実行基盤15は、アプリケーションサーバで保持するロジック(フレームワーク、ライブラリのモジュールなどの汎用部分を含む)を用いて、業務アプリ(業務アプリA17、業務アプリB20)の実行環境基盤を構築する。アプリ実行基盤15は、たとえば、Java(登録商標) VM(ヴァーチャルマシン)により実現する。
業務アプリケーション(業務アプリケーションA18、業務アプリケーションB19)は、アプリ実行基盤15に割り当てられているメモリに展開される業務アプリに固有のプログラムである。
アプリケーションサーバ10は、業務アプリのプロセス多重度を制御するマネージャ13を備える。マネージャ13は、共有メモリ16を備える。マネージャ13は、すべての業務アプリのプロセス同時処理数の最大数のアプリ実行基盤15を起動して、起動したアプリ実行基盤15をプール14で管理する。プール14は、業務アプリケーションをメモリ上に展開していないアプリ実行基盤15の数を管理する変数である。
マネージャ13は、プール状態のアプリ実行基盤15に割り当てられているメモリに、業務アプリケーションを展開して、業務アプリを配備する。マネージャ13は、クライアント端末12からアプリケーションサーバ10へのサービス要求の数の変動に対応するため、変動に対して余裕のある多重度を業務アプリに設定する。
業務アプリは、クライアント端末12からのサービス要求を受け付けると、マネージャ13に負荷報告をおこなう。業務アプリは、サービス要求を処理中である旨の情報を共有メモリ16の所定の記憶領域に記録することで、マネージャ13への負荷報告とする。
マネージャ13は、共有メモリ16の所定の記憶領域から情報を読み出して、業務アプリの負荷を監視する。マネージャ13は、業務アプリの負荷を監視して、業務アプリの多重度を制御する。マネージャ13は、業務アプリの多重度の余裕が過小であることを検出した場合、プール状態のアプリ実行基盤15に割り当てられているメモリに、業務アプリケーションを展開して、業務アプリを配備する。また、マネージャ13は、業務アプリの多重度の余裕が過大であることを検出した場合、アプリ実行基盤15に割り当てられているメモリに展開されている業務アプリケーションの展開を解除して、業務アプリの配備を解除する。マネージャ13は、業務アプリの配備を解除したアプリ実行基盤15をプール状態とする。なお、マネージャ13は、API(Application Program Interface)により業務アプリの入替(配備と解除)をおこなうことができる。
たとえば、マネージャ13は、業務アプリA17および業務アプリB20の負荷を監視する。マネージャ13は、多重度「7」の業務アプリA17のうち、使用中が業務アプリA17aの1つ、不使用中が業務アプリA17b,17cの6つであることから、所定の基準にしたがい業務アプリA17の多重度の余裕が過大であると判定する。マネージャ13は、不使用中の業務アプリA17cの配備を解除して、業務アプリケーションA18の展開を解除したアプリ実行基盤15をプール状態とする。
一方、マネージャ13は、多重度「3」の業務アプリB20のうち、使用中が業務アプリB20aの3つすべてであることから、所定の基準にしたがい業務アプリB20の多重度の余裕が過小であると判定する。マネージャ13は、プール状態のアプリ実行基盤15のうち3つのプール状態を解除し、各アプリ実行基盤15に割り当てられているメモリに業務アプリケーションB19を展開して、業務アプリB20bを配備する。
これにより、マネージャ13は、業務アプリA17および業務アプリB20の多重度を適正な範囲に制御することができる。また、マネージャ13は、起動状態のアプリ実行基盤15に対する業務アプリケーションの展開により業務アプリを配備することができるので、配備にかかるコストを低減できる。また、マネージャ13は、起動状態のアプリ実行基盤15に対する業務アプリケーションの展開の解除と、アプリ実行基盤15をプール状態にすることにより業務アプリの配備を解除することができるので、配備解除にかかるコストを低減できる。
したがって、アプリケーションサーバ10は、業務アプリの配備と配備解除にかかるコストを低減しているため、業務アプリの負荷変動に対する高い即応性を有する。また、アプリケーションサーバ10は、業務アプリケーションの迅速な入れ替えが可能であることから、複数種類の業務アプリの負荷変動に対しても高い即応性を有する。
また、アプリケーションサーバ10は、管理者の作業によらずに業務アプリの配備と配備解除をおこなうことができるため、迅速に業務アプリの多重度を制御することができる。
次に、第2の実施形態の業務アプリの入れ替えについて図4、図5を用いて説明する。図4は、第2の実施形態の業務アプリの入れ替え前の配置例を示す図である。アプリケーションサーバ10は、5つの業務アプリA17と、2つの業務アプリB20を配備している。業務アプリA17は、4つが使用中(クライアント端末12からのサービス要求を処理中)であり、1つが未使用中である。業務アプリB20は、1つが使用中であり、1つが未使用中である。したがって、アプリケーションサーバ10は、業務アプリA17と業務アプリB20は、1つずつが新たなサービス要求を受け付け可能である。
ここで、アプリケーションサーバ10は、業務アプリA17と業務アプリB20の負荷に変動が生じた場合に、業務アプリの入れ替えをおこなう。たとえば、業務アプリA17の負荷が急減し、業務アプリB20の負荷が急増した場合に、アプリケーションサーバ10は、図5に示すような業務アプリの入れ替えをおこなう。図5は、第2の実施形態の業務アプリの入れ替え後の配置例を示す図である。
業務アプリA17は、1つが使用中であり、1つが未使用中である。業務アプリB20は、5つすべてが使用中である。このように、アプリケーションサーバ10は、クライアント端末12からのサービス要求に応じて、業務アプリA17の多重度を減らし、業務アプリB20の多重度を増大させる。
なお、アプリ実行基盤15が7つの場合を示したが、アプリケーションサーバ10は、プール状態のアプリ実行基盤15がある場合は、業務アプリB20の多重度をさらに増大させることができる。
アプリケーションサーバ10は、業務アプリA17の多重度を減らし、業務アプリB20の多重度を増大させる際に、アプリ実行基盤15を起動状態のままにして、業務アプリケーションA18を業務アプリケーションB19に変更することができる。したがって、アプリケーションサーバ10は、プロセスの停止と起動にかかる処理時間、CPUの処理負荷を削減することができ、業務アプリA17の配備解除にかかるコスト、業務アプリB20の配備にかかるコストを低減できる。
次に、第2の実施形態のアプリケーションサーバ10のハードウェア構成について図6を用いて説明する。図6は、第2の実施形態のアプリケーションサーバのハードウェア構成例を示す図である。アプリケーションサーバ10は、コンピュータ100、およびコンピュータ100に接続する入出力装置(周辺機器)を含んで構成される。
コンピュータ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、たとえばCPU、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM102は、コンピュータ100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しをおこなう。HDD103は、コンピュータ100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ110が接続されている。グラフィック処理装置104は、プロセッサ101からの命令にしたがって、画像をモニタ110の画面に表示させる。モニタ110としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード111とマウス112とが接続されている。入力インタフェース105は、キーボード111やマウス112から送られてくる信号をプロセッサ101に送信する。なお、マウス112は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク113に記録されたデータの読み取りを行う。光ディスク113は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク113には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、コンピュータ100に周辺機器を接続するための通信インタフェースである。たとえば、機器接続インタフェース107には、メモリ装置114やメモリリーダライタ115を接続することができる。メモリ装置114は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ115は、メモリカード116へのデータの書き込み、またはメモリカード116からのデータの読み出しを行う装置である。メモリカード116は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク11に接続されている。ネットワークインタフェース108は、ネットワーク11を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施形態のコンピュータ100の処理機能を実現することができる。なお、第1の実施形態に示した情報処理装置1および第2の実施形態に示すクライアント端末12も、図6に示したコンピュータ100と同様のハードウェアにより実現することができる。
コンピュータ100は、たとえば、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施形態の処理機能を実現する。コンピュータ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、コンピュータ100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をRAM102にロードし、プログラムを実行する。また、コンピュータ100に実行させるプログラムを、光ディスク113、メモリ装置114、メモリカード116などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえば、プロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次に、第2の実施形態のマネージャ13が実行する第1プロセス管理処理について図7を用いて説明する。図7は、第2の実施形態の第1プロセス管理処理のフローチャートである。
第1プロセス管理処理は、アプリケーションサーバ10が配備する業務アプリの多重度を制御する処理である。第1プロセス管理処理は、アプリケーションサーバ10の起動により実行される。
[ステップS11]マネージャ13は、システム環境設定からプール状態とするアプリ実行基盤15の数(プロセス数)を取得する。システム環境設定は、あらかじめ設定されるシステム環境の各種パラメータを保持する。たとえば、プール状態とするアプリ実行基盤15の数は、「10」である。なお、プール状態とするアプリ実行基盤15の数は、アプリケーションサーバ10の処理能力の他、アプリケーションサーバ10を含むシステムの処理能力、発生するサービス要求の量や頻度に等に応じて設定できる。
[ステップS12]マネージャ13は、取得したプロセス数だけアプリ実行基盤15を起動する。アプリ実行基盤15の起動は、アプリケーションサーバ10が所要のアプリ実行基盤起動プログラムを実行することによりおこなう。マネージャ13は、起動したアプリ実行基盤15をプール状態にして管理する。たとえば、マネージャ13は、プロセス数「10」を取得すると、アプリ実行基盤15を10だけ起動し、プール状態として管理する。
[ステップS13]マネージャ13は、設定テーブルから設定内容を取得する。ここで、設定テーブルについて図8を用いて説明する。図8は、第2の実施形態の設定テーブルの一例である。設定テーブル50は、アプリケーションサーバ10が配備するアプリケーション(業務アプリ)ごとの設定項目が記録されている。設定テーブル50は、設定項目として、最小プロセス数、変動閾値、およびプロセス変動数があるが、これ以外の設定項目を設けてもよい。最小プロセス数は、業務アプリの配備数の最小値である。変動閾値は、未使用の業務アプリのプロセス数の上限値である。プロセス変動数は、プール状態のアプリ実行基盤15の配備あるいは返却の単位となるプロセス数である。
アプリケーションサーバ10は、業務アプリAと、業務アプリBを配備するので、設定テーブル50は、業務アプリAと、業務アプリBについての設定項目が記録されている。
たとえば、マネージャ13は、業務アプリAについて、最小プロセス数「3」、変動閾値「2」、プロセス変動数「2」を取得し、業務アプリBについて、最小プロセス数「3」、変動閾値「2」、プロセス変動数「1」を取得する。
[ステップS14]マネージャ13は、取得した設定内容にもとづいて業務アプリを配備する。設定テーブル50にしたがえば、マネージャ13は、プール状態の3つのアプリ実行基盤15について、業務アプリケーションAを展開し、さらに、プール状態の3つのアプリ実行基盤15について、業務アプリケーションBを展開して、3つの業務アプリAと、3つの業務アプリBを配備する。
[ステップS15]マネージャ13は、システム環境設定から業務アプリの負荷の監視間隔を取得する。たとえば、業務アプリの負荷の監視間隔は、5秒である。なお、業務アプリの負荷の監視間隔は、アプリケーションサーバ10の処理能力の他、アプリケーションサーバ10を含むシステムの処理能力、発生するサービス要求の量や頻度に等に応じて設定できる。
[ステップS16]マネージャ13は、システム環境設定から取得した監視間隔にしたがい監視タイミングを判定する。すなわち、マネージャ13は、監視間隔5秒を取得している場合、5秒ごとに監視タイミングであると判定する。マネージャ13は、監視タイミングであると判定した場合にステップS17にすすみ、監視タイミングでないと判定した場合に監視タイミングを待ち受ける。
[ステップS17]マネージャ13は、プロセス管理テーブルから業務アプリごとのプロセス使用数を取得する。ここで、プロセス管理テーブルについて図9を用いて説明する。図9は、第2の実施形態のプロセス管理テーブルの一例である。
プロセス管理テーブル51は、アプリ実行基盤15ごとの使用状況が記録されている。プロセス管理テーブル51は、記録項目として、アプリケーション(業務アプリ)、使用フラグがあるが、これ以外の記録項目を設けてもよい。アプリケーションは、アプリ実行基盤15に割り当てられている業務アプリを特定可能な情報(たとえば、業務アプリA、業務アプリBのような名称)である。
使用フラグは、アプリケーションの割り当てのあるアプリ実行基盤15の使用状況を区別するフラグである。使用フラグ「1」は、アプリケーションの割り当てのあるアプリ実行基盤15が使用中、すなわちクライアント端末12からのサービス要求を受け付けて、サービス要求に応じた処理を実行中であることを示す。使用フラグ「0」は、アプリケーションの割り当てのあるアプリ実行基盤15が不使用中、すなわちクライアント端末12からのサービス要求を受け付けていない状態であることを示す。
たとえば、マネージャ13は、プロセス管理テーブル51によれば、業務アプリAが7つあり、うち使用中が3つあることから、業務アプリAのプロセス使用数「3」とプロセス未使用数「4」を取得する。また、マネージャ13は、プロセス管理テーブル51によれば、業務アプリBが3つあり、うち使用中が3つあることから、業務アプリBのプロセス使用数「3」とプロセス未使用数「0」を取得する。
なお、プロセスIDは、マネージャ13が管理するアプリ実行基盤15を一意に特定するための識別情報である。これにより、マネージャ13は、複数あるアプリ実行基盤15を各々区別して、アプリ実行基盤15ごとの使用状況を把握できる。
プロセス管理テーブル51は、共有メモリ16に保持される。共有メモリ16は、たとえば、RAM102、あるいはHDD103上に設定され、マネージャ13の他、業務アプリA、業務アプリBからもアクセス可能になっている。業務アプリA、業務アプリBは、クライアント端末12からのサービス要求を受け付けて、対応する使用フラグに「1」を設定し、サービス応答をおこない、次のサービス要求を受け付け可能にして、対応する使用フラグに「0」を設定する。
[ステップS18]マネージャ13は、第1返却処理を実行する。マネージャ13は、ステップS13で取得した設定内容、およびステップS17で取得したプロセス使用数とから、業務アプリごとに、必要に応じてアプリ実行基盤15の返却をおこなう。第1返却処理の詳細は、図10を用いて後で説明する。
[ステップS19]マネージャ13は、第1配備処理を実行する。マネージャ13は、ステップS13で取得した設定内容、およびステップS17で取得したプロセス使用数とから、業務アプリごとに、必要に応じて業務アプリの配備をおこなう。マネージャ13は、第1配備処理の実行後に、ステップS16にすすむ。第1配備処理の詳細は、図11を用いて後で説明する。
なお、共有メモリ16は、業務アプリA、業務アプリBからもアクセス可能であるとしたが、マネージャ13による占有メモリであってもよい。その場合、業務アプリA、業務アプリBは、マネージャ13に対して、クライアント端末12からのサービス要求の受付状況を通知する。マネージャ13は、業務アプリA、業務アプリBからの通知にもとづいて、プロセス管理テーブル51を更新するようにしてもよい。
次に、第2の実施形態のマネージャ13が実行する第1返却処理について図10を用いて説明する。図10は、第2の実施形態の第1返却処理のフローチャートである。
第1返却処理は、業務アプリごとに、必要に応じてアプリ実行基盤15の返却をおこなう処理である。第1返却処理は、第1プロセス管理処理のステップS18で実行される。
[ステップS21]マネージャ13は、設定テーブル50から監視対象の業務アプリ(監視対象アプリ)を1つ特定する。たとえば、マネージャ13は、設定テーブル50に設定のある業務アプリAと業務アプリBのうち、いずれかを監視対象として特定する。
[ステップS22]マネージャ13は、監視対象の業務アプリについて、未使用プロセス数と変動閾値とを比較して、未使用プロセス数が変動閾値より大きいか否かを判定する。マネージャ13は、未使用プロセス数が変動閾値より大きい場合にステップS23にすすみ、未使用プロセス数が変動閾値より大きくない場合にステップS25にすすむ。つまり、マネージャ13は、未使用プロセス数が過大な場合に、アプリ実行基盤15の返却をおこなう処理にすすむ。
[ステップS23]マネージャ13は、プロセス変動数だけ業務アプリの配備を解除する。
[ステップS24]マネージャ13は、業務アプリの配備を解除したアプリ実行基盤15をプール状態とする(返却)。マネージャ13は、業務アプリの配備を解除したアプリ実行基盤15について、プロセス管理テーブル51のアプリケーション配備の記録を消去する。
[ステップS25]マネージャ13は、監視対象のすべての業務アプリについて、監視をおこなったか否かを判定する。マネージャ13は、監視対象のすべての業務アプリについて、監視をおこなっていない場合にステップS21にすすみ、監視対象のすべての業務アプリについて、監視をおこなった場合に第1返却処理を終了する。
これにより、アプリケーションサーバ10は、プロセス管理テーブル51にあるような業務アプリの使用状況である場合、次のように動作する。マネージャ13は、業務アプリAについて、未使用プロセス数「4」が変動閾値「2」より大きいことから、変動数である2つのアプリ実行基盤15の返却をおこなう。一方、マネージャ13は、業務アプリBについて、未使用プロセス数「0」が変動閾値「2」より大きくないことから、アプリ実行基盤15の返却をおこなわない。
このようにして、アプリケーションサーバ10は、監視対象のすべての業務アプリについて未使用プロセスが過大にならないように管理することができる。また、アプリケーションサーバ10は、未使用プロセスの配備の解除を未使用プロセス自体の停止によらずに、アプリ実行基盤15の返却によりおこなうことができるので、アプリ実行基盤15の停止にかかるコストを低減できる。
次に、第2の実施形態のマネージャ13が実行する第1配備処理について図11を用いて説明する。図11は、第2の実施形態の第1配備処理のフローチャートである。
第1配備処理は、業務アプリごとに、必要に応じてプール状態のアプリ実行基盤15に業務アプリの配備をおこなう処理である。第1配備処理は、第1プロセス管理処理のステップS19で実行される。
[ステップS31]マネージャ13は、設定テーブル50から監視対象の業務アプリを1つ特定する。たとえば、マネージャ13は、設定テーブル50に設定のある業務アプリAと業務アプリBのうち、いずれかを監視対象として特定する。
[ステップS32]マネージャ13は、監視対象の業務アプリについて、プロセス使用率が100%であるか否か、すなわち、未使用プロセス数が「0」であるか否かを判定する。マネージャ13は、監視対象の業務アプリについて、未使用プロセス数が「0」である場合にステップS33にすすみ、未使用プロセス数が「0」でない場合にステップS35にすすむ。つまり、マネージャ13は、未使用プロセス数が過小な場合に、業務アプリの配備をおこなう処理にすすむ。
[ステップS33]マネージャ13は、プール状態のアプリ実行基盤15をプロセス変動数だけ業務アプリ配備対象とする。
[ステップS34]マネージャ13は、プール状態のアプリ実行基盤15について、業務アプリを割り当てて配備する。マネージャ13は、業務アプリを割り当てたアプリ実行基盤15について、プロセス管理テーブル51に割り当てた業務アプリを記録する。
[ステップS35]マネージャ13は、監視対象のすべての業務アプリについて、監視をおこなったか否かを判定する。マネージャ13は、監視対象のすべての業務アプリについて、監視をおこなっていない場合にステップS31にすすみ、監視対象のすべての業務アプリについて、監視をおこなった場合に第1配備処理を終了する。
これにより、アプリケーションサーバ10は、プロセス管理テーブル51にあるような業務アプリの使用状況である場合、次のように動作する。マネージャ13は、業務アプリAについて、未使用プロセス数が「4」であり、「0」でないことから、業務アプリAの配備をおこなわない。また、プロセス管理テーブル51にあるような業務アプリの使用状況のもと第1返却処理が実行された後であっても、マネージャ13は、業務アプリAについて、未使用プロセス数が「2」であり、「0」でないことから、アプリ実行基盤15の配備をおこなわない。一方、マネージャ13は、業務アプリBについて、未使用プロセス数が「0」であることから、プロセス変動数「2」だけ業務アプリBの配備をおこなう。
なお、マネージャ13は、ステップS32で、監視対象の業務アプリについて、プロセス使用率が100%であるか否かを判定したが、あらかじめ設定する閾値を用いて未使用プロセス数の過小程度を判定するようにしてもよい。
このようにして、アプリケーションサーバ10は、監視対象のすべての業務アプリについて未使用プロセスが過小にならないように管理することができる。また、アプリケーションサーバ10は、業務アプリの配備をプロセス自体の起動によらずに、プール状態のアプリ実行基盤15に割り当てられているメモリへのアプリケーションプログラムの展開によりおこなうことができるので、配備にかかるコストを低減できる。
このようなアプリケーションサーバ10は、予期せぬ事態の発生など、見積もりが困難な負荷状況の変化に応じて、業務アプリごとのプロセス多重度を高速に変動させることができる。プロセス多重度の高速変動は、1つには、業務アプリごとのプロセス多重度の変動にかかるコストを低減したことにより監視間隔を小さくすることができることによる。
また、このようなアプリケーションサーバ10は、システム管理者による業務(業務アプリ)ごとの応答目標時間の設定を不要として、システム管理者の負荷を軽減することができる。
また、このようなアプリケーションサーバ10は、より正確なプロセス使用状況を用いてプロセス多重度の変動の是非を判定しているため、クライアント端末12に対して処理遅延の少ない安定したサービスの提供をおこなうことができる。
また、このようなアプリケーションサーバ10は、負荷のピークに合わせたプロセス多重度を設定することによるリソースの無駄を避けることができる。
なお、アプリケーションサーバ10は、業務アプリごとに設定テーブル50の設定内容をチューニングすることができるので、業務アプリの特性に応じた好適なプロセス多重度の制御をおこなうことができる。
なお、未使用プロセスを過大と判定する基準や未使用プロセスを過小と判定する基準は、業務アプリごとに設定されるものであってもよい。また、システム環境として設定される監視時間を、設定テーブル50の設定内容としてもよく、業務アプリごとに監視時間を異ならせるものであってもよい。
[第3の実施形態]
次に、第3の実施形態のマネージャ13が実行する第2プロセス管理処理について図12を用いて説明する。図12は、第3の実施形態の第2プロセス管理処理のフローチャートである。
第2プロセス管理処理は、アプリケーションサーバ10が配備する業務アプリの多重度を制御する処理である。第2プロセス管理処理は、アプリケーションサーバ10の起動により実行される。第2プロセス管理処理は、プロセス使用数の時系列の変化を監視する点で第1プロセス管理処理と異なる。
[ステップS41]マネージャ13は、システム環境設定からプール状態とするアプリ実行基盤15の数(プロセス数)を取得する。
[ステップS42]マネージャ13は、取得したプロセス数だけアプリ実行基盤15を起動する。マネージャ13は、起動したアプリ実行基盤15をプール状態にして管理する。
[ステップS43]マネージャ13は、設定テーブルから設定内容を取得する。ここで、設定テーブルについて図13を用いて説明する。図13は、第3の実施形態の設定テーブルの一例である。設定テーブル52は、アプリケーションサーバ10が配備するアプリケーション(業務アプリ)ごとの設定項目が記録されている。設定テーブル52は、設定項目として、最小プロセス数、変動閾値、および前回のプロセス使用数があるが、これ以外の設定項目を設けてもよい。最小プロセス数は、業務アプリの配備数の最小値である。変動閾値は、未使用の業務アプリのプロセス数の上限値である。前回のプロセス使用数は、前回の監視タイミングで観測したアプリケーションごとのプロセス使用数である。
アプリケーションサーバ10は、業務アプリAと、業務アプリBを配備するので、設定テーブル52は、業務アプリAと、業務アプリBについての設定項目が記録されている。
たとえば、マネージャ13は、業務アプリAについて、最小プロセス数「3」、変動閾値「2」、前回のプロセス使用数「6」を取得し、業務アプリBについて、最小プロセス数「3」、変動閾値「2」、前回のプロセス使用数「1」を取得する。
[ステップS44]マネージャ13は、取得した設定内容にもとづいて業務アプリを配備する。設定テーブル50にしたがえば、マネージャ13は、プール状態の3つのアプリ実行基盤15について、業務アプリケーションAを展開し、さらに、プール状態の3つのアプリ実行基盤15について、業務アプリケーションBを展開して、3つの業務アプリAと、3つの業務アプリBを配備する。
[ステップS45]マネージャ13は、システム環境設定から業務アプリの負荷の監視間隔を取得する。たとえば、業務アプリの負荷の監視間隔は、5秒である。
[ステップS46]マネージャ13は、システム環境設定から取得した監視間隔にしたがい監視タイミングを判定する。すなわち、マネージャ13は、監視間隔5秒を取得している場合、5秒ごとに監視タイミングであると判定する。マネージャ13は、監視タイミングであると判定した場合にステップS47にすすみ、監視タイミングでないと判定した場合に監視タイミングを待ち受ける。
[ステップS47]マネージャ13は、設定テーブル52から前回のプロセス使用数を取得する。
[ステップS48]マネージャ13は、プロセス管理テーブルから業務アプリごとのプロセス使用数を取得する。第3の実施形態のプロセス管理テーブルは、第2の実施形態のプロセス管理テーブルと同様であるため、図9に示したプロセス管理テーブル51を用いて説明する。
たとえば、マネージャ13は、プロセス管理テーブル51によれば、業務アプリAが7つあり、うち使用中が3つあることから、業務アプリAのプロセス使用数「3」とプロセス未使用数「4」を取得する。また、マネージャ13は、プロセス管理テーブル51によれば、業務アプリBが3つあり、うち使用中が3つあることから、業務アプリBのプロセス使用数「3」とプロセス未使用数「0」を取得する。
[ステップS49]マネージャ13は、第2返却処理を実行する。マネージャ13は、ステップS43で取得した設定内容、ステップS47で取得した前回のプロセス使用数、およびステップS48で取得したプロセス使用数とから、業務アプリごとに、必要に応じてアプリ実行基盤15を返却する。第2返却処理の詳細は、図14を用いて後で説明する。
[ステップS50]マネージャ13は、第2配備処理を実行する。マネージャ13は、ステップS43で取得した設定内容、ステップS47で取得した前回のプロセス使用数、およびステップS48で取得したプロセス使用数とから、業務アプリの配備をおこなう。マネージャ13は、業務アプリごとに、必要に応じて業務アプリの配備をおこなう。第2配備処理の詳細は、図15を用いて後で説明する。
[ステップS51]マネージャ13は、設定テーブル52の前回のプロセス使用数を、今回のプロセス使用数で更新する。マネージャ13は、設定テーブル52の前回のプロセス使用数の更新後に、ステップS46にすすむ。
なお、共有メモリ16は、業務アプリA、業務アプリBからもアクセス可能であるとしたが、マネージャ13による占有メモリであってもよい。その場合、業務アプリA、業務アプリBは、マネージャ13に対して、クライアント端末12からのサービス要求の受付状況を通知する。マネージャ13は、業務アプリA、業務アプリBからの通知にもとづいて、プロセス管理テーブル51を更新するようにしてもよい。
次に、第3の実施形態のマネージャ13が実行する第2返却処理について図14を用いて説明する。図14は、第3の実施形態の第2返却処理のフローチャートである。
第2返却処理は、業務アプリごとに、必要に応じてアプリ実行基盤15の返却をおこなう処理である。第2返却処理は、第2プロセス管理処理のステップS49で実行される。
[ステップS61]マネージャ13は、設定テーブル52から監視対象の業務アプリを1つ特定する。たとえば、マネージャ13は、設定テーブル52に設定のある業務アプリAと業務アプリBのうち、いずれかを監視対象として特定する。
[ステップS62]マネージャ13は、監視対象の業務アプリについて、未使用プロセス数と変動閾値とを比較して、未使用プロセス数が変動閾値より大きいか否かを判定する。マネージャ13は、未使用プロセス数が変動閾値より大きい場合にステップS63にすすみ、未使用プロセス数が変動閾値より大きくない場合にステップS65にすすむ。つまり、マネージャ13は、未使用プロセス数が過大な場合に、アプリ実行基盤15の返却をおこなう処理にすすむ。
[ステップS63]マネージャ13は、前回のプロセス使用数から今回のプロセス使用数を差し引いた数だけ業務アプリの配備を解除する。
[ステップS64]マネージャ13は、業務アプリの配備を解除したアプリ実行基盤15を返却する。マネージャ13は、業務アプリの配備を解除したアプリ実行基盤15について、プロセス管理テーブル51のアプリケーション配備の記録を消去する。
[ステップS65]マネージャ13は、監視対象のすべての業務アプリについて、監視をおこなったか否かを判定する。マネージャ13は、監視対象のすべての業務アプリについて、監視をおこなっていない場合にステップS61にすすみ、監視対象のすべての業務アプリについて、監視をおこなった場合に第2返却処理を終了する。
これにより、アプリケーションサーバ10は、プロセス管理テーブル51にあるような業務アプリの使用状況である場合、次のように動作する。マネージャ13は、業務アプリAについて、未使用プロセス数「4」が変動閾値「2」より大きいことから、前回のプロセス使用数「6」と今回のプロセス使用数「4」の差である2つのアプリ実行基盤15の返却をおこなう。一方、マネージャ13は、業務アプリBについて、未使用プロセス数「0」が変動閾値「2」より大きくないことから、アプリ実行基盤15の返却をおこなわない。
このようにして、アプリケーションサーバ10は、監視対象のすべての業務アプリについて未使用プロセスが過大にならないように管理することができる。また、アプリケーションサーバ10は、未使用プロセスの配備の解除を未使用プロセス自体の停止によらずに、アプリ実行基盤15の返却によりおこなうことができるので、返却にかかるコストを低減できる。
次に、第3の実施形態のマネージャ13が実行する第2配備処理について図15を用いて説明する。図15は、第3の実施形態の第2配備処理のフローチャートである。
第2配備処理は、業務アプリごとに、必要に応じてプール状態のアプリ実行基盤15に業務アプリの配備をおこなう処理である。第2配備処理は、第2プロセス管理処理のステップS50で実行される。
[ステップS71]マネージャ13は、設定テーブル52から監視対象の業務アプリを1つ特定する。たとえば、マネージャ13は、設定テーブル52に設定のある業務アプリAと業務アプリBのうち、いずれかを監視対象として特定する。
[ステップS72]マネージャ13は、監視対象の業務アプリについて、プロセス使用率が100%であるか否か、すなわち、未使用プロセス数が「0」であるか否かを判定する。マネージャ13は、監視対象の業務アプリについて、未使用プロセス数が「0」である場合にステップS73にすすみ、未使用プロセス数が「0」でない場合にステップS75にすすむ。つまり、マネージャ13は、未使用プロセス数が過小な場合に、業務アプリの配備をおこなう処理にすすむ。
[ステップS73]マネージャ13は、前回のプロセス使用数から今回のプロセス使用数への増加数だけ、プール状態のアプリ実行基盤15を業務アプリ配備対象とする。
[ステップS74]マネージャ13は、プール状態のアプリ実行基盤15について、業務アプリを割り当てて配備する。マネージャ13は、業務アプリを割り当てたアプリ実行基盤15について、プロセス管理テーブル51に割り当てた業務アプリを記録する。
[ステップS75]マネージャ13は、監視対象のすべての業務アプリについて、監視をおこなったか否かを判定する。マネージャ13は、監視対象のすべての業務アプリについて、監視をおこなっていない場合にステップS71にすすみ、監視対象のすべての業務アプリについて、監視をおこなった場合に第2配備処理を終了する。
これにより、アプリケーションサーバ10は、プロセス管理テーブル51にあるような業務アプリの使用状況である場合、次のように動作する。マネージャ13は、業務アプリAについて、未使用プロセス数が「4」であり、「0」でないことから、業務アプリAの配備をおこなわない。また、プロセス管理テーブル51にあるような業務アプリの使用状況のもと第2返却処理が実行された後であっても、マネージャ13は、業務アプリAについて、未使用プロセス数が「1」であり、「0」でないことから、業務アプリAの配備をおこなわない。一方、マネージャ13は、業務アプリBについて、未使用プロセス数が「0」であることから、業務アプリBの配備をおこなう。マネージャ13は、業務アプリBについて、前回のプロセス使用数「1」から今回のプロセス使用数「3」への増加数「2」だけ、業務アプリBの配備をおこなう。
なお、マネージャ13は、ステップS32で、監視対象のアプリケーションについて、プロセス使用率が100%であるか否かを判定したが、あらかじめ設定する閾値を用いて未使用プロセス数の過小程度を判定するようにしてもよい。
このようにして、アプリケーションサーバ10は、監視対象のすべての業務アプリについて未使用プロセスが過小にならないように管理することができる。また、アプリケーションサーバ10は、プロセスの配備をプロセス自体の起動によらずに、プール状態のアプリ実行基盤15に割り当てられているメモリへのアプリケーションプログラムの展開によりおこなうことができるので、配備にかかるコストを低減できる。
このようなアプリケーションサーバ10は、予期せぬ事態の発生など、見積もりが困難な負荷状況の変化に応じて、業務アプリごとのプロセス多重度を高速に変動させることができる。プロセス多重度の高速変動は、1つには、業務アプリごとのプロセス多重度の変動にかかるコストを低減したことにより監視間隔を小さくすることができることによる。
また、このようなアプリケーションサーバ10は、システム管理者による業務(業務アプリ)ごとの応答目標時間の設定を不要として、システム管理者の負荷を軽減することができる。
また、このようなアプリケーションサーバ10は、より正確なプロセス使用状況を用いてプロセス多重度の変動の是非を判定しているため、クライアント端末12に対して処理遅延の少ない安定したサービスの提供をおこなうことができる。
また、このようなアプリケーションサーバ10は、負荷のピークに合わせたプロセス多重度を設定することによるリソースの無駄を避けることができる。
なお、アプリケーションサーバ10は、プロセス使用率あるいはプロセス使用数の変動の大きさに応じて、プロセス多重度の変動量の大きさを変更することができる。したがって、アプリケーションサーバ10は、プロセス使用率あるいはプロセス使用数の変動が小さい場合には、プロセス多重度の制御にかかるコストを低減できる。また、アプリケーションサーバ10は、プロセス使用率あるいはプロセス使用数の変動が大きい場合には、大きな変動に追随してプロセス多重度の制御をおこなうことができる。
なお、未使用プロセスを過大と判定する基準や未使用プロセスを過小と判定する基準は、業務アプリごとに設定されるものであってもよい。また、システム環境として設定される監視時間を、設定テーブル50の設定内容としてもよく、業務アプリごとに監視時間を異ならせるものであってもよい。
なお、第2の実施形態および第3の実施形態において、業務アプリの一例として業務アプリAと業務アプリBの2つを挙げたが、3種類以上の業務アプリにおいてもアプリ実行基盤を共用することができる。また、すべての業務アプリが1種類のアプリ実行基盤を共用する一例を示したが、複数種類の業務アプリのグループごとに対応するアプリ実行基盤を共用するものであってもよい。たとえば、業務アプリAと業務アプリBは、アプリ実行基盤Cを共用し、業務アプリDと業務アプリEは、アプリ実行基盤Fを共用するものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報処理装置1、アプリケーションサーバ10が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLDなどの電子回路で実現することもできる。
1 情報処理装置
2 制御部
3,31,32,33,3N プロセス
4 第1のプログラム
5 記憶領域
6,6a,6b 第2のプログラム
10 アプリケーションサーバ
11 ネットワーク
12 クライアント端末
13 マネージャ
14 プール
15 アプリ実行基盤
16 共有メモリ
17,17a,17b,17c 業務アプリA
18 業務アプリケーションA
19 業務アプリケーションB
20,20a,20b 業務アプリB
50,52 設定テーブル
51 プロセス管理テーブル
100 コンピュータ

Claims (9)

  1. コンピュータに、
    第1のプログラムからN(2以上)個のプロセスを起動し、
    前記N個のプロセスのうちの1のプロセスに対応する記憶領域への第2のプログラムの展開と、前記記憶領域への前記第2のプログラムの展開の解除とにより、前記第2のプログラムを展開した前記プロセスの数の変動を前記N個の範囲内で前記第2のプログラムを展開した前記プロセスの負荷に応じて制御する、
    処理を実行させることを特徴とするプロセス数制御プログラム。
  2. あらかじめ設定した設定数のプロセスを起動し、
    初期状態として前記第2のプログラムを展開した前記プロセスの数を、あらかじめ設定したプロセス多重度に制御することを特徴とする請求項1記載のプロセス数制御プログラム。
  3. あらかじめ設定した変動数を増減単位にして、前記第2のプログラムを展開した前記プロセスの数の変動を制御することを特徴とする請求項2記載のプロセス数制御プログラム。
  4. 前記第2のプログラムは、複数種類あり、
    前記変動数は、前記第2のプログラムの種類ごとに設定されることを特徴とする請求項3記載のプロセス数制御プログラム。
  5. 前記負荷を所定のタイミングで監視し、
    前記負荷の監視結果と、前記監視結果の前回の監視タイミングの監視結果との比較にもとづいて決定される変動数を増減単位にして、前記第2のプログラムを展開した前記プロセスの数の変動を制御することを特徴とする請求項2記載のプロセス数制御プログラム。
  6. 前記第2のプログラムを展開した前記プロセスの数を所定のタイミングで監視し、
    前記プロセスの数の監視結果と、前記監視結果の前回の監視タイミングの監視結果との差分にもとづいて決定される変動数を増減単位にして、前記第2のプログラムを展開した前記プロセスの数の変動を制御することを特徴とする請求項2記載のプロセス数制御プログラム。
  7. 前記負荷を所定周期で監視し、前記所定周期で、前記第2のプログラムを展開した前記プロセスの数の変動を制御することを特徴とする請求項1乃至請求項6のいずれか1つに記載のプロセス変動プログラム。
  8. コンピュータが、
    第1のプログラムからN(2以上)個のプロセスを起動し、
    前記N個のプロセスのうちの1のプロセスに対応する記憶領域への第2のプログラムの展開と、前記記憶領域への前記第2のプログラムの展開の解除とにより、前記第2のプログラムを展開した前記プロセスの数の変動を前記N個の範囲内で前記第2のプログラムを展開した前記プロセスの負荷に応じて制御する、
    ことを特徴とするプロセス数制御方法。
  9. 第1のプログラムからN(2以上)個のプロセスを起動し、
    前記N個のプロセスのうちの1のプロセスに対応する記憶領域への第2のプログラムの展開と、前記記憶領域への前記第2のプログラムの展開の解除とにより、前記第2のプログラムを展開した前記プロセスの数の変動を前記N個の範囲内で前記第2のプログラムを展開した前記プロセスの負荷に応じて制御する、
    制御部を備えることを特徴とする情報処理装置。
JP2012194694A 2012-09-05 2012-09-05 プロセス数制御プログラム、プロセス数制御方法、および情報処理装置 Expired - Fee Related JP5920125B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012194694A JP5920125B2 (ja) 2012-09-05 2012-09-05 プロセス数制御プログラム、プロセス数制御方法、および情報処理装置
US13/937,934 US9329902B2 (en) 2012-09-05 2013-07-09 Information processing method of controlling variation in a number of processes, storage medium, and information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012194694A JP5920125B2 (ja) 2012-09-05 2012-09-05 プロセス数制御プログラム、プロセス数制御方法、および情報処理装置

Publications (2)

Publication Number Publication Date
JP2014052680A true JP2014052680A (ja) 2014-03-20
JP5920125B2 JP5920125B2 (ja) 2016-05-18

Family

ID=50189366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012194694A Expired - Fee Related JP5920125B2 (ja) 2012-09-05 2012-09-05 プロセス数制御プログラム、プロセス数制御方法、および情報処理装置

Country Status (2)

Country Link
US (1) US9329902B2 (ja)
JP (1) JP5920125B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10223536B2 (en) * 2016-12-29 2019-03-05 Paypal, Inc. Device monitoring policy

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07302242A (ja) * 1994-04-30 1995-11-14 Mitsubishi Electric Corp 負荷分散方式
WO2012008016A1 (ja) * 2010-07-13 2012-01-19 富士通株式会社 マルチスレッド処理装置,マルチスレッド処理システム,マルチスレッド処理プログラム,及びマルチスレッド処理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182109B1 (en) 1996-03-08 2001-01-30 International Business Machines Corporation Dynamic execution unit management for high performance user level network server system
JP2006317991A (ja) 2005-05-10 2006-11-24 Hitachi Ltd プロセス数チューニング方法
US20130179894A1 (en) * 2012-01-09 2013-07-11 Microsoft Corporation Platform as a service job scheduling
US9372735B2 (en) * 2012-01-09 2016-06-21 Microsoft Technology Licensing, Llc Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07302242A (ja) * 1994-04-30 1995-11-14 Mitsubishi Electric Corp 負荷分散方式
WO2012008016A1 (ja) * 2010-07-13 2012-01-19 富士通株式会社 マルチスレッド処理装置,マルチスレッド処理システム,マルチスレッド処理プログラム,及びマルチスレッド処理方法

Also Published As

Publication number Publication date
US20140068628A1 (en) 2014-03-06
JP5920125B2 (ja) 2016-05-18
US9329902B2 (en) 2016-05-03

Similar Documents

Publication Publication Date Title
US10191772B2 (en) Dynamic resource configuration based on context
US10701139B2 (en) Life cycle management method and apparatus
EP3507692B1 (en) Resource oversubscription based on utilization patterns in computing systems
US7933995B2 (en) Computer program and apparatus for controlling computing resources, and distributed processing system
US9852008B2 (en) Computer-readable recording medium storing execution information notification program, information processing apparatus, and information processing system
US20170017511A1 (en) Method for memory management in virtual machines, and corresponding system and computer program product
US9477460B2 (en) Non-transitory computer-readable storage medium for selective application of update programs dependent upon a load of a virtual machine and related apparatus and method
JP2007122664A (ja) 情報処理方法および情報処理装置
JP2017107274A (ja) 仮想マシン増設方法、情報処理装置および仮想マシン増設システム
JP4407956B2 (ja) 情報処理方法および情報処理装置
JP2016103144A (ja) 仮想マシン配備方法、仮想マシン配備プログラム及び仮想マシン配備システム
US20180343170A1 (en) Methods and apparatus to generate and manage workload domains in virtual server racks
US20170344385A1 (en) Information processing apparatus, information processing method, and storage medium
US10754368B1 (en) Method and system for load balancing backup resources
JP2014049056A (ja) 情報処理装置、ログ出力方法およびログ出力プログラム
EP3629160A1 (en) Method and device for managing vnf instantiation
CN116204268A (zh) 一种云实例的扩缩容方法及其相关设备
US20070174836A1 (en) System for controlling computer and method therefor
JP5920125B2 (ja) プロセス数制御プログラム、プロセス数制御方法、および情報処理装置
US6598105B1 (en) Interrupt arbiter for a computing system
US20230155958A1 (en) Method for optimal resource selection based on available gpu resource analysis in large-scale container platform
CN114629958B (zh) 资源分配方法、装置、电子设备及存储介质
CN115328608A (zh) 一种Kubernetes容器垂直伸缩调节方法和装置
CN113568746A (zh) 负载均衡方法、装置、电子设备及存储介质
US20240061698A1 (en) Managing the assignment of virtual machines to non-uniform memory access nodes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160222

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160328

R150 Certificate of patent or registration of utility model

Ref document number: 5920125

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees