JPWO2017022233A1 - 情報処理装置、リクエスト処理遅延制御方法及び記憶媒体 - Google Patents

情報処理装置、リクエスト処理遅延制御方法及び記憶媒体 Download PDF

Info

Publication number
JPWO2017022233A1
JPWO2017022233A1 JP2017532378A JP2017532378A JPWO2017022233A1 JP WO2017022233 A1 JPWO2017022233 A1 JP WO2017022233A1 JP 2017532378 A JP2017532378 A JP 2017532378A JP 2017532378 A JP2017532378 A JP 2017532378A JP WO2017022233 A1 JPWO2017022233 A1 JP WO2017022233A1
Authority
JP
Japan
Prior art keywords
request
response time
configuration change
processing
unit
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.)
Pending
Application number
JP2017532378A
Other languages
English (en)
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.)
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
Publication of JPWO2017022233A1 publication Critical patent/JPWO2017022233A1/ja
Pending legal-status Critical Current

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]

Landscapes

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

Abstract

自装置の負荷軽減を可能とする情報処理装置を提供する。情報処理装置は、送受信部と、測定部と、判定部と、遅延挿入部と、実行部と、を備える。送受信部は、クライアントからのリクエストを受信し、リクエストに対する処理結果をクライアントに送信する。測定部は、リクエストが受信されてから処理結果が送信されるまでの応答時間を測定する。判定部は、応答時間が閾値を超過しているか否かを判定する。遅延挿入部は、応答時間が閾値を超過しているリクエストを処理しているプロセスに対するCPU(Central Processing Unit)リソースの割り当てを所定期間停止するように、CPUスケジューラに指示する。実行部は、所定期間に、応答時間が閾値を超過しているリクエストを処理しているプロセスの応答時間を短くするための予め定めた処理である構成変更機能を実行する。

Description

本発明は、情報処理装置、リクエスト処理遅延制御方法及びプログラムに関する。特に、他装置からリクエストを受け付けて処理する情報処理装置、リクエスト処理遅延制御方法及びプログラムに関する。
特許文献1の図1において、通信サーバの負荷を分散するシステム(リクエスト処理遅延制御システム)の一例が開示されている。特許文献1の図1に示されるシステムは、通信サーバ(符号19)とLAN(Local Area Network;符号9)と、通信回線(ホスト接続回線;符号10)から構成されている。さらに、通信サーバは、通信サーバ計算機本体(符号1)、サーバ情報データベース(符号16)、定義ファイル(符号17)、LAN制御装置(符号7)、回線制御装置(符号8)から構成される。通信サーバ計算機本体は、管理ユーティリティー(符号14)、時間計測/負荷監視プログラム(符号13)、クライアント制御プログラム(符号4)、サーバ制御プログラム(符号12)、OS(Operating System;符号2)から構成されている。さらに、OSは、LAN制御プログラム(符号5)、回線制御プログラム(符号6)から構成されている。また、クライアント制御プログラム、通信制御プログラム、LAN制御プログラム、回線制御プログラムは、時間情報採取手段(符号15)をそれぞれ備える。
上記構成を有するシステムは、概略以下のように動作する。上記システムでは、各プログラムに備えられた時間情報採取手段を用いて通信処理速度が計測される。その際、通信処理速度は、次のように計測される。各プログラムは、リクエストが各プログラムを通過する際、時間情報採取手段によって、通過時刻を記録する。そして、プログラムから他のプログラムへリクエストが通過する際に通過時刻の差分を通信処理速度とする。例えば、クライアント制御プログラムからLAN制御プログラムへリクエストが通過する際には、クライアント制御プログラムがリクエストをLAN制御プログラムへ渡す時刻を記録し、次にLAN制御プログラムはLAN制御装置へリクエストを送信する時刻を記録する。そして、それらの差分を計算することによって、LAN制御プログラムが消費した時間が得られる。そして、当該通信処理速度が予め設定した負荷の上限と比較される。上限値を超えると、LAN上の他のサーバの内から、予め定めた順序に従って、通信サーバの機能を代替する代替サーバを選択して稼動させる。このように、多数のクライアントからの処理の要求が同時に発生し通信サーバに過負荷が発生しそうになった際にそれを未然に防ぎ、システム全体のスループット、処理能力の向上を図ると共にシステム規模の拡大/縮小に柔軟に対応可能としている。
特許文献2には、サーバの応答時間を利用した負荷分散装置が開示されている。特許文献2には、サーバからのパケットに関するキャプチャデータからモニタされる応答時間と、設定された応答時間と、を比較し、応答時間の遅延を検出することが記載されている(段落[0024])。
特開平9−106381号公報(図1) 特開2011−197796号公報 特開2006−195709号公報 特開2000−295353号公報 特開平05−028072号公報 国際公開第2011/111230号
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
特許文献1の図1に開示されたシステムには、以下の問題点が存在する。
特許文献1のシステムでは、サーバが高負荷状態になると、構成変更に要する処理(時間計測、閾値超過判断、代替サーバ選択、代替サーバの稼働等)に必要なリソースを確保することができないという問題がある。その理由は、構成変更に必要なCPU(Central Processing Unit)リソースをリクエスト処理(クライアントからのリクエストに対応する処理)に費やしているためである。具体的には、通信サーバが、時間情報を計測し、そこから通信処理速度を計算し、さらに閾値を超過しているかどうかを判定する。閾値を超えている場合に、代替サーバを選択し稼働させるという一連の構成変更処理を実行するには、それらの処理に必要なCPU時間(プロセスへのCPUリソースの割り当て)を確保する必要がある。しかしながら、サーバが高負荷な状態だと、上記構成変更に必要なCPUリソースをリクエスト処理プログラム自身が消費することになる。よって、通信サーバでは、構成変更に必要なCPUリソースを確保することができず、構成変更が終了しないという状態になる。
なお、特許文献2は、負荷分散装置(ロードバランサ)に関する技術を開示するものであり、装置(例えば、通信サーバ)自身の負荷を観測し、その負荷を分散する特許文献1の技術とは異なるものである。つまり、特許文献2では負荷分散装置からみた他の装置(通信サーバ)の負荷を観測しているが、特許文献1では通信サーバ自身の負荷を観測している。従って、特許文献2の開示する技術を特許文献1に開示された技術に適用することはできない。
以上の状況を鑑み、本発明は、自装置の負荷軽減を可能とする、情報処理装置、リクエスト処理遅延制御方法及びプログラムを提供することを目的とする。
本発明の第1の視点によれば、クライアントからのリクエストを受信し、前記リクエストに対する処理結果を前記クライアントに送信する送受信部と、前記リクエストが受信されてから前記処理結果が送信されるまでの応答時間を測定する測定部と、前記応答時間が閾値を超過しているか否かを判定する判定部と、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPU(Central Processing Unit)リソースの割り当てを所定期間停止するように、CPUスケジューラに指示する、遅延挿入部と、前記所定期間に、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスの応答時間を短くするための予め定めた処理である構成変更機能を実行する、実行部と、を備える、情報処理装置が提供される。
本発明の第2の視点によれば、クライアントからのリクエストを受信し、前記リクエストに対する処理結果を前記クライアントに送信するステップと、前記リクエストが受信されてから前記処理結果が送信されるまでの応答時間を測定するステップと、前記応答時間が閾値を超過しているか否かを判定するステップと、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPU(Central Processing Unit)リソースの割り当てを所定期間停止するように、CPUスケジューラに指示するステップと、前記所定期間に、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスの応答時間を短くするための予め定めた処理である構成変更機能を実行するステップと、を含む、リクエスト処理遅延制御方法が提供される。
本発明の第3の視点によれば、クライアントからのリクエストを受信し、前記リクエストに対する処理結果を前記クライアントに送信する処理と、前記リクエストが受信されてから前記処理結果が送信されるまでの応答時間を測定する処理と、前記応答時間が閾値を超過しているか否かを判定する処理と、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPU(Central Processing Unit)リソースの割り当てを所定期間停止するように、CPUスケジューラに指示する処理と、前記所定期間に、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスの応答時間を短くするための予め定めた処理である構成変更機能を実行する処理と、を情報処理装置に搭載されたコンピュータに実行させるプログラムが提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
本発明の各視点によれば、自装置の負荷軽減を可能とすることに寄与する情報処理装置、リクエスト処理遅延制御方法及びプログラムが、提供される。
一実施形態の概要を説明するための図である。 第1の実施形態に係る情報処理装置の内部構成の一例示す図である。 第1の実施形態に係るシステム制御部の内部構成の一例を示す図である。 リクエスト応答時間測定部の内部構成の一例を示す図である。 リクエストIDの作成方法を説明するための図である。 処理中リストの一例を示す図である。 アプリケーション情報の一例を示す図である。 構成変更機能リストの一例を示す図である。 プロトコルタイムアウト表の一例を示す図である。 第1の実施形態に係るシステムの全体動作の一例を示すフローチャートである。 リクエスト記録部の動作の一例を示すフローチャートである。 応答時間計算部と閾値超過判定部の動作の一例を示すフローチャートである。 処理遅延制御部の動作の一例を示すフローチャートである。 第2の実施形態に係るシステム制御部の内部構成の一例を示す図である。 第2の実施形態に係るアプリケーション情報の一例を示す図である。 第2の実施形態に係るプロトコル分析部の動作の一例を示すフローチャートである。 第3の実施形態に係るシステム制御部の内部構成の一例を示す図である。 第3の実施形態に係るリクエスト応答時間測定部の動作の一例を示すフローチャートである。 処理遅延挿入部、フィードバック制御部及び閾値超過判定部の動作の一例を示すフローチャートである。 構成変更機能選択部と構成変更機能実行部の動作の一例を示すフローチャートである。 オペレーティングシステムにLINUXを適用した場合の一構成例を示す図である。
初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
一実施形態に係る情報処理装置200は、送受信部201と、測定部202と、判定部203と、遅延挿入部204と、実行部205と、を備える。送受信部201は、クライアントからのリクエストを受信し、リクエストに対する処理結果をクライアントに送信する。測定部202は、リクエストが受信されてから処理結果が送信されるまでの応答時間を測定する。判定部203は、応答時間が閾値を超過しているか否かを判定する。遅延挿入部204は、応答時間が閾値を超過しているリクエストを処理しているプロセスに対するCPU(Central Processing Unit)リソースの割り当てを所定期間停止するように、CPUスケジューラに指示する。実行部205は、所定期間に、応答時間が閾値を超過しているリクエストを処理しているプロセスの応答時間を短くするための予め定めた処理である構成変更機能を実行する。
情報処理装置200は、例えば、通信リクエストが当該装置に多数到着し、その負荷が増大した場合に、負荷を低減するための処理である構成変更機能を実行する。その際、構成変更機能自身がCPUリソースを必要とするため、情報処理装置200は、構成変更機能の実行余地を作り出すため、負荷が増大しているプロセス(アプリケーション)へのCPUリソース割り当てを停止する。このように、情報処理装置200は、リクエスト処理を一時的に停止することで、構成変更に必要なCPUリソースを確保し、自装置(情報処理装置200)の負荷を低減する。
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。
[第1の実施の形態]
第1の実施形態について、図面を用いてより詳細に説明する。
[構成の説明]
図2は、第1の実施形態に係る情報処理装置1の内部構成の一例を示す図である。図2を参照すると、情報処理装置1には、CPU10と、HDD(Hard Disk Drive)等からなる記憶装置20と、ネットワークインターフェイス30と、入出力インターフェイス40と、が含まれている。なお、情報処理装置1の内部に含まれる各部は、内部バスにより接続されており、相互に通信可能に構成されている。
CPU10は、情報処理装置1の全体を制御し、アプリケーションが利用する基本機能を提供するシステム制御部100を実現する。システム制御部100は、オペレーティングシステム(OS;Operating System)に相当し、当該オペレーティングシステム上にてアプリケーションが実行される。なお、情報処理装置1の用途を限定する趣旨ではないが、第1の実施形態では、情報処理装置1は各種ネットワークサービスを提供する通信サーバとして運用されることを想定し、以下の説明を行う。
ネットワークインターフェイス30は、情報処理装置1と接続されたネットワークに対するインターフェイスであり、ネットワークインターフェイスカード(NIC;Network Interface Card)等に相当する。また、入出力インターフェイス40は、入出力装置(例えば、キーボードやディスプレイ等)に対するインターフェイスである。
図3は、システム制御部100の内部構成の一例を示す図である。図3を参照すると、システム制御部100は、リクエスト送受信部101と、リクエスト応答時間測定部102と、閾値超過判定部103と、処理遅延制御部104と、CPUスケジューラ105と、構成変更機能実行部106と、構成変更機能群107と、を備える。さらに、処理遅延制御部104は、処理遅延挿入部111と構成変更機能選択部112から構成される。構成変更機能群107は、N個の構成変更機能107−1〜107−N(但し、Nは正の整数且つ構成変更機能の最大数)から構成される。また、処理遅延制御部104等の各部は、アプリケーション情報121と、構成変更機能リスト122と、プロトコルタイムアウト表123と、にアクセス可能に構成されている。なお、図3に示すアプリケーション情報121、構成変更機能リスト122及びプロトコルタイムアウト表123の各種情報は、記憶装置20に格納された情報であるが、理解の容易のため図3に図示している。
上記の各部(システム制御部100をなす各モジュール、処理手段)は、それぞれ概略次のように動作する。
リクエスト送受信部101は、リクエストを送受信するための手段である。即ち、リクエスト送受信部101は、クライアントからのリクエストに係るパケットを受信し、当該リクエストに対する処理結果を含むパケットをクライアントに送信する。より具体的には、リクエスト送受信部101は、受信したリクエストを、対応するアプリケーションに引き渡す。または、リクエスト送受信部101は、アプリケーションにより処理された結果をクライアントに向けて送信する。さらに、リクエスト送受信部101は、受信したリクエストをリクエスト応答時間測定部102に引き渡す、又は、アプリケーションにより処理された結果をクライアントに送信する前にリクエスト応答時間測定部102に応答時間の測定を指示する。
なお、リクエストには、サーバプロセスが提供するサービスを利用したいユーザがネットワークを利用して送信する要求が含まれる。より具体的には、WEB(ウェブ)リクエストやSIP(Session Initiation Protocol)リクエスト等が該当する。WEBリクエストは、通常、インターネット上のサーバが提供するウェブページを閲覧したい場合に、ユーザがウェブページの情報を送信するようにWEBサーバに対して要求することを示す。また、SIPは、主に音声通話の開始処理に用いられるプロトコルである。例えば、あるユーザ(送信側ユーザ)が他のユーザ(着信側ユーザ)と音声通話を開始したい場合、送信側ユーザは、SIPリクエストをSIPサーバに送信する。送信側ユーザは受け取ったSIPリクエストの内容を確認し、着信側ユーザへ送信側ユーザに通話要求があることを通知する。
リクエスト応答時間測定部102は、リクエストが受信されてから処理結果がクライアントに送信されるまでの応答時間を測定する手段である。つまり、リクエスト応答時間測定部102は、リクエストの応答時間として、サーバプロセス(サーバ機能を実現するアプリケーション)がリクエストを受け取った時点から、当該リクエストの処理結果がユーザに送信される(サーバからの送出が完了することを指す)までの時間を測定している。
例えば、WEBリクエストであれば、WEBサーバ(情報処理装置1により実現されるWEBサーバ)がWEBリクエストを受け取った時点から、ウェブページ情報をユーザへ送出完了するまでの時間がリクエストの応答時間に該当する。また、SIPリクエストであれば、SIPサーバが送信側ユーザからのSIPリクエストを受け取ってから当該リクエストを着信側ユーザに送出するまでの時間がリクエストの応答時間に該当する。なお、受信リクエストと結果送出は同じ順序で実行されるとは限らない。つまり、サーバは、受信したリクエストのうち、処理が終了したものから順に結果を送出する。例えば、リクエストがA、B、C、D、Eの順で到着したとしても、それぞれの処理内容によって、C、B、A、E、Dの順で結果が送出される可能性がある。よって、どの受信リクエストがどの送出結果と対になっているか(どの受信リクエストがどの送出結果と対応するか)を認識する必要がある。このような認識(リクエストと結果の関連付け)には、それぞれのプロトコルに用いられる情報を使って識別子を作ることによって実現することができる。
図4は、リクエスト応答時間測定部102の内部構成の一例を示す図である。図4を参照すると、リクエスト応答時間測定部102は、リクエスト記録部131と、応答時間計算部132と、から構成される。なお、リクエスト記録部131は、記憶装置20に格納された処理中リスト133にアクセス可能に構成されている。
リクエスト記録部131は、到着したリクエストに関して、リクエストそれぞれに一意な識別子(以下、リクエストID(Identifier)と表記する)を作成して、当該リクエストの到着時刻と一緒に処理中リスト133に記録する手段である。即ち、リクエスト記録部131は、クライアントから受信したリクエストから、リクエストを識別するリクエストIDを生成し、リクエストIDとクライアントから受信したリクエストの到着時刻を関連付けて、処理中リストに登録する。
図5は、リクエストIDの作成方法を説明するための図である。図5(a)は、SIPプロトコルのヘッダ情報を表している。SIPによるリクエストには、SIPヘッダ中のCall−IDとCseqがそれぞれのリクエストごとに一意に設定される。また、処理結果の返信にもSIPヘッダ情報の中に同じCall−IDとCseqが付与される。これらを利用し、Call−IDとCseqに係る情報を用いて、図5(b)に示すようなリクエストIDを作成することにより、受信リクエストと送出結果の対(対応関係)を識別することが可能となる。なお、図5(b)の例では、Call−IDとCseqを連結させ、リクエストIDが生成されている。
リクエスト記録部131は、受信したリクエストからリクエストIDを生成する。さらに、当該リクエストの処理結果が要求元ユーザに送出されるまで当該リクエストIDは処理中リスト133により保持されるので、リクエスト記録部131は受信時刻と送出時刻の差からリクエストの応答時間を算出する。
処理中リスト133は、到着したリクエストの一覧を記載したリストである。図6は、処理中リスト133の一例を示す図である。図6に示すとおり、処理中リスト133は、ポート番号表141とリクエスト表142(図6には、リクエスト表142−1、142−2を表記)と、からなる構成(構造)を有する。
ポート番号表141は、ポート番号143とリクエスト表番号144の組み合わせをエントリとして持つリストである。
リクエスト表142は、リクエストID145(図6には、リクエストID145−1、145−2を表記)と到着時刻146(図6には、到着時刻146−1、146−2を表記)の組み合わせをエントリとして持つリストである。処理中のリクエストは、ポート番号143毎に格納される。例えば、ポート番号「5060」に到着したリクエストに関し、最初に、リクエスト記録部131はリクエストID145を作成する。なお、リクエストID145の作成方法は上述の通りである。
また、リクエスト記録部131は、ポート番号表141を検索し、同じポート番号143と組になるリクエスト表番号144を検索する。図6の例では、ポート番号「5060」と組になるリクエスト表142は、リクエスト表1となる。その後、リクエスト記録部131は、リクエスト表142の中に既に作成したリクエストID145と到着時刻146を組にして格納する。このように、処理中リスト133により、ポート番号ごとにリクエストの詳細(リクエストID、到着時刻)が管理される。
図4に示す応答時間計算部132は、リクエストの応答時間を計算するための手段である。具体的には、応答時間計算部132は、処理中リスト133に登録された到着時刻と、処理結果をクライアントに送信する時刻と、に基づいて、応答時間を計算する。
リクエスト送受信部101は、到着したリクエストに対して何らかの処理が実行された後(アプリケーションにより処理された後)、その結果をリクエストの送信元に返信する。リクエスト送受信部101は、リクエストの処理結果を送信する前に応答時間計算部132を呼び出して(リクエスト応答時間測定部102に依頼して)、リクエストの応答時間を計算させる。応答時間の計算に際し、現在時刻がリクエスト処理結果の送信時刻として記録される。次に、応答時間計算部132は、当該リクエストのリクエストIDを生成する。その後、応答時間計算部132は、処理中リクエストの中に上記作成したリクエストIDと同じリクエストID145があるかどうかを検索する。同じリクエストID145があれば、応答時間計算部132は、当該リクエストID145と組になっている到着時刻146を取得し、先に送信時刻として記録された時刻から到着時刻146を減算して、減算結果を応答時間とする。応答時間計算部132は、応答時間の計算終了後に、リクエスト表142から当該リクエストID145に対応するエントリを削除する。そして、応答時間計算部132は、応答時間の計算結果を閾値超過判定部103に出力する。
図3に示す閾値超過判定部103は、リクエストの応答時間が予め設定されている閾値を超過しているか否かを判定する手段である。閾値を超過していたら、閾値超過判定部103は、処理遅延制御部104に当該リクエスト処理に利用されているアプリケーションの処理を停止するように要求する。アプリケーションの停止に際して、閾値超過判定部103は、該当のポート番号を入力情報として処理遅延制御部104に引き渡す。なお、閾値超過判定部103が利用する閾値は、アプリケーション情報121から取得する。
アプリケーション情報121は、リクエスト処理を実行するアプリケーションに関する情報を記載したリスト(テーブル情報)である。図7は、アプリケーション情報121の一例を示す図である。図7に示すとおり、アプリケーション情報121は、ポート番号151と、アプリケーション名152と、プロセスID153と、使用プロトコル154と、閾値155と、から構成される。
ポート番号151は、当該リクエスト処理に使用されているアプリケーションが利用するポート番号を示す。プロセスID153は、当該アプリケーションを構成するプロセス番号を示す。なお、プロセス番号は1つ以上から構成される。使用プロトコル154は、当該アプリケーションがリクエストの送受信に利用しているプロトコルを示す。なお、閾値155は、上述のように、閾値超過判定部103が参照する情報である。
図7のリストに示すアプリケーション情報121の最上段のエントリを例に取り、アプリケーション情報121を説明すると、当該エントリのアプリケーションは「Apache」と呼ばれるウェブサーバであり、当該アプリケーションはポート番号「80」を使ってリクエストを送受信している。また、当該アプリケーションは、プロセス「2210、2011、2212」の3つのプロセスから構成され、プロトコルとして「HTTP(Hyper Text Transfer Protocol)/TCP(Transmission Control Protocol)」を使用している。なお、「HTTP/TCP」は、HTTPプロトコルとTCPプロトコルと呼ばれる2種類のプロトコルを示す。
構成変更機能リスト122は、構成変更機能に関する情報を記載したリストである。図8は、構成変更機能リスト122の一例を示す図である。図8に示すとおり、構成変更機能リスト122は、構成変更機能番号161と、構成変更機能名162と、構成変更実行時間163と、から構成される。
構成変更機能番号161は、各構成変更機能に一意に付与された数値である。構成変更機能名162は、構成変更機能の名称を指す。構成変更実行時間163は、当該構成変更に要する時間を示す。例えば、構成変更機能番号1の「CPU affinity」に係る処理の実行を完了するには20ミリ秒要することになる。構成変更実行時間163は、予め測定しておいた数値を最初に利用しても良いし、その後、本実施形態の実行中に得られた実行時間情報に置き換えても良い。
プロトコルタイムアウト表123は、各プロトコルのタイムアウトのデフォルト値(初期値)を記載したリストである。図9は、プロトコルタイムアウト表の一例を示す図である。図9に示すとおり、プロトコルタイムアウト表123は、プロトコル名171と、タイムアウト値172(デフォルトのタイムアウト値)と、から構成されている。
タイムアウト値172は、RFC(Request for Comments)等に記載の各プロトコル標準タイムアウト値を用いることができる。但し、プロトコルに規定されている数値が存在しない、又は、通常用いられているデフォルトタイムアウト値が存在しない場合には、当該プロトコルのデフォルトタイムアウト値172は「0」となる。
図3に示す処理遅延制御部104は、主として以下の2つの処理を実行する。第1の処理として、処理遅延制御部104は、リクエスト処理に利用されているアプリケーションへの物理CPU割り当て(CPUリソースの割り当て)を一定時間停止する。第2の処理として、処理遅延制御部104は、上記アプリケーションを停止している間に実行できる構成変更機能を選択し、当該選択した構成変更機能の実行を構成変更機能実行部106に指示する。
処理遅延制御部104は、閾値超過判定部103からの要求に従って実行される(動作する)。処理遅延制御部104によるCPUリソースの割り当て停止と構成変更機能の選択は、アプリケーション情報121、構成変更機能リスト122、プロトコルタイムアウト表123の各種情報を用いて実行される。
処理遅延制御部104は、処理遅延挿入部111と、構成変更機能選択部112と、から構成され、上記2つの処理のうち、処理遅延挿入部111は第1の処理を実行し、構成変更機能選択部112は第2の処理を実行する。
処理遅延制御部104に含まれる処理遅延挿入部111は、応答時間が閾値を超過しているリクエストを処理しているプロセスに対するCPUリソースの割り当てを所定期間停止するように、CPUスケジューラ105に指示する手段である。即ち、処理遅延挿入部111は、リクエスト処理に利用されているアプリケーション(クライアントからのリクエストを処理しているアプリケーション)へのCPUリソース割り当てを一定時間停止する。
アプリケーションへのCPUリソース割り当ての一時停止には、アプリケーション情報121とプロトコルタイムアウト表123から得られる情報が用いられる。より具体的には、処理遅延挿入部111は、閾値超過判定部103から送られてきたポート番号に基づき、アプリケーション情報121から当該アプリケーションを構成するプロセスID153を取得する。例えば、閾値超過判定部103からポート番号80番が送信されると、処理遅延制御部104(処理遅延挿入部111)は、アプリケーション情報121からプロセスIDとして「2210、2011、2212」を取得する(図7の1行目のエントリ参照)。さらに、処理遅延挿入部111は、アプリケーション情報121から使用プロトコル154を取得する。上記の例では、「HTTP/TCP」が取得される。次に、処理遅延挿入部111は、プロトコルタイムアウト表123から先ほど取得したプロトコルに対応するタイムアウト値172を取得する。上記の例では、使用プロトコル154は「HTTP」と「TCP」から構成されているので、それぞれのタイムアウト値「189000」と「300000」がプロトコルタイムアウト表123から取得される。その際、処理遅延挿入部111は、タイムアウト値172が2つ以上存在する場合は、小さい方のタイムアウト値172を選択する。上記の例では、タイムアウト値「189000」が選択される。処理遅延挿入部111は、取得したタイムアウト値172を、構成変更機能選択部112に入力する。
また、処理遅延挿入部111は、CPUスケジューラ105に対し、閾値が超過したリクエストに関連するプロセスのスケジューリングを、上記取得したタイムアウト値172に相当する期間、停止するように指示する。上記の例では、関連するプロセスとして、プロセスID「2210、2011、2212」のプロセスが該当し、使用プロトコル「TCP」のタイムアウト値172である「189000ミリ秒」の間、上記プロセスへのCPUリソース割り当て停止がCPUスケジューラ105に指示される。
構成変更機能選択部112は、処理遅延挿入部111から取得したタイムアウト値172に基づき、複数の構成変更機能107−1〜107−Nのなかから、構成変更機能実行部106に実行させる構成変更機能を選択する手段である。具体的には、構成変更機能選択部112は、取得したタイムアウト値172と、構成変更機能リスト122に格納された情報と、に基づいて、上記タイムアウト値172以内に実行可能な構成変更機能を選択する。より詳細には、構成変更機能選択部112は、処理遅延挿入部111から取得したタイムアウト値172以内に実行できる構成変更機能を構成変更機能リスト122から選択する。例えば、図8の例では、構成変更機能選択部112に入力されたタイムアウト値172が「189000」であるので、全ての構成変更がタイムアウト値172以内に実行可能であることが分かる。この場合、構成変更機能選択部112は、構成変更実行時間163が最も大きいものを選択する。つまり、図8の例では、構成変更機能番号161が「5」である「Migrate Task」が選択される。その後、構成変更機能選択部112は、選択した構成変更機能の実行を、構成変更機能実行部106に指示する。このように、処理遅延制御部104に含まれる構成変更機能選択部112は、当該アプリケーションを停止している間に実行できる構成変更機能を選択し実行する。
処理遅延制御部104は、処理遅延挿入部111と構成変更機能選択部112を用いて、閾値超過判定部103により通知された応答時間が所定の閾値を超えているアプリケーション(プロセス)に関し、当該プロセスの使用するプロトコルのタイムアウト値を導き出す。次に、処理遅延制御部104は、上記タイムアウト値以内に、変更処理が可能な構成変更機能を選択し、上記プロトコルのタイムアウト値に相当する期間、上記応答遅延を起こしているプロセスへのCPUリソースの割り当てを停止する。
図3に示すCPUスケジューラ105は、各プロセスをCPU10上で時間を区切って実行する手段である。アプリケーション実行の際には、実行時間がプロセスに対して割り与えられる。各プロセスは、与えられた実行時間の間だけ処理を進めることができる。CPUスケジューラ105は、現在実行中スレッドの実行時間を管理しており、CPUスケジューラ105は、処理遅延挿入部111から送られてきた時間だけ該当プロセスにCPU時間を割り当てないように動作する。例えば、上記の例では、プロセスID153が「2210、2011、2212」のプロセスに対して「189000」ミリ秒(プロトコルTCPのタイムアウト値172)の間はCPU時間が割り当てられない。
構成変更機能実行部106は、構成変更機能選択部112によって選択された構成変更機能を実行するための手段である。構成変更機能選択部112からは、構成変更機能番号161、又は、構成変更機能名162が送られてくる。構成変更機能実行部106は、当該情報を使って構成変更機能群107から該当する構成変更機能を選択して実行する。
構成変更機能群107は、複数の構成変更機能(機能ブロック)の集合である。なお、構成変更機能とは、上述のとおり、制御対象のアプリケーション、CPUリソースを用いるプロセスの応答時間を短くするための予め定めた処理である。構成変更機能群107には、構成変更機能107−1〜構成変更機能107−Nまで存在する。Nは構成変更機能の最大数であり、構成変更機能リスト122のエントリ数と一致する。構成変更機能はそれぞれが実行可能なプログラムであることを想定する。
上記説明した各モジュール(処理手段)は、初めに、リクエスト処理の応答時間が閾値155を超過したときに動作を開始し、閾値155を超過したリクエストを処理しているアプリケーションの実行を、処理遅延挿入部111を用いて一時停止する。その上で、一時停止時間内に実行できる構成変更機能を選択/実行することによって、リクエストのタイムアウトを発生させることなく構成変更が実行される。
なお、上記の説明では、処理遅延挿入部111がプロセスへのCPUリソース割り当てを停止する時間として、各プロセスのタイムアウト値を用いているが、実際には、当該タイムアウト値よりも若干短い(マージンを取った)時間、各プロセスへのCPUリソースの割り当てを停止するようにCPUスケジューラ105に指示し、制御対象のアプリケーションによるタイムアウトを回避するのが望ましい。
[動作の説明]
次に、図10〜図13を参照しつつ、第1の実施形態に係るシステムの動作について説明する。
図10は、第1の実施形態に係るシステムの全体動作の一例を示すフローチャートである。
ステップS01において、リクエストの応答時間が測定される。測定にはリクエスト応答時間測定部102が用いられる(リクエスト応答時間測定部102が動作する)。
ステップS02において、当該リクエストの応答時間が閾値155を超えたか否かが判定される。当該判定には、閾値超過判定部103が用いられる。
リクエスト応答時間が閾値155を超過していれば(ステップS03、Yes分岐)、処理遅延制御部104は、アプリケーション情報121とプロトコルタイムアウト表123から当該リクエストのタイムアウト値を取得する(ステップS04)。リクエスト応答時間が閾値155を超過していなければ(ステップS03、No分岐)、ステップS01以降の処理が継続される(リクエストの応答時間測定に戻る)。
その後、タイムアウト時間以内に実行できる構成変更機能が構成変更機能リスト122から選択され(ステップS05)、上記応答時間の遅延を起こしているプロセスへのCPUリソースの割り当てが、ステップS04にて取得されたタイムアウト値の期間、一時停止されると共に、ステップS05にて選択された構成変更機能が構成変更機能実行部106により実行される(ステップS06)。
図11は、リクエスト応答時間測定部102の構成要素であるリクエスト記録部131の動作の一例を示すフローチャートである。なお、ここでは、リクエスト記録部131の動作前に、リクエスト送受信部101によって受け取ったリクエストはリクエスト応答時間測定部102に渡されているものとする。
ステップS101において、リクエスト記録部131は、受信したリクエストのポート番号を取得する。具体的には、ポート番号は、送られてきたリクエストに記載されているので、当該記載されたポート番号をリクエスト記録部131が取り出す。
次に、ステップS102において、リクエスト記録部131は、受信したリクエストに関するリクエストID145を生成する。リクエストID145の生成は、上述の通りである。
次に、ステップS103において、リクエスト記録部131は、処理中リスト133に含まれるポート番号表141のポート番号143から、対応するリクエスト表番号144を取得する。即ち、リクエスト記録部131は、処理中リスト133のポート番号表141を確認することによってリクエスト表番号144を取得する。
次に、ステップS104において、リクエスト記録部131は、リクエスト表142に当該リクエストのリクエストID145と到着時刻146を登録する。
図12は、応答時間計算部132と閾値超過判定部103の動作の一例を示すフローチャートである。なお、アプリケーションがリクエスト処理を完了し、処理結果をクライアントに返信する際に応答時間計算部132が実行される(動作する)。つまり、応答時間計算部132は、これからクライアントに対して送信される処理結果を受信することで実行を開始する。
ステップS201において、応答時間計算部132は、送信する処理結果(リクエスト)のポート番号を取得する。送信するリクエストのポート番号は、当該リクエスト内に記載されているので、記載されたポート番号を用いる。
次に、ステップS202において、応答時間計算部132は、送信するリクエストのリクエストIDを生成する。リクエストIDの生成方法は上述の通りである。
次に、ステップS203において、応答時間計算部132は、先ほど取得したポート番号に一致するポート番号をリクエスト表142から検索する。応答時間計算部132は、処理中リスト133のポート番号表141から、取得したポート番号とポート番号143が一致するエントリを検索してリクエスト表番号144を検索し、当該リクエスト表番号144を有するリクエスト表142を取得する。
次に、ステップS204において、応答時間計算部132は、当該リクエスト表142に上記作成したリクエストID145と同じリクエストID145があるかどうか確認する。
送信予定のリクエストのリクエストID145と同じリクエストID145がリクエスト表142に存在する場合は(ステップS205、Yes分岐)、現在時刻から到着時刻146を減算して応答時間を計算する(ステップS206)。
送信予定のリクエストのリクエストID145と同じリクエストID145がリクエスト表142に存在しない場合は(ステップS205、No分岐)、処理が終了する。
次に、ステップS207において、応答時間計算部132は、当該リクエスト表142から同一リクエストID145のエントリを削除する。
次に、ステップS208において、応答時間計算部132は、応答時間を閾値超過判定部103に通知する。
閾値超過判定部103は、送られてきた応答時間が閾値155を超過していると判断した場合(ステップS209、Yes分岐)、処理遅延制御部104の実行を開始する(ステップS210)。その後、閾値超過判定部103は、閾値超過判定を停止する(ステップS211)。
応答時間が閾値155を超過していない場合には(ステップS209、No分岐)、閾値超過判定部103は処理を終了する。その後、応答時間計算部132と閾値超過判定部103は、他のアプリケーションに関する応答時間が閾値155を超過しているか否かを監視し続ける。
図13は、処理遅延制御部104の動作の一例を示すフローチャートである。
ステップS301において、処理遅延制御部104は、閾値を超過したリクエストのポート番号143から当該リクエストのタイムアウト値(タイムアウト時間)を取得する。
次に、ステップS302において、処理遅延制御部104は、タイムアウト値内に実行でき、且つ、構成変更実行時間が最も大きい構成変更機能を選択する。なお、タイムアウト値172の取得方法と構成変更機能の選択方法は上述の通りである。
上記条件に合致する構成変更機能が存在すれば(ステップS303、Yes分岐)、処理遅延制御部104は、プロセスID153をアプリケーション情報121から取得し(ステップS304)、ステップS301にて取得したタイムアウト値に相当する期間、当該プロセスへのCPUリソース割り当てを停止する(ステップS305)。なお、アプリケーション情報121に含まれるプロセスID153が複数存在する場合は、ステップS304とステップS305をプロセスID153の数だけ繰り返すことになる。
次に、処理遅延制御部104は、選択した構成変更機能を実行した後(構成変更機能実行部106に選択した構成変更機能の実行を指示した後)、一定時間待機する(ステップS306)。なお、その際の待機時間は当該アプリケーションの通常時の応答時間の2倍を基本として、構成変更機能実行部106がリクエスト応答時間測定部102から計算するものとする。
その後、閾値超過判定が再開される(ステップS307)。
以上のように、第1の実施形態に係るシステム制御部100は、閾値155を超過したリクエストを処理しているアプリケーションの実行を、処理遅延挿入部111を用いて一時停止する構成を有する。そのため、サーバが高負荷になった場合にでも、構成変更実行に必要なリソースを確保できる。
なお、特許文献1のシステムでは、サーバを追加している間に、リクエストを落とす(リクエストが破棄される)可能性があるという問題がある。その理由は、リクエストの使用するプロトコルによっては、リクエストのタイムアウトが発生するためである。上記構成変更には一定の時間が必要である。一方、リクエストに使用されている通信プロトコルには、「タイムアウト」と呼ばれる数値が規定されている。上述のように、タイムアウトは通信リクエストに対する応答がない場合の動作を決定するための待ち時間のことを指す。例えば、クライアントからサーバへ通信リクエストを送信した時のタイムアウトが10秒であるとする。この場合、クライアントはサーバからタイムアウトの10秒以上応答がない場合、何らかのアクションを実行することになる。通常、当該アクションには2種類存在し、1つは再送であり、他の1つはリクエストのエラー終了である。即ち、構成変更に時間がかかり、当該リクエストのタイムアウトを超過すると、リクエストの再送やリクエストのエラー終了が発生する。タイムアウトによりリクエストのエラー終了が発生すると、その後、リクエストが正常に受け付けられなくなる。
このように、特許文献1のリクエスト処理遅延制御システムでは、リクエストのタイムアウトにかかる時間を考慮して構成変更を実行しておらず、且つ、構成変更に想定以上の時間を要することにより、リクエストのタイムアウトによるエラー終了が増えることが想定される。一方、第1の実施形態に係る情報処理装置1のシステム制御部100は、リクエストの使用するプロトコルのタイムアウトが発生するまでに実行可能な構成変更機能を選択するというように構成されているため、リクエストのタイムアウトを発生させることなく、構成変更が実行できる。即ち、第1の実施形態に係る情報処理装置1は、リクエストを落とすことなく(エラーを生じさせることなく)、構成変更機能を実行できるリクエスト処理遅延制御システムを提供できる。
[第2の実施形態]
次に、第2の実施形態について図面を参照して詳細に説明する。
図14は、第2の実施形態に係るシステム制御部100aの内部構成の一例を示す図である。
図14を参照すると、第1の実施形態に係るシステム制御部100と第2の実施形態に係るシステム制御部100aの相違点は、プロトコルタイムアウト表123が存在しない(当該情報を参照しない)点、アプリケーション情報121の構造が異なる点、及び、プロトコル分析部108を有する点である。
第2の実施形態に係るアプリケーション情報121は、図15に示すように、使用プロトコル154のフィールドに代えて、タイムアウト値156に係るフィールドを備える構造を有する。このような構造を採用する理由は、使用プロトコル154の規定タイムアウト値(デフォルトタイムアウト値172)を使用する代わりに、現在のリクエストで使用されているタイムアウト値156を記録するためである。
プロトコルは、当該プロトコルを使用する環境に応じてタイムアウトを変化させる。通常、不安定なネットワークでは、通信遅延が大きくなることがあるので、タイムアウト値156を大きくとる場合がある。また、安定したネットワークでは、通信遅延がほとんど生じないので、タイムアウト値156を小さくすることで、通信のリアルタイム性を高めることができる。変更されたプロトコルのタイムアウト値156は、システム制御部100a内の設定情報(OS内部の設定情報)として記載されている場合と、送られてくるリクエスト(リクエストに係るパケット)に記載されている場合の2種類があるので、プロトコルに応じて、タイムアウト値156の確認場所が変化する。
プロトコル分析部108は、プロトコルのタイムアウト値156を取得するための手段である。上述の通り、プロトコルのタイムアウト値156は、システム制御部100a内の設定情報として記載されている場合と、送られてくるリクエストに係るパケットの所定領域に記載されている場合の2種類が存在する。例えば、TCPでは、システム制御部100a内の設定情報としてタイムアウト値156が記載されている。そこで、プロトコル分析部108は、送られてきたリクエストがプロトコルとして何を使用しているかを確認する。その結果、使用されているプロトコルがTCPの場合であれば、プロトコル分析部108は、システム制御部100a内の設定情報を確認し、当該プロトコルのタイムアウト値156を取得する。なお、システム制御部100a内の設定情報取得方法は、オペレーティングシステムによりそれぞれ異なり、各オペレーティングシステムに適した設定情報取得方法を用いる。
また、例えば、SIPを例に取ると、送られてくるリクエストにタイムアウト値156が記載されているので、当該リクエストで使用されているプロトコルがSIPである場合は、プロトコル分析部108は、送られてきたリクエストからタイムアウト値156を取得する。取得したタイムアウト値156は、アプリケーション情報121に格納される。
図16は、プロトコル分析部108の動作の一例を示すフローチャートである。
最初に、リクエスト送受信部101がリクエストを受け取ると、当該リクエストの複製(コピー)をプロトコル分析部108に提供する(ステップS401)。次に、プロトコル分析部108は、当該リクエストに使用されているプロトコルのタイムアウト値156を分析する(ステップS402)。具体的な分析は、例えば、当該リクエストに使用されているプロトコルを確認し、プロトコル毎に異なる場所から、現在のタイムアウト値156を取得することを示す。最後に、プロトコル分析部108は、ポート番号毎にタイムアウト値156をアプリケーション情報121に格納する(ステップS403)。
以上のように、第2の実施形態では、各プロトコルに標準的に定められたタイムアウト値を使用せず、プロトコル分析部108によって、現在使用されているプロトコルのタイムアウト値156を取得する。その結果、プロトコルのタイムアウト値変更に応じて、使用する構成変更機能が変更可能となる。
[第3の実施形態]
次に、第3の実施形態について図面を参照して詳細に説明する。
図17は、第3の実施形態に係るシステム制御部100bの内部構成の一例を示す図である。
図17を参照すると、第1の実施形態に係るシステム制御部100と第3の実施形態に係るシステム制御部100bの相違点は、フィードバック制御部109が追加された点と、リクエスト応答時間測定部102と処理遅延制御部104の動作が変更されている点である。
フィードバック制御部109は、リクエストの応答時間が閾値155を超過している間、構成変更機能の反復実行を制御するための手段である。第1の実施形態では、リクエストの使用するプロトコルで定義されているタイムアウト値172の範囲内で、最も実行時間の長い構成変更機能を選択している。第3の実施形態では、リクエストの応答時間が閾値155を超過した場合に、最も実行時間の短い構成変更機能から実行時間の短い順に構成変更機能を実行していき、その一方で応答時間が閾値155を超過しているかどうかを適宜確認する。構成変更機能の実行により、リクエストの応答時間が閾値155を超過することがなくなった場合に、第3の実施形態に係る実行(処理)を終了する。第3の実施形態では、構成変更機能の反復実行中は、当該アプリケーションへのCPU時間の割り当ての停止と再開を繰り返すことになる。つまり、当該アプリケーションへのCPU割り当てを停止し、構成変更機能を選択・実行し、当該アプリケーションへのCPU割り当てを再開するという動作が繰り返される。
次に、図18〜図20を参照しつつ、第3の実施形態の動作を説明する。
図18は、第3の実施形態に係るリクエスト応答時間測定部102の動作の一例を示すフローチャートである。図18において、図12にて説明した処理と同じ処理には同じ工程名称(ステップ)を付し、その説明を省略する。
図18を参照すると、第3の実施形態に係るリクエスト応答時間測定部102の処理には、閾値超過判定を停止するステップ(図12のステップS211に相当するステップ)が存在しない。なお、処理遅延制御部104の実行をすでに開始している場合は、ステップS210は無視されるものとする。
図19は、処理遅延制御部104の処理遅延挿入部111、フィードバック制御部109及び閾値超過判定部103の動作の一例を示すフローチャートである。処理遅延制御部104とフィードバック制御部109は、あるリクエスト処理の応答時間が閾値155を超えた場合に実行を開始する。
初めに、ステップS501において、処理遅延挿入部111により、当該リクエスト処理を担っているアプリケーションのプロセスID153と対応するタイムアウト値がアプリケーション情報121から取得される。
その後、処理遅延挿入部111により、フィードバック制御部109にタイムアウト値が渡され、フィードバック制御部109は現在時刻がタイムアウト時刻に達しているか否かを判定(確認)する(ステップS502)。具体的には、フィードバック制御部109は、上記タイムアウト値を取得した際の時刻にタイムアウト値を加算することでタイムアウト時刻を算出し、当該算出したタイムアウト時刻と現在時刻を比較することで、上記判定処理を行う。
タイムアウト時刻であれば(ステップS503、Yes分岐)、処理は終了する。タイムアウト時刻に達していなければ(ステップS503、No分岐)、処理遅延制御部104は、当該プロセス(プロセス群)のCPU割り当てを停止する(ステップS504)。
なお、ステップS502、S503に係るタイムアウト時刻確認処理は、図19に示すフローチャートの実行開始時に既にタイムアウトを生じているアプリケーション(例えば、タイムアウトが短い機械制御アプリケーション)の存在を前提としたものである。そのため、ある程度長いタイムアウト時間を許容するアプリケーションに限り制御対象とする場合には、上記タイムアウト時刻確認処理は不要である。
フィードバック制御部109は、処理遅延制御部104の構成変更機能選択部112に構成変更機能の選択及び実行を要求する(ステップS505)。
その後、フィードバック制御部109は、フィードバック制御部109に設定されている時間の間待機する(ステップS506)。なお、その際の待機時間は、予めユーザによって設定されているものとする。
その後、構成変更機能選択部112は、選択した構成変更機能の実行時間経過後、構成変更機能の実行が終了した旨をフィードバック制御部109に通知し、当該通知に従い、フィードバック制御部109は、処理遅延挿入部111に先ほどCPU割り当てをしたプロセスのCPU割り当て再開を要求する(ステップS507)。
次に、フィードバック制御部109は、リクエストの応答時間が閾値155を超過しているか否かを確認する(ステップS508)。ここで、第3の実施形態では、第1の実施形態とは異なり、リクエストの応答時間が閾値155を超過した際に、閾値超過判定部103を停止するというステップ(ステップS211相当のステップ)が存在しない。よって、リクエストが到着している限り、閾値超過判定が実行されており、閾値155を超過している場合は、閾値超過判定部103に閾値超過を示す情報が存在することになる。フィードバック制御部109は、ステップS508を実行する際に、閾値超過判定部103に存在する閾値超過情報を確認する。閾値155を超過していなければ(ステップS509、No分岐)、処理は終了する。閾値155を超過している場合は(ステップS509、Yes分岐)、ステップS501以降の処理が繰り返される。
図20は、構成変更機能選択部112と構成変更機能実行部106の動作の一例を示すフローチャートである。
最初に、構成変更機能選択部112は、閾値超過したリクエストのポート番号143から当該リクエストのタイムアウト値を取得する(ステップS601)。
次に、構成変更機能選択部112は、タイムアウト値内に実行可能、且つ、構成変更実行時間が最も小さい構成変更機能を選択する(ステップS602)。
その際、構成変更機能が存在すれば(ステップS603、Yes分岐)、構成変更機能実行部106により選択された構成変更機能が実行される(ステップS604)。
構成変更機能が存在しなければ(ステップS603、No分岐)、処理は終了する。
第3の実施形態では、第1の実施形態とは異なり、構成変更機能を選択する際、実行時間が最も小さいものから順に処理を実行し、リクエストの応答時間が閾値155を下回れば、その時点で動作を終了する。その結果、最少の構成変更実行時間で応答時間の改善が見込まれる。なお、構成変更機能選択部112は、図20に示す一連の動作を実行している間は、一度選択した構成変更機能は選択しないようにする。つまり、ステップS602に係る構成変更機能の選択において、タイムアウト値内に実行可能、且つ、構成変更実行時間が最も小さい構成変更機能であっても、一連の処理の中で一度選択された構成変更機能は選択されない。
以上のように、第3の実施形態では、構成変更機能を選択する際に、実行時間が最も小さいものから順に処理を実行し、構成変更実行の結果、応答時間が閾値155を下回った場合に、タイムアウト値を待たずにリクエスト処理を再開する構成を有する。当該構成により、最少時間で応答時間を改善できる構成変更機能が選択可能となる。
[適用例]
図21に示すように、システム制御部100としてLinux(リナックス;登録商標、以下同じ)を用いることができる。この場合、リクエスト送受信部101として、Linuxのカーネル関数であるnetif_rx関数101a、netif_tx関数101bを用いることができる。また、CPUスケジューラ105として、Linuxカーネルのschedule関数105aを用いることができる。さらに、構成変更機能実行部106として、bashシェルスクリプト106aを用いることができる。さらにまた、構成変更機能群107として、Linuxコマンド群107aは、構成変更に関するLinuxの各種コマンド(taskset、nice、virsh migrate等)から構成される。
なお、第1〜第3の実施形態にて説明したシステムの構成及び動作は例示であって、種々の変形が可能である。例えば、上記実施形態では、負荷の低減(応答時間の改善)に利用する処理をCPUの制御(構成変更機能;図8に例示する各種処理)を用いて説明したが、閾値を超えた応答時間を改善できるものであれば、CPUだけに限らず、メモリ制御、ディスク制御、ネットワーク制御なども構成変更機能に含むことができる。例えば、制御対象となるアプリケーションとは別のアプリケーションが大量のネットワーク通信を実行している影響により、制御対象となるアプリケーションの応答時間が閾値を超えた場合は、構成変更機能としてネットワークに関する制御を選択し、ネットワーク使用を制限することにより、制御対象となるアプリケーションの応答時間を改善することもできる。
情報処理装置1のシステム制御部100が行う処理は、情報処理装置1に搭載されたコンピュータに、そのハードウェアを用いて、上述した各処理を実行させるコンピュータプログラムにより実現できる。つまり、システム制御部100が行う機能を何らかのハードウェア、及び/又は、ソフトウェアで実行する手段があればよい。
さらに、コンピュータの記憶部に、上述したコンピュータプログラムをインストールすることにより、コンピュータにリクエスト処理遅延制御システムを構築することができる。さらにまた、上述したコンピュータプログラムをコンピュータに実行させることにより、コンピュータによりリクエスト処理遅延制御方法を実行することができる。また、そのプログラムは、ネットワークを介してダウンロードするか、或いは、プログラムを記憶した記憶媒体を用いて、更新することができる。
上記の説明により、本発明の産業上の利用可能性は明らかであるが、本発明は、電話サービスを仮想マシンで提供するNFV(Network Functions Virtualization)の分野において、電話サービスの品質安定化に好適に適用可能である。また、WEBサービスに関する応答性向上といった用途にも好適である。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
上述の第1の視点に係る情報処理装置のとおりである。
[付記2]
前記CPUリソースの割り当てを停止するプロセスに対応するプロトコルのタイムアウト値に基づき、複数の前記構成変更機能のなかから、前記実行部が実行する前記構成変更機能を選択する、選択部をさらに備える付記1の情報処理装置。
[付記3]
前記遅延挿入部は、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPUリソースの割り当てを、前記タイムアウト値に相当する期間、停止するように前記CPUスケジューラに指示する、付記2の情報処理装置。
[付記4]
前記選択部は、前記複数の構成変更機能のなかから前記タイムアウト値以内に実行が終了する前記構成変更機能を選択する、付記2又は3の情報処理装置。
[付記5]
前記選択部は、前記複数の構成変更機能のうち、前記タイムアウト値以内に実行が終了し、且つ、実行時間が最大の前記構成変更機能を選択する、付記2乃至4のいずれか一に記載の情報処理装置。
[付記6]
前記応答時間が前記閾値を超過している場合に、
前記遅延挿入部に対し、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPUリソースの割り当ての停止を指示することと、
前記選択部に対し、前記複数の構成変更機能のなかから実行時間が短い順に前記構成変更機能の選択及び実行を指示することと、
前記応答時間が前記閾値を超過していたリクエストを処理していたプロセスの応答時間が、前記閾値を超過しているか否かを判定することと、
を繰り返すフィードバック制御部をさらに備える、付記2乃至5のいずれか一に記載の情報処理装置。
[付記7]
前記リクエストを処理するプロトコルのタイムアウト値を、オペレーティングシステムの所定領域を参照する、又は、前記リクエストに係るパケットの所定領域を参照することで取得するプロトコル分析部をさらに備える、付記1乃至6のいずれか一に記載の情報処理装置。
[付記8]
前記測定部は、
前記クライアントから受信したリクエストから、前記リクエストを識別するリクエストIDを生成し、前記リクエストIDと前記クライアントから受信したリクエストの到着時刻を関連付け、処理中リストに登録する、リクエスト記録部と、
前記処理中リストに登録された前記到着時刻と、前記処理結果を前記クライアントに送信する時刻と、に基づいて、前記応答時間を計算する、応答時間計算部と、
を含む、付記1乃至7のいずれか一に記載の情報処理装置。
[付記9]
上述の第2の視点に係るリクエスト処理遅延制御方法のとおりである。
[付記10]
上述の第3の視点に係るプログラムのとおりである。
[付記11]
リクエストの応答時間を測定し、
設定した閾値をリクエストの応答時間が超過しているか確認し、
超過していれば、リクエスト処理に利用しているプロトコルのデフォルトタイムアウト時間を取得し、
当該タイムアウト時間内に実行できる最も実行時間の長い構成変更機能を選択・実行すると同時に、アプリケーションの処理を構成変更機能実行中は停止する、
ことを特徴とするリクエスト処理遅延制御方法。
[付記12]
リクエストに利用されているプロトコルを確認し、
プロトコルに応じて、現在設定されているタイムアウト値を取得し、
アプリケーション情報として記録しておき、
リクエストの応答時間を測定し、
設定した閾値をリクエストの応答時間が超過しているか確認し、
超過していれば、アプリケーション情報に記載されたタイムアウト時間を取得し、
当該タイムアウト時間内に実行できる最も実行時間の長い構成変更機能を選択・実行すると同時に、アプリケーションの処理を構成変更機能実行中は停止する、
ことを特徴とするリクエスト処理遅延制御方法。
[付記13]
リクエストの応答時間を測定し、
設定した閾値をリクエストの応答時間が超過しているか確認し、
超過していれば、リクエスト処理に利用しているプロトコルのデフォルトタイムアウト時間を取得し、
実行時間の小さいものから順に構成変更機能を選択・実行し、
リクエストの応答時間が閾値を下回るまで、構成変更機能の選択・実行をリクエストのタイムアウト時間に到達するまで繰り返すと同時に、アプリケーションの処理を構成変更機能実行中は停止する、
ことを特徴とするリクエスト処理遅延制御方法。
なお、付記9の形態及び付記10の形態は、付記1の形態と同様に、付記2の形態〜付記8の形態に展開することが可能である。
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
この出願は2015年8月6日に出願された日本出願特願2015−155982を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1、200 情報処理装置
10 CPU
20 記憶装置
30 ネットワークインターフェイス
40 入出力インターフェイス
100、100a、100b システム制御部
101 リクエスト送受信部
101a netif_rx
102 リクエスト応答時間測定部
102b netif_tx
103 閾値超過判定部
104 処理遅延制御部
105 CPUスケジューラ
105a schedule関数
106 構成変更機能実行部
106a bashシェルスクリプト
107 構成変更機能群
107a Linuxコマンド群
107−1〜107−N 構成変更機能
108 プロトコル分析部
109 フィードバック制御部
111 処理遅延挿入部
112 構成変更機能選択部
121 アプリケーション情報
122 構成変更機能リスト
123 プロトコルタイムアウト表
131 リクエスト記録部
132 応答時間計算部
133 処理中リスト
141 ポート番号表
142、142−1、142−2 リクエスト表
143、151 ポート番号
144 リクエスト表番号
145、145−1、145−2 リクエストID
146、146−1、146−2 到着時刻
152 アプリケーション名
153 プロセスID
154 使用プロトコル
155 閾値
156、172 タイムアウト値
161 構成変更機能番号
162 構成変更機能名
163 構成変更実行時間
171 プロトコル名
201 送受信部
202 測定部
203 判定部
204 遅延挿入部
205 実行部

Claims (10)

  1. クライアントからのリクエストを受信し、前記リクエストに対する処理結果を前記クライアントに送信する送受信手段と、
    前記リクエストが受信されてから前記処理結果が送信されるまでの応答時間を測定する測定手段と、
    前記応答時間が閾値を超過しているか否かを判定する判定手段と、
    前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPU(Central Processing Unit)リソースの割り当てを所定期間停止するように、CPUスケジューラに指示する、遅延挿入手段と、
    前記所定期間に、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスの応答時間を短くするための予め定めた処理である構成変更機能を実行する、実行手段と、
    を備える、情報処理装置。
  2. 前記CPUリソースの割り当てを停止するプロセスに対応するプロトコルのタイムアウト値に基づき、複数の前記構成変更機能のなかから、前記実行手段が実行する前記構成変更機能を選択する、選択手段をさらに備える請求項1の情報処理装置。
  3. 前記遅延挿入手段は、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPUリソースの割り当てを、前記タイムアウト値に相当する期間、停止するように前記CPUスケジューラに指示する、請求項2の情報処理装置。
  4. 前記選択手段は、前記複数の構成変更機能のなかから前記タイムアウト値以内に実行が終了する前記構成変更機能を選択する、請求項2又は3の情報処理装置。
  5. 前記選択手段は、前記複数の構成変更機能のうち、前記タイムアウト値以内に実行が終了し、且つ、実行時間が最大の前記構成変更機能を選択する、請求項2乃至4のいずれか一項に記載の情報処理装置。
  6. 前記応答時間が前記閾値を超過している場合に、
    前記遅延挿入手段に対し、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPUリソースの割り当ての停止を指示することと、
    前記選択手段に対し、前記複数の構成変更機能のなかから実行時間が短い順に前記構成変更機能の選択及び実行を指示することと、
    前記応答時間が前記閾値を超過していたリクエストを処理していたプロセスの応答時間が、前記閾値を超過しているか否かを判定することと、
    を繰り返すフィードバック制御手段をさらに備える、請求項2乃至5のいずれか一項に記載の情報処理装置。
  7. 前記リクエストを処理するプロトコルのタイムアウト値を、オペレーティングシステムの所定領域を参照する、又は、前記リクエストに係るパケットの所定領域を参照することで取得するプロトコル分析手段をさらに備える、請求項1乃至6のいずれか一項に記載の情報処理装置。
  8. 前記測定手段は、
    前記クライアントから受信したリクエストから、前記リクエストを識別するリクエストIDを生成し、前記リクエストIDと前記クライアントから受信したリクエストの到着時刻を関連付け、処理中リストに登録する、リクエスト記録手段と、
    前記処理中リストに登録された前記到着時刻と、前記処理結果を前記クライアントに送信する時刻と、に基づいて、前記応答時間を計算する、応答時間計算手段と、
    を含む、請求項1乃至7のいずれか一項に記載の情報処理装置。
  9. クライアントからのリクエストを受信し、前記リクエストに対する処理結果を前記クライアントに送信し、
    前記リクエストが受信されてから前記処理結果が送信されるまでの応答時間を測定し、
    前記応答時間が閾値を超過しているか否かを判定し、
    前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPU(Central Processing Unit)リソースの割り当てを所定期間停止するように、CPUスケジューラに指示し、
    前記所定期間に、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスの応答時間を短くするための予め定めた処理である構成変更機能を実行する、
    ことを含む、リクエスト処理遅延制御方法。
  10. クライアントからのリクエストを受信し、前記リクエストに対する処理結果を前記クライアントに送信する処理と、
    前記リクエストが受信されてから前記処理結果が送信されるまでの応答時間を測定する処理と、
    前記応答時間が閾値を超過しているか否かを判定する処理と、
    前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスに対するCPU(Central Processing Unit)リソースの割り当てを所定期間停止するように、CPUスケジューラに指示する処理と、
    前記所定期間に、前記応答時間が前記閾値を超過しているリクエストを処理しているプロセスの応答時間を短くするための予め定めた処理である構成変更機能を実行する処理と、
    を、情報処理装置に搭載されたコンピュータに実行させるプログラムを格納する記憶媒体。
JP2017532378A 2015-08-06 2016-08-02 情報処理装置、リクエスト処理遅延制御方法及び記憶媒体 Pending JPWO2017022233A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015155982 2015-08-06
JP2015155982 2015-08-06
PCT/JP2016/003540 WO2017022233A1 (ja) 2015-08-06 2016-08-02 情報処理装置、リクエスト処理遅延制御方法及び記憶媒体

Publications (1)

Publication Number Publication Date
JPWO2017022233A1 true JPWO2017022233A1 (ja) 2018-05-24

Family

ID=57942715

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017532378A Pending JPWO2017022233A1 (ja) 2015-08-06 2016-08-02 情報処理装置、リクエスト処理遅延制御方法及び記憶媒体

Country Status (2)

Country Link
JP (1) JPWO2017022233A1 (ja)
WO (1) WO2017022233A1 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011197804A (ja) * 2010-03-17 2011-10-06 Fujitsu Ltd 負荷解析プログラム、負荷解析方法、および負荷解析装置
JP5970819B2 (ja) * 2012-01-10 2016-08-17 株式会社リコー ネットワーク制御装置
JP5958301B2 (ja) * 2012-11-21 2016-07-27 富士通株式会社 情報処理方法、プログラム、情報処理装置、及び情報処理システム。
WO2015068299A1 (ja) * 2013-11-11 2015-05-14 株式会社日立製作所 管理計算機および計算機システムの管理方法
WO2015092873A1 (ja) * 2013-12-18 2015-06-25 株式会社日立製作所 情報処理システム及び情報処理方法

Also Published As

Publication number Publication date
WO2017022233A1 (ja) 2017-02-09

Similar Documents

Publication Publication Date Title
CN109274707B (zh) 一种负载调度方法及装置
US10025614B2 (en) Setting retransmission time of an application client during virtual machine migration
US8386575B2 (en) Method of realizing uniqueness assurance and method of determining message destination
US20140244844A1 (en) Control device and resource control method
FI20176152A1 (fi) Menetelmä, järjestelmä ja tietokoneohjelmatuote OPC UA palvelinkapasiteetin hallintaan
US10944683B1 (en) Hybrid queue system for request throttling
US10298693B2 (en) Virtual-machine dynamic allocation system and server
US20180176289A1 (en) Information processing device, information processing system, computer-readable recording medium, and information processing method
CN108933829A (zh) 一种负载均衡方法及装置
US20170264500A1 (en) Number-of-scales estimation apparatus, number-of-scales management system, number-of-scales estimation method, number-of-scales management method, and storage medium
US20180285169A1 (en) Information processing system and computer-implemented method
JP7277168B2 (ja) リソースサービスシステム、及び、制御方法
JP2016024612A (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
CN112104679B (zh) 处理超文本传输协议请求的方法、装置、设备和介质
EP1607880A1 (en) Decentralized processing control device, decentralized processing control method, decentralized processing control program
JP6748359B2 (ja) 接続数制御プログラム、振り分け装置および接続数制御方法
KR20170100576A (ko) 클라이언트-서버 통신
GB2507816A (en) Calculating timeout for remote task execution from network delays and processing duration on local application/hardware replica
JP6140052B2 (ja) 情報処理システム
WO2017022233A1 (ja) 情報処理装置、リクエスト処理遅延制御方法及び記憶媒体
US20160261526A1 (en) Communication apparatus and processor allocation method for the same
JP2014041404A (ja) ターミナルサービス監視装置
JP2017033234A (ja) リクエスト受付システム、リクエスト受付方法、及び、プログラム
CN115695395A (zh) 消息队列遥测传输网络接入方法、控制器及网关
US20190386928A1 (en) System and method for utilizing idle network resources

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180201