JP5796693B2 - 安定化システム、安定化方法、コンピュータ装置及びプログラム - Google Patents

安定化システム、安定化方法、コンピュータ装置及びプログラム Download PDF

Info

Publication number
JP5796693B2
JP5796693B2 JP2015505353A JP2015505353A JP5796693B2 JP 5796693 B2 JP5796693 B2 JP 5796693B2 JP 2015505353 A JP2015505353 A JP 2015505353A JP 2015505353 A JP2015505353 A JP 2015505353A JP 5796693 B2 JP5796693 B2 JP 5796693B2
Authority
JP
Japan
Prior art keywords
communication request
communication
virtual machine
time
transmission
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.)
Active
Application number
JP2015505353A
Other languages
English (en)
Other versions
JPWO2014141854A1 (ja
Inventor
亮仁 小比賀
亮仁 小比賀
智仁 井口
智仁 井口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2015505353A priority Critical patent/JP5796693B2/ja
Application granted granted Critical
Publication of JP5796693B2 publication Critical patent/JP5796693B2/ja
Publication of JPWO2014141854A1 publication Critical patent/JPWO2014141854A1/ja
Active 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Description

本発明は、リクエスト処理時間を安定化するためのシステム、リクエスト処理時間を安定化するための方法、仮想マシン環境及びプログラムに関する。
特許文献1は、仮想マシンにおける割り込み処理合成システムの一例を開示している。図12に示すように、割り込み処理合成システムは、仮想マシン600、仮想マシン環境700、仮想ディスク800、ハードウェア900、およびディスク940を有する。仮想マシン600は、アプリケーションソフト610、ゲストOS(Operating System)620、および仮想ハードウェア630を有する。仮想マシン環境700は、VMM(Virtual Machine Monitor)710、およびVMkernel720を有する。ハードウェア900は、CPU910、Storage Adapter920、およびメモリ930を有する。仮想ディスク800は仮想マシン環境700で作成されるソフトウェアエミュレーションされたディスク装置を指す。
コンピュータが仮想マシン環境を持たない場合、つまり、アプリケーションと、OS、ハードウェア900との組み合わせにおいて、アプリケーションがハードウェア900に対して入出力を行いたい場合、アプリケーションがOSに入出力を要求する。OSはアプリケーションから発行された入出力要求を処理し、ディスク、ネットワークその他の周辺装置に対して入出力を行う。入出力処理のために、一般的にDMA(Direct Memory Access)と呼ばれる方法を使用する。DMAは、あらかじめ決められたメモリ領域と周辺装置との間でCPU910を使わず専用ハードウェア(以下、DMAハードウェアと呼ぶ)を使ってデータを送受信することを指す。OSは周辺装置への入出力命令をDMAハードウェアに通知する。周辺装置への入出力処理が完了するとDMAハードウェアは、CPU910に割り込み信号を発行する。OSはCPU910に送られてきた割り込み信号を受け取ると、その周辺装置への入出力が完了したことを認識して結果をアプリケーションに通知する。
コンピュータが仮想マシン環境700を持つ場合、上記仮想マシン環境を持たない場合の入出力処理が、まず仮想マシン600内で発生し、そして同じ処理が仮想マシン環境700でも行われる。具体的には、仮想マシン環境700が作り出す仮想ハードウェア630へ仮想マシン上のゲストOS620から入出力要求が発行される。そして、この入出力要求は仮想ハードウェア環境から物理マシン上のOS(VMkernel720)に送られて実際の物理装置に対して入出力処理が行われる。
複数の仮想マシン600が、一つの仮想マシン環境700で実行される。よって、仮想マシン環境700で実行される入出力処理は、仮想マシン600の数だけ増える。つまり、1秒間に一台の仮想マシン600から発行される入出力処理要求の数が10個だと仮定すると、10台の仮想マシン700を実行する仮想マシン環境600は、1秒間に100個の入出力要求を処理しなければならない。
入出力要求を削減する方法としては、仮想マシン環境700が、受け取った入出力要求をまとめて処理する方法が有効である。すなわち、仮想マシン環境700は、仮想マシン600から発行される入出力要求をそのつど実行するのではなく、決まった数の入出力要求が仮想マシン600から発行された時点で処理を実行する。具体例として、1秒間に一台の仮想マシン600から発行される入出力処理要求の数が10個の場合、仮想マシン環境700が、10個の入出力要求を一度に実行する。このような処理を行うことにより、入出力要求を一つずつ実行する場合と比較して、仮想マシン環境700上のOS(VMkernel720)が周辺装置に対して命令する回数や周辺装置から仮想マシン環境700上のOS(VMkernel720)に割り込み信号が上がってくる回数を1/10に減らすことができる。入出力要求をまとめて処理する上記手法のうち、周辺装置から上げられる割り込み信号を一定数まとめて仮想マシン上のOSへ通知することを割り込み処理の合成(Interrupt Coalescing)と呼ぶ。
特許文献1に開示の構成を有する仮想マシンにおける割り込み処理合成システムはつぎのように動作する。図13は、割り込み処理合成システムのフローチャートを示す。まず入出力が完了する(S101)。次に割り込み処理合成の再計算時刻を経過しているかどうか確認する(S102)。再計算時刻を経過していれば(S102においてYES)、割り込み処理の合成数を再計算する(S103)。単位時間当たりの入出力処理数(IOPS)の目標値が設定されている。IOPSが目標値を下回っていれば、割り込み処理の合成数を減らす。一方、IOPSが目標値を上回っていれば割り込み処理の合成数を増やす。次に、実行中のI/O要求数が閾値以内かどうかを確認する(S104)。I/O要求数が閾値以内であれば(S104においてYES)、割り込み要求の合成数に応じて、要求を配信するか決定する(S105)。I/O要求数が閾値以内でなければ(S104においてNO)直ちに割り込み要求を配信する(S107)。次に、割り込みの合成数以上の割り込み信号がある場合(S106においてYES)、割り込み要求を配信する(S107)。一方、割り込みの合成数以上の割り込み信号が無いなら(S106においてNO)そのまま処理を終了する。最後に配信時刻を記憶する(S108)。配信時刻は、次の合成数を決定する際に使用される。
米国特許出願公開第2010/0274940号
このようなシステムの問題点は、優先すべき入出力処理が遅延してしまうということである。その理由は、特許文献1が割り込み処理合成数の判断基準としてCIF(Commands in Flight)、IOPS(IO Per Second)を使用しているため、割り込み処理を合成する際に、優先すべき入出力処理を除外することができないためである。CIFは、現在実行中の入出力処理数を表す。IOPSは、一秒間当たりの入出力処理回数を指す。CIFおよびIOPSはいずれも入出力の総数にたいしての指標である。つまり、個々の入出力処理状況を判断基準にして割り込み処理の合成数を変更することができない。例えば通信処理Aを実行する仮想マシンAと通信処理Bを実行する仮想マシンBが同じ仮想マシン環境上で実行されている場合について説明する。通信処理Aのレイテンシ(処理を要求してから処理結果が返ってくるまでの時間)を短くするため割り込み処理合成数を0個にしたい一方で、通信処理Bが大量の入出力処理を仮想マシン環境に要求している場合を想定する。この場合、特許文献1によると、通信処理Bによって仮想マシン環境上のIOPSは上昇し、割り込み処理の合成数は上昇する。この結果から、通信処理Aの要求(割り込み処理合成数0)を満たすことはできずレイテンシを下げることができなくなる。
本発明の目的の一例は、上述した課題を解決する安定化システム、安定化方法、仮想マシン環境及びプログラムを提供することである。
本発明の第1の実施態様にかかる安定化システムは、仮想マシンを仮想的に生成する仮想マシン環境を備える。前記仮想マシン環境は、ネットワークを介して第1の通信リクエストを受信し、前記第1の通信リクエストを前記仮想マシンに送信し、前記仮想マシンが前記第1の通信リクエストを処理することによって生成された第2の通信リクエストを前記ネットワークを介して送信する送受信部と、前記送受信部が前記第1の通信リクエストを受信した受信時刻と前記送受信部が前記第2の通信リクエスト送信した送信時刻とに基づいて通信処理時間を計算する計算部と、前記通信処理時間に基づいて通信リクエストをまとめる数を決定する決定部と、を有し、前記送受信部は、前記決定された数の通信リクエストが到着してから通信リクエストの到着通知を前記仮想マシンに送信する。
本発明の第2の実施態様にかかる安定化方法は、仮想マシンを仮想的に生成するコンピュータ装置が、ネットワークを介して第1の通信リクエストを受信し、前記第1の通信リクエストを前記仮想マシンに送信し、前記仮想マシンが前記第1の通信リクエストを処理することによって生成された第2の通信リクエストを前記ネットワークを介して送信し、前記仮想マシン環境が前記第1の通信リクエストを受信した受信時刻と前記仮想マシン環境が前記第2の通信リクエスト送信した送信時刻とに基づいて通信処理時間を計算し、前記通信処理時間に基づいて通信リクエストをまとめる数を決定し前記決定された数の通信リクエストが到着してから通信リクエストの到着通知を前記仮想マシンに送信する。
本発明の第3の実施態様にかかるコンピュータ装置は、仮想マシンを仮想的に生成する。このコンピュータ装置は、ネットワークを介して第1の通信リクエストを受信し、前記第1の通信リクエストを前記仮想マシンに送信し、前記仮想マシンが前記第1の通信リクエストを処理することによって生成された第2の通信リクエストを前記ネットワークを介して送信する送受信部と、前記送受信部が前記第1の通信リクエストを受信した受信時刻と前記送受信部が前記第2の通信リクエスト送信した送信時刻とに基づいて通信処理時間を計算する計算部と、前記通信処理時間に基づいて通信リクエストをまとめる数を決定する決定部と、を有し、前記送受信部は、前記決定された数の通信リクエストが到着してから通信リクエストの到着通知を前記仮想マシンに送信する。
本発明の第4の実施態様にかかるプログラムは、仮想マシンを仮想的に生成するコンピュータに、ネットワークを介して第1の通信リクエストを受信し、前記第1の通信リクエストを前記仮想マシンに送信し、前記仮想マシンが前記第1の通信リクエストを処理することによって生成された第2の通信リクエストを前記ネットワークを介して送信し、前記仮想マシン環境が前記第1の通信リクエストを受信した受信時刻と前記仮想マシン環境が前記第2の通信リクエスト送信した送信時刻とに基づいて通信処理時間を計算し、前記通信処理時間に基づいて通信リクエストをまとめる数を決定し前記決定された数の通信リクエストが到着してから通信リクエストの到着通知を前記仮想マシンに送信することを実行させる。
上記の記載は、本発明の実施態様に必要な特徴の全てを列挙したものではない。これらの特徴群のサブコンビネーションもまた、本発明の実施態様となり得る。
本発明の実施形態によれば、すべての入出力処理のうち、特定の通信リクエスト処理の遅延をなくすことができる。
本発明の第1の実施形態にかかる安定化システムの構成を示すブロック図である。 本発明の第1の実施形態における通信処理時間格納部の内容を示すデータ構造を示す。 本発明の第1の実施形態における通信リクエスト合成数格納部の内容を示すデータ構造を示す。 図1に示す安定化システムの動作全体を示す流れ図である。 第1の実施形態におけるTCP/IPによる通信リクエスト識別子作成例を示す図である。 第1の実施形態における、通信リクエスト受信時の通信処理時間監視部と通信処理時間計算部の動作を表すフローチャートである。 第1の実施形態における、通信リクエスト送信時の通信処理時間監視部と通信処理時間計算部の動作を表すフローチャートである。 第1の実施形態における、通信リクエスト合成数決定部の動作を表すフローチャートである。 本発明の第2の実施形態にかかる安定化システムの構成を示すブロック図である。 第1の実施形態の具体例を示すブロック図である。 図10に示す具体例におけるSIP/IPによる通信リクエスト識別子作成例である。 関連技術を実施するための形態の構成を示すブロック図である。 関連技術を実施するための動作を表すフローチャートである。
以下、本発明の実施形態を説明する。以下の実施形態は請求の範囲にかかる発明を限定しない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1に示すように、本発明の第1の実施の形態にかかる安定化システムは、複数の仮想マシン100および仮想マシン環境200を有する。
仮想マシン100は、通信サービス(アプリケーション)110、ゲストOS120、および通信リクエスト受信部130を有する。送受信部130は、単に送受信部130と称する場合がある。
仮想マシン環境200は、通信リクエスト送受信部210、ネットワークカードドライバ220、通信処理時間監視部250、通信リクエスト合成部230、通信リクエスト合成数格納部280、通信リクエスト合成数決定部240、通信処理時間計算部260、および通信処理時間格納部270を有する。通信リクエスト送受信部210は、単に送受信部210と称する場合がある。ネットワークカードドライバ220は、単にドライバ220と称する場合がある。通信処理時間監視部250は、単に監視部250と称する場合がある。通信リクエスト合成部230は、単に合成部230と称する場合がある。通信リクエスト合成数決定部240は、単に決定部240と称する場合がある。通信処理時間計算部260は、単に計算部260と称する場合がある。通信処理時間格納部270は、単に時間格納部270と称する場合がある。通信リクエスト合成数格納部280は、単に合成数格納部280と称する場合がある。
仮想マシン100は、仮想マシン環境200上で物理マシンをエミュレーションするソフトウェアである。
通信サービス110は、通信リクエストを処理するアプリケーションである。通信サービス110は、ネットワークNから送られてくる通信リクエストを処理し、送信元に対して処理結果を返す。通信サービス110は、ネットワークNから送られてくる通信リクエストを処理するようなアプリケーションであれば特に限定されない。通信サービス110の具体例は、TELNETやFTP(File Transfer Protocol)のようなインターネットサーバや、SIP(Session Initiation Protocol)などの通話サービスを含んでもよい。
ゲストOS120は、仮想マシン100で実行されるOSである。
送受信部130は、ネットワークNから受信した通信リクエストを通信サービス110に転送する。送受信部130は、通信サービス110で処理された通信リクエストをネットワークN上の通信リクエスト送信元に返送する。
仮想マシン環境200の送受信部210は、ネットワークNから受信した通信リクエストを仮想マシン100の各通信サービス110に振り分ける機能を持つ。
仮想マシン環境200は、複数の仮想マシン100を実行するためのソフトウェアである。
ドライバ220は、物理装置としてのネットワークカードにアクセスするためのソフトウェアである。ドライバ220は、ネットワークNを介してネットワークカードに到着した通信リクエストを送受信部210に転送する。ドライバ220は、ネットワークカードを使って、通信サービス110で処理された通信リクエストをネットワークN上の通信リクエストの送信元に返送する。
監視部250は、通信リクエストの処理時間を監視する。ここでの処理時間とは、通信リクエストが仮想マシン環境200の外部から到着してから、仮想マシン環境200上で実行されている仮想マシン100上で処理され、処理された通信リクエストをリクエスト送信元に対して仮想マシン環境200が送信するまでの時間を指す。受信した通信リクエストとこれから送信する通信リクエストが対であることあることを示すために通信リクエスト識別子272を用いる。これから送信する通信リクエストとは、受信した通信リクエストが通信サービス110で処理された処理結果である。通信リクエスト識別子272は時間格納部270に格納されている。識別子272の作成方法は後述する。
図2に示すように、時間格納部270は、通信処理時間に関連するデータを格納する領域を有する。時間格納部270は、監視対象アプリケーション271、通信リクエスト識別子272、通信リクエスト受信時刻273、通信リクエスト送信時刻274、および通信処理時間275を格納する。監視対象アプリケーション271とは、本発明の実施形態において監視対象となっている通信サービス110を指す。通信リクエスト識別子272は、受信した通信リクエストとこれから送信する通信リクエストが対であることを示す値である。
図5を参照して、TCP/IPを使った通信リクエスト識別子272の作成方法の具体例を説明する。本例における通信リクエスト識別子272は、IPヘッダの送信元IPアドレスと送信先IPアドレス、TCPヘッダの発信元ポート番号、宛先ポート番号を用いて算出される。IPアドレスは4つの数字に分解される。IPアドレスの4つの数字と、発信元ポート番号と、あて先ポート番号との合計値が通信リクエスト識別子272に設定される。
以下に具体的な演算例を示す。
送信元IPアドレス:192.168.0.1.
送信先IPアドレス:192.168.0.2.
発信元ポート番号:12345
宛先ポート番号:23
通信リクエスト識別子=送信元IPアドレス+送信先IPアドレス
+発信元ポート番号+宛先ポート番号
=192+168+0+1+192+168+0+2+12345+23
=13091
通信リクエスト識別子272は、通信リクエストを一意に識別できればどのような指標を用いられても良い。通信リクエスト受信時刻273は、通信リクエストが仮想マシン環境200(送受信部210)に到着した時刻を指す。通信リクエスト送信時刻274は、通信リクエストが仮想マシン環境200(送受信部210)から通信リクエスト送信元への送信された時刻を指す。通信処理時間275は、通信リクエストの受信時刻273と送信時刻274との差分として計算される時間を指す。時間格納部270は、共通の識別子272を有する受信時刻273と送信時刻274とを対にして格納する。
計算部260は、通信リクエスト受信時刻273と通信リクエスト送信時刻274とから通信リクエストの処理時間を計算する。すなわち、計算部260は、各通信リクエストに関して、通信リクエスト受信時刻273と通信リクエスト送信時刻274との差分から通信処理時間275を計算する。
図3に示すように、合成数格納部280は、通信リクエストの合成に関連するデータを格納する領域を有する。合成数格納部280は、合成数変更閾値(閾値)281、通信処理時間劣化率(劣化率)282、通信処理時間目標値(目標値)283、および通信リクエスト合成数(合成数)284を格納する。閾値281は、通信リクエストの合成数変更を決定するために用いられる閾値である。劣化率282が閾値281を上回った場合、合成数格納部280の合成数284が変更される。劣化率282は、監視対象アプリケーション271が処理する通信リクエスト全体に対する、通信処理時間275が目標値283を超える通信リクエストの割合を指す。図2に示す例においては、監視対象アプリケーション271が「Application#1」の場合、通信処理時間275は「1.123」と「1.452」である。一方で、図2に示す例においては、目標値283は、「0.100」である。よって、この例の場合、通信処理時間275が目標値283を上回っている。すなわち、2つの通信リクエストが、目標値283を上回っている。Application#1の監視された通信リクエスト数が全体で17である仮定する。この場合、劣化率282は、約12%(≒2/17*100)となる。
決定部240は、通信リクエストの合成数284を決定する。
具体的には、決定部240は、合成数284を、劣化率282に基づいて決定する。決定部240は、劣化率282が閾値281を上回っていると判断した場合、合成数284を減らす。例えば、決定部240は、劣化率282が閾値281を上回っている毎に、合成数284を1つだけ減らしてもよいがこれに限られない。合成数284を減らす数は自由に決めてよい。
合成部230は、通信リクエストを合成する。通信リクエストの合成とは、通信リクエスト到着時であれば、通信リクエストの到着通知を一定数のリクエストが到着してから通知することを指している。図3に示す合成数格納部280に格納されている合成数284を基づいて通信リクエストの合成数を決定している。図3の例では、合成数284が30個である。このため、送受信部210は、30個のリクエストが到着してから仮想マシン100に対して通信リクエストが到着したことを通知する。
上記のように、本実施形態においては、通信リクエスト処理の処理時間の監視と、処理時間の監視結果に基づく通信リクエスト通知の合成数を変更が行われる。その結果、通信リクエスト処理時間を安定することができる。
次に、図4、図6、図7、図8のフローチャートを参照して本実施の形態の動作について詳細に説明する。
図4は本実施の形態の全体の動作を表す。監視部250は、通信リクエスト受信時刻273と通信リクエスト送信時刻274とを監視する。計算部260は、通信処理時間275を計測する(S1)。決定部240は、通信処理時間275が目標値283を上回る通信リクエストを抽出し、劣化率282を計算する(S2)。決定部240は、劣化率282が閾値281を上回るか判断する(S3)。決定部240は、劣化率282が閾値281を上回れば(S4においてYES)、合成数284を変更する(S5)。決定部240は、劣化率282が閾値281を上回らなければ(S4においてNO)、合成数284を変更せずに処理を終了する。
図6は、通信リクエストが到着した際における監視部250および計算部260の動作を表す。監視部250は、受信したパケット(通信リクエスト)からTCP/IPヘッダを取り出す(S6)。計算部260は、TCP/IPヘッダに基づいて通信リクエスト識別子272を算出する(S7)。識別子272の計算方法は上述のとおりである。監視部250および計算部260は、通信リクエスト識別子272とパケット受信時間(通信リクエスト受信時刻273)を時間格納部270へ格納する(S8)。
図7は、通信リクエストを返信する際における監視部250および計算部260の動作を表す。監視部250は、送信するパケットからTCP/IPヘッダを取り出す(S9)。計算部260は、TCP/IPヘッダに基づいて通信リクエスト識別子272を計算する(S10)。計算部260は、算出された識別子272と一致する識別子270が時間格納部270内に格納されているか確認する(S11)。一致する識別子270があれば(S11−1においてYES)、計算部260は、が時間格納部270におけるその識別子272のエントリに送信時刻(通信リクエスト送信時刻274)を格納する(S12)。さらに、計算部260は、通信処理時間275を計算し、通信処理時間275をそのエントリに格納する(S13)。一致する識別子が無ければ(S11−1においてNO)、計算部260は処理を終了する。
図8は、決定部240の動作を表す。決定部240は、監視対象アプリケーション271に該当する通信処理時間275を取り出す(S14)。決定部240は、取り出した通信処理時間275から、目標値283を上回る通信処理時間275を抽出する。決定部240は、取り出した通信処理時間275の数と抽出した通信処理時間275の数とに基づいて劣化率282を計算する(S15)。決定部240は、劣化率282が閾値281を上回るかどうか判断する(S16)。劣化率282が閾値281を上回る場合(S17においてYES)、決定部240は合成数284を変更する(S18)。劣化率282が閾値281を上回らない場合(S17においてNO)、決定部240は合成数284を変更しない(S18の処理を実行しない)。最後に、決定部240は時間格納部270から監視対象アプリケーション271のエントリを削除する(S19)。
次に、本実施の形態の効果について説明する。本実施の形態においては、監視対象となる通信アプリケーションにおける通信リクエスト処理時間を監視し、処理時間の劣化に応じて合成数284を変更する。このため、特定のアプリケーションにおける通信リクエスト処理時間を安定化することができる。
次に、本発明の第2の実施形態について図面を参照して説明する。図9に示すように、第2の実施形態に係る安定化システムは、第1の実施形態の構成に加えて、仮想マシン100内に通信リクエスト合成部140が設けられている。通信リクエスト合成部140は、単に合成部140と称する場合がある。合成部140の機能は、合成部230と同様である。
次に、第2の実施形態の効果について説明する。第2の実施形態では、合成部140が仮想マシン100内にも配置されている。このため、仮想マシン100が仮想マシン環境200に対して通信リクエストを転送する際に、その転送回数を減らすことができる。転送回数が削減されるため、転送処理のオーバーヘッドを削減することができる。
次に、本発明の第1の実施形態の具体例を説明する。図10に示すように、本実施例に係る仮想マシン300は、通信サービスとしてのAsterisk310と、ゲストOSとしてのLinux(登録商標)320と、通信リクエスト要求送受信部としてのvirtio330とを有する。さらに、本実施例においては、仮想マシン環境としてKVM(Kernel−based Virtual Machine)400を用いる。KVM400は、通信リクエスト要求送受信部としてのvhost_net410と、ネットワークカードドライバとしてのE1000 Driver420とを有する。
Asterisk310は、携帯電話等で使用される音声呼を処理するためのSIPサーバである。
Virtio330は、vhost_net410に対して通信リクエストの送受信を行うためのLinuxカーネルドライバである。
Vhost_net410は、Linuxカーネルドライバである。Vhost_net410は、KVM400に到着した通信リクエストを各仮想マシン300に配信する。また、Vhost_net410は、各仮想マシン300からの通信リクエストをネットワークN上に存在する他のコンピュータに送信する。
E1000 Driver420は、ネットワークNを介して通信リクエストを受信し、その通信リクエストをvhost_net410に転送する。Vhost_net410は、転送されてきた通信リクエストの宛先が、KVM400上で動作する仮想マシン300のいずれであるかを判別する。Vhost_net410は、その通信リクエストを宛先の仮想マシン300に転送する。宛先の判別方法について説明する。Vhost_net410は、通信リクエストのTCP/IPヘッダから宛先IPアドレスを取得し、その取得した宛先IPアドレスと同じIPアドレスが割り当てられている仮想マシン300が宛先であると判別する。監視部250は、vhost_net410上に到着した通信リクエストを監視する。計算部260は、通信処理時間275を計算する。
図11を参照して、通信リクエスト識別子272の得るために、SIP/IPヘッダを用いる方法を説明する。通信リクエスト識別子272は、送信元IPアドレスとCall−IDとを用いて算出される。計算部260は、送信元IPアドレスをIPヘッダから取得する。計算部260は、Call−IDをSIPヘッダから取得する。図11の例では、Call−IDは、「123456@sipserver.com」である。このCall−IDからアットマークより左側の数値を通信リクエスト識別子272の算出に利用する。
以下に具体的な通信リクエスト識別子272の演算例を示す。
送信元IPアドレス:192.168.0.1.
Call−ID:123456
通信リクエスト識別子=送信元IPアドレス+Call−ID
=192+168+0+1+123456
=123807
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は、上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
上述の仮想マシン環境200は内部に、コンピュータシステムを有していてもよい。上述した各処理部の動作は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われてもよい。コンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリを含んでもよい。このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータがそのプログラムを実行するようにしても良い。
上記プログラムは、前述した機能の一部を実現するためのものであっても良い。
上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
以上、実施形態を参照して本願発明を示し説明したが、本願発明は上記実施形態に限定されない。当業者であれば、請求項によって画定される本願発明の範囲を逸脱しないで、構成や詳細に様々な変更をすることができることが理解されるであろう。
この出願は、2013年3月12日に出願された日本国特願2013−049048を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明の実施形態は、携帯電話サービスを構成する電話交換機サーバ(SIPサーバ)のサービスのうち、特定の電話回線(Call−ID)の通信処理を安定化させるといった用途に適用できる。また、本発明の実施形態は、音声通話ソフトや他のネットワークサービスの通信品質安定化といった用途にも適用可能である。
請求の範囲、明細書及び図面中において示したシステム、方法、装置、プログラム及び記録媒体における動作、手順、ステップ及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現し得る。請求の範囲、明細書及び図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味しない。
100 仮想マシン
110 通信サービス
120 ゲストOS
130 通信リクエスト送受信部(送受信部)
200 仮想マシン環境
210 通信リクエスト送受信部(送受信部)
220 ネットワークカードドライバ(ドライバ)
230 通信リクエスト合成部(合成部)
240 通信リクエスト合成数決定部(決定部)
250 通信処理時間監視部(監視部)
260 通信処理時間計算部(計算部)
270 通信処理時間格納部(時間格納部)
271 監視対象アプリケーション
272 通信リクエスト識別子
273 通信リクエスト受信時刻
274 通信リクエスト送信時刻
275 通信処理時間
280 通信リクエスト合成数格納部(合成数格納部)
281 合成数変更閾値(閾値)
282 通信処理時間劣化率(劣化率)
283 通信処理時間目標値(目標値)
284 通信リクエスト合成数(合成数)

Claims (6)

  1. 仮想マシンを仮想的に生成する仮想マシン環境
    を備え、
    前記仮想マシン環境は、
    ネットワークを介して第1の通信リクエストを受信し、前記第1の通信リクエストを前記仮想マシンに送信し、前記仮想マシンが前記第1の通信リクエストを処理することによって生成された第2の通信リクエストを前記ネットワークを介して送信する送受信部と、
    前記送受信部が前記第1の通信リクエストを受信した受信時刻と前記送受信部が前記第2の通信リクエスト送信した送信時刻とに基づいて通信処理時間を計算する計算部と、
    前記通信処理時間に基づいて通信リクエストをまとめる数を決定する決定部と、を有し、
    前記送受信部は、前記決定された数の通信リクエストが到着してから通信リクエストの到着通知を前記仮想マシンに送信する
    安定化システム。
  2. 前記仮想マシン環境は、第1の格納部をさらに備え、
    前記第1の格納部は、
    前記仮想マシンにおける監視対象となっているアプリケーションを示す情報と、
    前記第1の通信リクエストと前記第2の通信リクエストとに共通に用いられる識別子と、
    前記第1の通信リクエストの受信時刻と、
    前記第2の通信リクエストの送信時刻と、
    前記受信時刻と前記送信時刻の差分を示す前記通信処理時間と
    を格納する請求項に記載の安定化システム。
  3. 前記仮想マシン環境は、第2の格納部をさらに備え、
    前記第2の格納部は、
    前記通信処理時間の目標値と、
    前記仮想マシンにおける監視対象となっているアプリケーションが処理する通信リクエストの全体に対する、前記通信処理時間が前記目標値を超える通信リクエストの割合を示す劣化率と、
    前記劣化率と比較され、前記数を変更するか否かの判断に用いられる閾値と、
    記数
    を格納する請求項1又は2に記載の安定化システム。
  4. 仮想マシンを仮想的に生成するコンピュータ装置が
    ネットワークを介して第1の通信リクエストを受信し、
    前記第1の通信リクエストを前記仮想マシンに送信し、
    前記仮想マシンが前記第1の通信リクエストを処理することによって生成された第2の通信リクエストを前記ネットワークを介して送信し、
    前記仮想マシン環境が前記第1の通信リクエストを受信した受信時刻と前記仮想マシン環境が前記第2の通信リクエスト送信した送信時刻とに基づいて通信処理時間を計算し、
    前記通信処理時間に基づいて通信リクエストをまとめる数を決定し
    前記決定された数の通信リクエストが到着してから通信リクエストの到着通知を前記仮想マシンに送信する
    ことを含む安定化方法。
  5. 仮想マシンを仮想的に生成するコンピュータ装置であって、
    ネットワークを介して第1の通信リクエストを受信し、前記第1の通信リクエストを前記仮想マシンに送信し、前記仮想マシンが前記第1の通信リクエストを処理することによって生成された第2の通信リクエストを前記ネットワークを介して送信する送受信部と、
    前記送受信部が前記第1の通信リクエストを受信した受信時刻と前記送受信部が前記第2の通信リクエスト送信した送信時刻とに基づいて通信処理時間を計算する計算部と、
    前記通信処理時間に基づいて通信リクエストをまとめる数を決定する決定部と、を有し、
    前記送受信部は、前記決定された数の通信リクエストが到着してから通信リクエストの到着通知を前記仮想マシンに送信する
    コンピュータ装置
  6. 仮想マシンを仮想的に生成するコンピュータに、
    ネットワークを介して第1の通信リクエストを受信し、
    前記第1の通信リクエストを前記仮想マシンに送信し、
    前記仮想マシンが前記第1の通信リクエストを処理することによって生成された第2の通信リクエストを前記ネットワークを介して送信し、
    前記仮想マシン環境が前記第1の通信リクエストを受信した受信時刻と前記仮想マシン環境が前記第2の通信リクエスト送信した送信時刻とに基づいて通信処理時間を計算し、
    前記通信処理時間に基づいて通信リクエストをまとめる数を決定し
    前記決定された数の通信リクエストが到着してから通信リクエストの到着通知を前記仮想マシンに送信する
    ことを実行させるためのプログラム。
JP2015505353A 2013-03-12 2014-02-21 安定化システム、安定化方法、コンピュータ装置及びプログラム Active JP5796693B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015505353A JP5796693B2 (ja) 2013-03-12 2014-02-21 安定化システム、安定化方法、コンピュータ装置及びプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2013049048 2013-03-12
JP2013049048 2013-03-12
JP2015505353A JP5796693B2 (ja) 2013-03-12 2014-02-21 安定化システム、安定化方法、コンピュータ装置及びプログラム
PCT/JP2014/054143 WO2014141854A1 (ja) 2013-03-12 2014-02-21 安定化システム、安定化方法、仮想マシン環境及びプログラム

Publications (2)

Publication Number Publication Date
JP5796693B2 true JP5796693B2 (ja) 2015-10-21
JPWO2014141854A1 JPWO2014141854A1 (ja) 2017-02-16

Family

ID=51536530

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015505353A Active JP5796693B2 (ja) 2013-03-12 2014-02-21 安定化システム、安定化方法、コンピュータ装置及びプログラム

Country Status (2)

Country Link
JP (1) JP5796693B2 (ja)
WO (1) WO2014141854A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7451438B2 (ja) 2021-01-22 2024-03-18 株式会社東芝 通信装置、通信システム、通知方法及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009169757A (ja) * 2008-01-17 2009-07-30 Fujitsu Ltd 分散処理プログラム、分散処理装置、および分散処理方法
US20100274940A1 (en) * 2009-04-24 2010-10-28 Vmware, Inc. Interrupt coalescing for outstanding input/output completions
WO2011087085A1 (ja) * 2010-01-14 2011-07-21 日本電気株式会社 計算機、ネットワーク接続切替え方法およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009169757A (ja) * 2008-01-17 2009-07-30 Fujitsu Ltd 分散処理プログラム、分散処理装置、および分散処理方法
US20100274940A1 (en) * 2009-04-24 2010-10-28 Vmware, Inc. Interrupt coalescing for outstanding input/output completions
WO2011087085A1 (ja) * 2010-01-14 2011-07-21 日本電気株式会社 計算機、ネットワーク接続切替え方法およびプログラム

Also Published As

Publication number Publication date
WO2014141854A1 (ja) 2014-09-18
JPWO2014141854A1 (ja) 2017-02-16

Similar Documents

Publication Publication Date Title
US20210141676A1 (en) Dynamic load balancing in network interface cards for optimal system level performance
US20220214919A1 (en) System and method for facilitating efficient load balancing in a network interface controller (nic)
US10798207B2 (en) System and method for managing application performance
US8811417B2 (en) Cross-channel network operation offloading for collective operations
US10454850B2 (en) Apparatus and method for buffering data in a switch
US8174984B2 (en) Managing traffic on virtualized lanes between a network switch and a virtual machine
US8392565B2 (en) Network memory pools for packet destinations and virtual machines
US9069722B2 (en) NUMA-aware scaling for network devices
WO2016101288A1 (zh) 一种远程直接数据存取方法、设备和系统
US20140112149A1 (en) Closed loop end-to-end qos on-chip architecture
US20130074091A1 (en) Techniques for ensuring resources achieve performance metrics in a multi-tenant storage controller
EP3057271A1 (en) Control device and control method in software defined network (sdn)
US20190042151A1 (en) Hybrid framework of nvme-based storage system in cloud computing environment
US10050893B2 (en) Data transmission using modified weighted fair queue algorithm
CN105379212A (zh) 内容分发网络中的加权摄取策略管理
US10536385B2 (en) Output rates for virtual output queses
CN106603409B (zh) 一种数据处理系统、方法及设备
US11316916B2 (en) Packet processing method, related device, and computer storage medium
US9124587B2 (en) Information processing system and control method thereof
US11165705B2 (en) Data transmission method, device, and computer storage medium
US9363199B1 (en) Bandwidth management for data services operating on a local network
CN105391647B (zh) 一种流量控制的方法及系统
WO2019033891A1 (zh) 一种基于rdma的网络流量确定方法及装置
US11875839B2 (en) Flow based rate limit
JP5796693B2 (ja) 安定化システム、安定化方法、コンピュータ装置及びプログラム

Legal Events

Date Code Title Description
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: 20150721

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150803

R150 Certificate of patent or registration of utility model

Ref document number: 5796693

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150