JP2014052954A - 仮想マシンチューニング値計算装置および仮想マシンチューニング値計算方法 - Google Patents

仮想マシンチューニング値計算装置および仮想マシンチューニング値計算方法 Download PDF

Info

Publication number
JP2014052954A
JP2014052954A JP2012198427A JP2012198427A JP2014052954A JP 2014052954 A JP2014052954 A JP 2014052954A JP 2012198427 A JP2012198427 A JP 2012198427A JP 2012198427 A JP2012198427 A JP 2012198427A JP 2014052954 A JP2014052954 A JP 2014052954A
Authority
JP
Japan
Prior art keywords
lived
control signal
call
per
time
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
JP2012198427A
Other languages
English (en)
Other versions
JP5809613B2 (ja
Inventor
Fumihiko Sawazaki
文彦 澤崎
Kiyoshi Ueda
清志 上田
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012198427A priority Critical patent/JP5809613B2/ja
Publication of JP2014052954A publication Critical patent/JP2014052954A/ja
Application granted granted Critical
Publication of JP5809613B2 publication Critical patent/JP5809613B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】仮想マシンに設定する最適なNEW領域サイズを求める。
【解決手段】仮想マシンのNEW領域サイズを、スカベンジGC周期T×(単位時間に発生する短命制御信号オブジェクトの合計サイズ+単位時間に発生する長命コールオブジェクトの合計サイズ)とする。但し、スカベンジGC周期Tを、{目標停止時間−(スカベンジGCにおけるNEW領域からOLD領域への短命制御信号オブジェクトのコピー時間の合計値+CMSにおけるOLD領域にコピーされた短命制御信号オブジェクトに対するリマーク時間の合計値)}/(スカベンジGCにおけるNEW領域からOLD領域への長命コールオブジェクトのコピー時間の合計値+CMSにおけるOLD領域にコピーされた長命コールオブジェクトのリマーク時間の合計値)とする。
【選択図】図3

Description

Java(登録商標)VM(バーチャルマシン)等の仮想マシンチューニング値計算装置および仮想マシンチューニング値計算方法に関する。
Java(登録商標)VM等の仮想マシンを用いたシステムにおいてガベージコレクション(GC)時には、オブジェクトのコピーやチェック(マーク)のために、システムがある程度の時間停止してしまう。Java(登録商標)VMにおけるGCの仕組みは、以下の非特許文献1,2に開示されている。一般的に仮想マシンを用いたシステムでは、処理モデルの異なる様々なアプリケーションが搭載されるため、GCによるプログラム停止時間を予測する(見積もる)ことは困難であった。
チューニングのためのJavaVM講座(前編)、[online]、[平成24年8月10日検索]、インターネット<URL: http://www.atmarkit.co.jp/fjava/rensai3/javavm02/javavm02_1.html > チューニングのためのJavaVM講座(後編)、[online]、[平成24年8月10日検索]、インターネット<URL: http://www.atmarkit.co.jp/fjava/rensai3/javavm02/javavm02_2.html >
ここで、SIP(Session Initiation Protocol)サーバ等の通信ノードのように、大量処理を行いつつ、かつ、低レイテンシ(遅延時間をできるだけ少なくすること)を求められるシステムにおいて仮想マシンを用いるには、システム開発前に、GCによるプログラム停止時間を予測することが重要である。しかし、前記したとおり、仮想マシンを用いたシステムでは、処理モデルの異なる様々なアプリケーションが搭載されるため、GCによる停止時間を予測する(見積もる)ことは困難である。
このため、システム開発者は、仮想マシンのチューニング値(目標遅延時間(許容されるプログラム停止時間の最大値)を満たし、かつスループットを最大とする仮想マシンのパラメータ値)を求めるため、仮想マシンの性能測定と停止時間の確認の繰り返しを行わなくてはならなかった。ここで、特にチューニング値で重要となるのは、メモリのNEW領域に割り当てるサイズ(NEW領域サイズ)である。そこで、本発明は、前記した課題を解決し、仮想マシンに設定するNEW領域サイズ(最適NEW領域サイズ)を求める手段を提供すること目的とする。
前記した課題を解決するため、本発明は、通信ノードに用いられる仮想マシンに設定するメモリのNEW領域サイズを計算する仮想マシンチューニング値計算装置であって、前記仮想マシンは、メモリ上のNEW領域のGC(ガベージコレクション)の方式としてスカベンジGCを採用し、前記メモリ上のOLD領域のGCの方式としてCMS(Concurrent Mark & Sweep)を採用する仮想マシンであり、前記仮想マシンに用いられるアプリケーションは、他の端末装置が前記仮想マシンにアクセスしてから処理を終了するまでの一連の動作を、複数の制御信号が関連するコールとして管理し、前記コールに対するオブジェクトとして1以上の長命コールオブジェクトを生成し、前記制御信号に対するオブジェクトとして1以上の短命制御信号オブジェクトを生成するアプリケーションであり、前記アプリケーションにおける、単位時間あたりのコール発生数(A1)と、前記コール1つあたりの制御信号数(A2)とを示したトラヒックモデル情報と、前記制御信号1つあたりの短命制御信号オブジェクト数(B1)と、前記コール1つあたりの長命コールオブジェクト数(B2)と、短命制御信号オブジェクト平均保留時間(B3)と、前記短命制御信号オブジェクトのサイズ(B4)と、前記長命コールオブジェクトのサイズ(B5)とを示したアプリケーションモデル情報と、前記スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2)と、前記CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3)とを示したGC動作パラメータ情報と、前記仮想マシンにおけるGC時のプログラム停止時間の目標値である目標停止時間(D)との入力を受け付け、記憶部に記憶し、前記記憶部の、前記トラヒックモデル情報、前記アプリケーションモデル情報、前記GC動作パラメータ情報および前記目標停止時間を用いて、以下の式(1)および式(2)により前記NEW領域サイズを計算する。なお、長命コールオブジェクト、短命制御信号オブジェクトを生成する際に一時的に生成されるオブジェクトも存在するがこれらも短命制御信号オブジェクトとして扱っている。
NEW領域サイズ=スカベンジGC周期T×単位時間あたりのコール発生数(A1)×(コール1つあたりの長命コールオブジェクト数(B2)×長命コールオブジェクトのサイズ(B5)+コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクトのサイズ(B4))…式(1)
ただし、
スカベンジGC周期T={目標停止時間(D)−(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのコピー時間(C2)+単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3))}/(単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2)+単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3))…式(2)
このように、本発明の仮想マシンチューニング値計算装置は、仮想マシンに設定するNEW領域サイズを計算するために、(1)トラヒックモデル情報、(2)アプリケーションモデル情報および(3)仮想マシンのGC動作パラメータ情報を用いる。ここで、従来のWeb系のシステムでは、1台のサーバ(仮想マシン)に多数のアプリケーションが動作し、トラヒック条件もそのアプリケーションそれぞれ異なるため、(1)トラヒックモデル情報および(2)アプリケーションモデル情報を用いてNEW領域サイズ(最適NEW領域サイズ)を求めることは困難であった。しかし、仮想マシンの用いられるコンピュータが、SIPサーバ等の通信ノードであれば、動作するアプリケーションは単一であることが一般的である。そこで、本発明の発明者はこの点に着目し、通信ノードに用いられる仮想マシンのNEW領域サイズ(最適NEW領域サイズ)を計算する際、(1)トラヒックモデル情報および(2)アプリケーションモデル情報を用いて計算する仮想マシンチューニング値計算装置を考案するに至った。
ここで、本発明で想定する仮想マシンに用いられるアプリケーションは、他の端末装置が当該仮想マシンにアクセスしてから処理を終了するまでの一連の動作を、複数の制御信号が関連するコールとして管理する。そして、仮想マシンが1つのコールを処理する際に、コールはメモリ上に比較的長時間存在することから、1つのコールに対するオブジェクトとして1以上の長命コールオブジェクトを生成する。一方、仮想マシンが1つの制御信号を処理する際、制御信号はメモリ上に比較的短時間しか存在しないため、1つの制御信号に対するオブジェクトとして1以上の短命制御信号オブジェクトを生成するものとする。
この仮想マシンがGCを行う際には、非特許文献1,2に記載されるとおり、メモリをNEW領域とOLD領域とに分割してGCを行う。ここでは、NEW領域のGCの方式として、スカベンジGC方式をとり、OLD領域のGCの方式として、CMS方式をとるものとする。なお、GC時におけるプログラム停止時間は、スカベンジGCにおけるNEW領域からOLD領域へのオブジェクトのマークおよびコピー時間+CMSにおけるOLD領域にコピーされたオブジェクトのリマーク時間である。
ここで、本発明において、
NEW領域サイズ(最適なNEW領域サイズ)=スカベンジGC周期T×単位時間あたりのコール発生数(A1)×(コール1つあたりの長命コールオブジェクト数(B2)×長命コールオブジェクトのサイズ(B5)+コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクトのサイズ(B4))…式(1)
としている。
式(1)における(単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×長命コールオブジェクトのサイズ(B5))は、単位時間あたりにNEW領域において長命コールオブジェクトの占める合計サイズを示す。
また、式(1)における(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクトのサイズ(B4))は、単位時間あたりにNEW領域において使用中の短命制御信号オブジェクトおよび短命制御信号オブジェクトのガベージの占める合計サイズの平均値を示す。
つまり、仮想マシンに必要なNEW領域サイズは、スカベンジGC時にNEW領域に存在するオブジェクト(使用中の短命制御信号オブジェクトと長命コールオブジェクト)の合計サイズ)および短命制御信号オブジェクトのガベージの占めるサイズであればよいので、仮想マシンに必要なNEW領域サイズを、スカベンジGC周期T×単位時間あたりNEW領域に存在するオブジェクト(短命制御信号オブジェクトと長命コールオブジェクト)が占める合計サイズとしている。
さらに、式(1)で用いるスカベンジGC周期Tを、式(2)に示すように、
スカベンジGC周期T={目標停止時間(D)−(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2)+単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3))}/(単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2)+単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3))…式(2)
としている。なお、式(2)における目標停止時間は、システムの設計者等が仮想マシンに許容する停止時間の最大値である。
また、式(2)における、(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2))は、スカベンジGCにおけるNEW領域の短命制御信号オブジェクトのマークおよびコピー時間の合計値を示す。
さらに、式(2)における(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3))は、CMSにおけるOLD領域にコピーされた短命制御信号オブジェクトのリマーク時間の合計値を示す。
また、式(2)における(単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2))は、スカベンジGCにおけるNEW領域の長命コールオブジェクトのマークおよびコピー時間の合計値を示す。
さらに、式(2)における(単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3))は、CMSにおけるOLD領域にコピーされた長命コールオブジェクトのリマーク時間の合計値を示す。
つまり、式(2)において、スカベンジGC周期Tを、{目標停止時間(D)−(スカベンジGCにおけるNEW領域の短命制御信号オブジェクトのマークおよびコピー時間の合計値+CMSにおけるOLD領域にコピーされた短命制御信号オブジェクトに対するリマーク時間の合計値)}/(スカベンジGCにおけるNEW領域の長命コールオブジェクトのマークおよびコピー時間の合計値+CMSにおけるOLD領域にコピーされた長命コールオブジェクトのリマーク時間の合計値)、すなわち、スカベンジGC周期Tを、{目標停止時間(D)−(短命制御信号オブジェクトのマークおよびコピーおよびリマークによるプログラム停止時間)}/(長命コールオブジェクトのマークおよびコピーおよびリマークによるプログラム停止時間)としている。なお、スカベンジGC周期Tを、目標停止時間(D)−(短命制御信号オブジェクトのマークおよびコピーおよびリマークによるプログラム停止時間)/(長命コールオブジェクトのマークおよびコピーおよびリマークによるプログラム停止時間)としているのは、短命制御信号オブジェクトの生存時間がスカベンジGC周期Tよりも短いことが想定されるからである。つまり、スカベンジGC時に、NEW領域に短命制御信号オブジェクトがすべて存続しているとは限らないからである。
また、本発明の仮想マシンチューニング値計算装置のチューニングパラメータ値計算部が、複数の前記仮想マシンからなるシステムにおける前記仮想マシンそれぞれの前記NEW領域サイズを計算するとき、前記仮想マシンそれぞれの、前記トラヒックモデル情報、前記アプリケーションモデル情報および前記GC動作パラメータ情報と、前記システム全体の目標停止時間を分配した前記仮想マシンそれぞれの目標停止時間とを用いて、前記式(1)および式(2)により前記仮想マシンそれぞれの前記NEW領域サイズを計算する。
このようにすることで、システムが複数の仮想マシンからなる場合に、システム全体で要求される目標停止時間の条件を満たすような、各仮想マシンのNEW領域サイズを計算することができる。
また、本発明は、通信ノードに用いられる仮想マシンに設定するメモリのNEW領域サイズの範囲を計算する仮想マシンチューニング値計算装置であって、前記仮想マシンは、メモリ上のNEW領域のGCの方式としてスカベンジGCを採用し、前記メモリ上のOLD領域のGCの方式としてCMS(Concurrent Mark & Sweep)を採用する仮想マシンであり、前記仮想マシンに用いられるアプリケーションは、他の端末装置が前記仮想マシンにアクセスしてから処理を終了するまでの一連の動作を、複数の制御信号が関連するコールとして管理し、前記コールに対するオブジェクトとして1以上の長命コールオブジェクトを生成し、前記制御信号に対するオブジェクトとして1以上の短命制御信号オブジェクトを生成するアプリケーションであり、前記アプリケーションにおける、前記単位時間あたりのコール発生数(A1)と、前記コール1つあたりの制御信号数(A2)とを示したトラヒックモデル情報と、前記制御信号1つあたりの短命制御信号オブジェクト数(B1)と、前記コール1つあたりの長命コールオブジェクト数(B2)と、短命制御信号オブジェクト平均保留時間(B3)と、前記短命制御信号オブジェクトのサイズ(B4)と、前記長命コールオブジェクトのサイズ(B5)とを示したアプリケーションモデル情報と、前記スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2)と、前記CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3)とを示したGC動作パラメータ情報と、前記仮想マシンにおけるGC時のプログラム停止時間の目標値である目標停止時間(D)と、前記仮想マシンにおける稼動率の目標値との入力を受け付け、記憶部に記憶し、前記記憶部の、前記トラヒックモデル情報、前記アプリケーションモデル情報、前記GC動作パラメータ情報、前記目標停止時間および前記稼動率の目標値を用いて、以下の式(3)〜式(7)により前記NEW領域サイズの範囲を計算する。
目標停止時間(D)>スカベンジGC停止時間t1+リマーク停止時間t2…式(3)
スカベンジGC周期T>短命制御信号オブジェクト平均保留時間(B3)…式(4)
スカベンジGC周期T/(スカベンジGC周期T+スカベンジGC停止時間t1)>稼動率の目標値…式(5)
ただし、
スカベンジGC停止時間t1=(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)+スカベンジGC周期T×単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2))×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2)…式(6)
リマーク停止時間t2=(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)+スカベンジGC周期×単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2))×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3)…式(7)
なお、NEW領域サイズが左辺となるようにする場合、式(3)〜式(5)は、以下の式(8)〜式(11)のようになり、これから最適なNEW領域の範囲を求めることができる。
(最適な範囲の)NEW領域サイズ<スカベンジGC周期T×(単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×長命コールオブジェクトのサイズ(B5)+スカベンジGC周期T×単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクトのサイズ(B4))…式(8)
(最適な範囲の)NEW領域サイズ>短命制御信号オブジェクト平均保留時間(B3)×(単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×長命コールオブジェクトのサイズ(B5)+スカベンジGC周期T×単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクトのサイズ(B4))…式(9)
(最適な範囲の)NEW領域サイズ>稼働率の目標値×単位時間時間あたりのコース発生数(A1) ×単位時間時間あたりのコース発生数(A1)×(コール1つあたりの長命コールオブジェクト数(B2)×長命コールオブジェクトのサイズ(B5)+コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクトのサイズ(B4))×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2)

(1−稼働率の目標値−稼働率の目標値×単位時間時間あたりのコース発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2))…式(10)
ただし、
スカベンジGC周期T={目標停止時間(D)−(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2)+単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3))}/(単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2)+単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3))…式(11)
このようにすることで、仮想マシンチューニング値計算装置は、仮想マシンのプログラム停止時間が目標停止時間未満であることに加え、スカベンジGC周期が短命制御信号オブジェクト平均保留時間よりも長いこと、および、仮想マシンの稼働率が目標値を超えていることを考慮して、仮想マシンに設定する適切なNEW領域サイズの範囲を求めることができる。
なお、式(3)に示す(スカベンジGC停止時間t1+リマーク停止時間t2)は、仮想マシンにおけるGC時のプログラム停止時間を示す。また、式(5)における(スカベンジGC周期T/(スカベンジGC周期T+スカベンジGC停止時間t1))は、仮想マシンの稼働率を示す。
また、式(6)および式(7)の(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3))は、スカベンジGC時においてNEW領域に生存する短命制御信号オブジェクト数の平均値を示す。
式(6)および式(7)の(スカベンジGC周期T×単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2))は、スカベンジGC周期の間に発生する長命コールオブジェクト数を示す。つまり、スカベンジGC時にNEW領域に生存する長命コールオブジェクト数を示す。
また、リマーク停止時間については、スカベンジGCによりNEW領域からOLD領域にコピーされたオブジェクト数(つまり、スカベンジGC周期を迎えたときにNEW領域に生存するライブオブジェクト数)×OLD領域にコピーされたオブジェクトの1つあたりのリマーク時間と考えることができる。よって、リマーク停止時間を、式(12)に示すように、
リマーク停止時間t2=(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)+スカベンジGC周期×単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2))×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3)…式(12)
としている。
本発明によれば、通信ノードに用いられる仮想マシンに設定するNEW領域サイズ(最適NEW領域サイズ)を容易に求めることができる。
本実施の形態の仮想マシンチューニング値計算装置の機能ブロック図である。 本実施の形態のトラヒックモデル情報およびアプリケーションモデル情報を説明するための図である。 仮想マシンにおけるGCを説明するための図である。 複数のサーバからなるシステムにおけるチューニングパラメータ値(最適NEW領域サイズ)の計算処理を説明するための図である。 仮想マシンのNEW領域サイズに対する、仮想マシンの稼働率を例示した図である。 短命制御信号オブジェクトの数×短命制御信号オブジェクトのサイズの値、および、長命コールオブジェクトの数×長命コールオブジェクトのサイズの値の最適値の範囲を例示する図である。
以下、図面を参照しながら、本発明の仮想マシンチューニング値計算装置を実施するための形態を説明する。まず、図1を用いて、本実施の形態の仮想マシンチューニング値計算装置10の構成を説明する。
<構成>
仮想マシンチューニング値計算装置10は、アプリケーションモデル情報(後記)、トラヒックモデル情報(後記)、GC(ガベージコレクション)動作パラメータ情報(後記)およびこの仮想マシンのGC時におけるプログラム停止時間の目標値(目標停止時間)の入力を受け付けると、これらの情報および目標値に基づき、仮想マシンに設定するNEW領域サイズ(最適NEW領域サイズ)を計算し、出力する。この仮想マシンチューニング値計算装置10の機能は、入力部11、チューニングパラメータ値計算部12および出力部13に分けられる。
入力部11および出力部13は、入出力インタフェースから構成される。また、チューニングパラメータ値計算部12は、この仮想マシンチューニング値計算装置10の備えるCPU(Central Processing Unit。図示省略)がメインメモリ(図示省略)にプログラムを展開し、実行することにより実現する。なお、このプログラムは、仮想マシンチューニング値計算装置10の備える補助記憶部(図示省略)の所定領域に格納されるものとする。なお、このチューニングパラメータ値計算部12を、専用回路により実現するようにしてもよい。
入力部11は、アプリケーションモデル情報の入力を受け付けるアプリケーションモデル入力部111、トラヒックモデル情報の入力を受け付けるトラヒックモデル入力部112、GC動作パラメータの入力を受け付けるGC動作パラメータ入力部113および目標停止時間の入力を受け付ける目標停止時間入力部114を備える。また、出力部13は、仮想マシンに設定するNEW領域サイズを出力するチューニングパラメータ値出力部131を備える。チューニングパラメータ値計算部12は、チューニングパラメータ値計算アルゴリズムにより、仮想マシンに設定するNEW領域サイズを計算し、計算したNEW領域サイズをチューニングパラメータ値出力部131経由で外部装置等に出力する。
ここで、仮想マシンは、例えば、Java(登録商標)VM(バーチャルマシン)であり、SIP(Session Initiation Protocol)サーバ等の通信ノードに用いられるものとする。そして、この仮想マシンに用いられるアプリケーション(アプリケーションプログラム)は、他の端末装置等が、この仮想マシンにアクセスしてから処理を終了するまでの一連の動作を、複数の制御信号が関連するコールとして管理するものとする。
例えば、アプリケーションが電話アプリケーションである場合を考える。この場合、1つの電話呼が1つのコールであり、このコールには「接続開始」や「接続終了」といった制御信号が関連する。そして、このようなアプリケーションにより仮想マシンは、コールに対し1以上のオブジェクトを生成し、制御信号に対し1以上のオブジェクトを生成する。ここで、1つのコールに対する処理は、仮想マシンの用いるメモリ上に比較的長い時間存在することから、1つのコールに対し生成されるオブジェクトを長命コールオブジェクトとする。一方、1つの制御信号については、その処理についてオブジェクトを生成したとしても比較的短時間(所定時間)で処理が完了してメモリ上から削除されるので、1つの制御信号に対して生成されるオブジェクトを短命制御信号オブジェクトとする。
仮想マシンのGCは、メモリのNEW領域およびOLD領域それぞれで行われるが、それぞれの領域で方式があり、ここでは、NEW領域のGCの方式として、スカベンジGC方式を採用し、OLD領域のGCの方式として、CMS方式を採用する場合を説明する。Java(登録商標)VMが生成したライブオブジェクトは所定のスカベンジGC周期になるとマークされ、NEW領域から、OLD領域にコピーされる。そして、NEW領域において当該オブジェクトのために確保されていた領域は解放される。ここで、OLD領域にコピーされたオブジェクトに対し、チェック(リマーク)がされる。このNEW領域のマークおよびコピーの時間およびOLD領域にコピーされたオブジェクトのリマークの時間が、仮想マシンのGCによるプログラム停止時間となる。
本実施の形態で扱うトラヒックモデル(トラヒックモデル情報)、アプリケーションモデル(アプリケーションモデル情報)、GC動作パラメータ情報および目標停止時間について説明する。
<トラヒックモデル情報>
トラヒックモデル情報は、仮想マシンが用いるアプリケーションに関する、以下の情報を含む(図2(a)参照)。
・単位時間あたりのコール発生数(A1)
・1コールあたり(コール1つあたり)の制御信号数(A2)
なお、このようなトラヒックモデル情報を用いることで、チューニングパラメータ値計算部12は、例えば、NEW領域の単位時間あたりの制御信号発生数(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2))を求めることができる。
<アプリケーションモデル情報>
また、アプリケーションモデル情報は、仮想マシンが用いるアプリケーションに関する、以下の情報を含む(図2(b)参照)。
・1制御信号あたり(制御信号1つあたり)の短命制御信号オブジェクト数(B1)
・1コールあたり(コール1つあたり)の長命コールオブジェクト数(B2)
・短命制御信号オブジェクト平均保留時間(B3)
・短命制御信号オブジェクトのサイズ(B4)
・長命コールオブジェクトのサイズ(B5)
<GC動作パラメータ情報>
さらに、GC動作パラメータ情報は、仮想マシンでGCを行う際に用いる以下の情報を含む。
・スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2)
・CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3)
<目標停止時間>
目標停止時間(D)は、仮想マシンにおいて許容するGC時のプログラム停止時間である。
チューニングパラメータ値計算部12は、仮想マシンチューニング値計算アルゴリズムにより仮想マシンに設定するNEW領域サイズを計算する。この仮想マシンチューニング値計算アルゴリズムは、前記したトラヒックモデル(トラヒックモデル情報)、アプリケーションモデル(アプリケーションモデル情報)、GC動作パラメータ情報および目標停止時間(D)を用いて、以下の式(1)および式(2)により仮想マシンのNEW領域サイズを計算するためのアルゴリズムである。
NEW領域サイズ=スカベンジGC周期T×(単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×長命コールオブジェクトのサイズ(B5)+単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×短命制御信号オブジェクトのサイズ(B4))…式(1)
ただし、
スカベンジGC周期T={目標停止時間(D)−(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2)+単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3))}/(単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2)+単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3))…式(2)
前記式(1)および式(2)を、図2(a)、(b)および図3を参照しながら説明する。なお、図3に示すグラフ201の細線は、NEW領域サイズのうちオブジェクト(ライブオブジェクトおよび非ライブオブジェクト)により占有されるサイズを示す。特に、グラフ201の太線はNEW領域サイズのうちライブオブジェクトにより占有されるサイズを示す。また、グラフ202は、OLD領域サイズのうち、オブジェクト(ライブオブジェクトおよび非ライブオブジェクト)により占有されるサイズを示す。このライブオブジェクトとは、ルート集合と呼ばれる、参照のもととなっているオブジェクトから参照をたどっていき、参照でつながっているオブジェクトのことである。非ライブオブジェクトとは、メモリ上のオブジェクトのうち、このライブオブジェクト以外のオブジェクトのことである。GCにおいては、この非ライブオブジェクトのメモリ領域が解放される。このライブオブジェクトとは、ルート集合と呼ばれる参照のもととなっているオブジェクトから参照をたどっていったときに参照でつながっているオブジェクトのことである。非ライブオブジェクトとは、メモリ上のオブジェクトのうち、このライブオブジェクト以外のオブジェクトのことである。GCにおいては、この非ライブオブジェクトのメモリ領域が解放される。
前記したとおり、仮想マシンは、NEW領域上に生成したオブジェクト(短命制御信号オブジェクトおよび長命コールオブジェクト、ガベージも含む)が、NEW領域サイズいっぱいになると、すなわちスカベンジGC周期Tを迎えるとスカベンジGCを行う。これにより、NEW領域のライブオブジェクトがマークされ、OLD領域にコピーされ、NEW領域において当該オブジェクトのために確保されていた領域は解放される。例えば、図3に示すように、仮想マシンはNEW領域の短命制御信号オブジェクトおよび長命コールオブジェクトのうち、ライブオブジェクトをOLD領域にコピーする。そして、NEW領域において、放棄済オブジェクト(非ライブオブジェクト)およびコピーされたライブオブジェクトに割り当てられていた領域は解放され、NEW領域サイズのうちオブジェクトにより占有されるサイズが0になる(グラフ201参照)。これによりNEW領域に新たなオブジェクトを受け入れるための領域が確保される。なお、このスカベンジGC周期Tは、短命制御信号オブジェクト平均保留時間(平均生存時間)よりも長いことが想定されるので、短命制御信号オブジェクトは、スカベンジGC周期Tを迎える前に放棄済オブジェクト(非ライブオブジェクト)となる可能性がある。また、仮想マシンは、OLD領域のライブオブジェクトのマークを行い、その後、NEW領域からコピーされたライブオブジェクトのリマークを行う。そして、OLD領域でマークおよびリマークされたオブジェクト(ライブオブジェクト)以外のオブジェクト(放棄済オブジェクト)のスィープを行う。つまり、放棄済オブジェクトに割り当てられていた領域の解放が行われる。これにより、OLD領域サイズのうちオブジェクトにより占有されるサイズが減少する(グラフ202参照)。これによりOLD領域に新たなオブジェクトを受け入れるための領域が確保される。なお、図3に示すスカベンジGC停止時間t1(スカベンジGCによるNEW領域のオブジェクトのマークとOLD領域へのコピー時間)およびリマーク停止時間t2(CMSによるNEW領域からOLD領域へコピーされたライブオブジェクト群のリマーク時間)の合計値が仮想マシンにおけるGC時のプログラム停止時間となる。
前記したとおり、チューニングパラメータ値計算部12は、NEW領域サイズ(最適なNEW領域サイズ)を、以下の式(1)および式(2)により求める。
NEW領域サイズ=スカベンジGC周期T×単位時間あたりのコール発生数(A1)×(コール1つあたりの長命コールオブジェクト数(B2)×長命コールオブジェクトのサイズ(B5)+コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクトのサイズ(B4))…式(1)
式(1)における(単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×長命コールオブジェクトのサイズ(B5))は、単位時間あたりにNEW領域において長命コールオブジェクトの占める合計サイズを示す。
また、式(1)における(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×短命制御信号オブジェクトのサイズ(B4))は、単位時間あたりにNEW領域において短命制御信号オブジェクトの占める合計サイズの平均値を示す。
つまり、仮想マシンに必要なNEW領域サイズは、スカベンジGC時にNEW領域に存在するオブジェクト(短命制御信号オブジェクトと長命コールオブジェクト)の合計サイズ)分あればよいので、仮想マシンに必要なNEW領域サイズを、スカベンジGC周期×単位時間あたりNEW領域に存在するオブジェクト(短命制御信号オブジェクトと長命コールオブジェクト)が占める合計サイズとしている。
また、式(1)において、単位時間あたりNEW領域において短命制御信号オブジェクトの占める合計サイズの平均値を、(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×短命制御信号オブジェクトのサイズ(B4))としているのは、短命制御信号オブジェクトの生存時間がスカベンジGC周期Tよりも短いことが想定されるからである。つまり、スカベンジGC時に、NEW領域に短命制御信号オブジェクトがすべて存続しているとは限らないからである。
さらに、式(1)で用いるスカベンジGC周期Tを、式(2)に示すように、
スカベンジGC周期T={目標停止時間(D)−(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2)+単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3))}/(単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2)+単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3))…式(2)
としている。なお、式(2)における目標停止時間(D)は、システムの設計者等が仮想マシンに許容するプログラム停止時間の最大値である。
また、式(2)における(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2))は、スカベンジGCにおけるNEW領域の短命制御信号オブジェクトのマークおよびコピー時間の合計値を示す。
さらに、式(2)における(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3))は、CMSにおけるOLD領域にコピーされた短命制御信号オブジェクトのリマーク時間の合計値を示す。
また、式(2)における(単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2))は、スカベンジGCにおけるNEW領域の長命コールオブジェクトのマークおよびコピー時間の合計値を示す。
さらに、式(2)における(単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2)×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3))は、CMSにおけるOLD領域にコピーされた長命コールオブジェクトのリマーク時間の合計値を示す。
つまり、式(2)において、スカベンジGC周期Tを、{目標停止時間(D)−(スカベンジGCにおけるNEW領域の短命制御信号オブジェクトのマークおよびコピー時間の合計値+CMSにおけるOLD領域にコピーされた短命制御信号オブジェクトに対するリマーク時間の合計値)}/(スカベンジGCにおけるNEW領域の長命コールオブジェクトのマークおよびコピー時間の合計値+CMSにおけるOLD領域にコピーされた長命コールオブジェクトのリマーク時間の合計値)、すなわち、スカベンジGC周期Tを、{目標停止時間(D)−(短命制御信号オブジェクトのマークおよびコピーおよびリマークによるプログラム停止時間)}/(長命コールオブジェクトのマークおよびコピーおよびリマークによるプログラム停止時間)としている。なお、スカベンジGC周期Tを、目標停止時間−(短命制御信号オブジェクトのマークおよびコピーおよびリマークによるプログラム停止時間)/(長命コールオブジェクトのマークおよびコピーおよびリマークによるプログラム停止時間)としているのは、前記したとおり、短命制御信号オブジェクトの生存時間がスカベンジGC周期Tよりも短いことが想定されるからである。
なお、仮想マシンチューニング値計算装置10は、複数の仮想マシン(サーバ20)からなるシステムにおける、仮想マシンそれぞれのNEW領域サイズ(チューニングパラメータ値)を計算するようにしてもよい。例えば、図4に示すように、システムがサーバ20(サーバ20a,20b,…,20n)により構成される場合を考える。この場合、図1の仮想マシンチューニング値計算装置10のチューニングパラメータ値計算部12は、入力部11経由で入力されたシステム全体の目標停止時間をサーバ20(サーバ20a,20b,…,20n)ごとに分配する。つまり、システム全体の目標停止時間から、サーバ20それぞれの目標停止時間を求めておく。ここでのサーバ20それぞれの目標停止時間は、例えば、システム全体の目標停止時間を、各サーバ20(サーバ20a,20b,…,20n)に均等に分配した値や、各サーバ20の処理能力に応じて分配した値等が考えられる。このサーバ20それぞれの目標停止時間は、その合計値がシステム全体の目標停止時間となれば、システム開発者が設定した任意の値であってもよい。そして、チューニングパラメータ値計算部12は、サーバ20(サーバ20a,20b,…,20n)それぞれの目標停止時間と、サーバ20(サーバ20a,20b,…,20n)それぞれのアプリケーションモデル情報、トラヒックモデル情報およびGC動作パラメータ情報とを用いて、サーバ20(サーバ20a,20b,…,20n)それぞれのNEW領域サイズ(チューニングパラメータ値)を計算する。このようにすることで、システムが複数の仮想マシンからなる場合において、各仮想マシンに設定するNEW領域サイズ(チューニングパラメータ値)を求めることができる。
なお、前記した実施の形態において、仮想マシンに設定するNEW領域サイズ(最適NEW領域サイズ)を求める際、仮想マシンの目標停止時間(GC時のプログラム停止時間の目標値)を用いることとしたが、これ以外の条件を用いるようにしてもよい。
一般的に、仮想マシンのGC時のプログラム停止時間はできるだけ短い方が好ましい。ここでプログラム停止時間は、NEW領域サイズ(特にNEW領域のEden領域のサイズ)を小さくすると短くなるが、単純にNEW領域(特にNEW領域のEden領域のサイズ)を小さくすればよいというわけではない。これは以下の理由による。
前記した実施の形態において、短命制御信号オブジェクトの生存(保留)時間は、スカベンジGC周期Tよりも短いことを前提としている。しかし、NEW領域を小さくしすぎると、NEW領域がすぐにオブジェクト群でいっぱいになる。これにより、短命制御信号オブジェクトの平均生存(保留)時間よりも早くスカベンジGCが実行されるおそれがある。このため、NEW領域で発生した短命制御信号オブジェクトが、スカベンジGCによりOLD領域へコピーされる確率も増えることになる。つまり、スカベンジGCにおいて、NEW領域からOLD領域へのオブジェクトのコピー時間が増え、また、このようにOLD領域にコピーされるオブジェクト数が増えると、OLD領域でのCMSにおけるリマーク時間も増加し、その結果、プログラム停止時間が増加することになる。また、このようにNEW領域サイズ(特にNEW領域のEden領域のサイズ)を小さくしすぎると、仮想マシンの稼動率も著しく低下することにもなる。なお、ここでの稼働率は、仮想マシンにおけるアプリケーションの実行時間/(仮想マシンにおけるアプリケーションの実行時間+スカベンジGC停止時間t1)である。つまり、稼動率=スカベンジGC周期T/(スカベンジGC周期T+スカベンジGC停止時間t1)である。
従って、仮想マシンのチューニング値(例えば、NEW領域サイズ)の計算においては、仮想マシンのGC時のプログラム停止時間が目標停止時間(D)以下であることに加え、スカベンジGC周期Tが短命制御信号オブジェクト平均保留時間(B3)よりも長いこと、および、仮想マシンの稼働率が目標値を超えていることを考慮するのが好ましい。
図5は、仮想マシンのNEW領域サイズに対する、仮想マシンの稼働率を例示した図である。図5に示すように、NEW領域サイズは仮想マシンの稼働率が下限値(目標値)を超えていることが必要である。さらに、この仮想マシンの稼働率が下限値(目標値)を超えているNEW領域サイズの範囲の中で、短命制御信号オブジェクトが複数のGCに遭遇せず(つまり、スカベンジGC周期T>短命制御信号オブジェクト平均保留時間(B3)であり)、かつ、仮想マシンのプログラム停止時間が目標停止時間(D)未満の範囲が適切なNEW領域サイズとなる。つまり、図5に示すS1〜S2の範囲が、NEW領域の適切な範囲となる。
よって、仮想マシンチューニング値計算装置10のチューニングパラメータ値計算部12は、仮想マシンに設定するNEW領域サイズを計算する際、式(3)〜式(7)を用いて、適切なNEW領域サイズの範囲を計算するようにしてもよい。
目標停止時間(D)>スカベンジGC停止時間t1+リマーク停止時間t2…式(3)
スカベンジGC周期T>短命制御信号オブジェクト平均保留時間(B3)…式(4)
スカベンジGC周期T/(スカベンジGC周期T+スカベンジGC停止時間t1)>稼動率の目標値…式(5)
ただし、
スカベンジGC停止時間t1=(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)+スカベンジGC周期T×単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2))×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間(C2)…式(6)
リマーク停止時間t2=(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3)+スカベンジGC周期×単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2))×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間(C3)…式(7)
なお、式(6)および式(7)の(単位時間あたりのコール発生数(A1)×コール1つあたりの制御信号数(A2)×制御信号1つあたりの短命制御信号オブジェクト数(B1)×短命制御信号オブジェクト平均保留時間(B3))は、スカベンジGC時においてNEW領域に生存する短命制御信号オブジェクト数の平均値を示す。
式(6)および式(7)の(スカベンジGC周期T×単位時間あたりのコール発生数(A1)×コール1つあたりの長命コールオブジェクト数(B2))は、スカベンジGC周期の間に発生する長命コールオブジェクト数を示す。つまり、スカベンジGC時にNEW領域に生存する長命コールオブジェクト数を示す。
なお、複数の仮想マシン(サーバ20)からなるシステムにおいて、仮想マシンそれぞれの適切なNEW領域サイズの範囲を求める場合にも、前記したとおり、システム全体の目標停止時間をサーバ20(サーバ20a,20b,…,20n)ごとに分配する。そして、チューニングパラメータ値計算部12は、サーバ20(サーバ20a,20b,…,20n)それぞれの目標停止時間と、サーバ20(サーバ20a,20b,…,20n)それぞれのアプリケーションモデル情報、トラヒックモデル情報およびGC動作パラメータ情報とを用いて、サーバ20(サーバ20a,20b,…,20n)それぞれの適切なNEW領域サイズ(チューニングパラメータ値)の範囲を計算するようにしてもよい。
なお、仮想マシン上で動作するアプリケーションの設計においては、各オブジェクトのサイズや数が、GCによるプログラム停止時間(前記したスカベンジGC停止時間t1やリマーク停止時間t2)に影響する。このため、この各オブジェクトのサイズや数の設定が重要である。つまり、前記した短命制御信号オブジェクト数(B1)、短命制御信号オブジェクトのサイズ(B4)、長命コールオブジェクト数(B2)および長命コールオブジェクトのサイズ(B5)の設定が重要である。ここで、仮想マシンの目標停止時間(D)、稼動率の目標値等を決めておけば、前記したチューニング値計算アルゴリズムを用いることで、短命制御信号オブジェクトおよび長命コールオブジェクトそれぞれのサイズや数がとりうる範囲は限定される。例えば、チューニング値計算アルゴリズムを用いることで、仮想マシンのプログラム停止時間が目標停止時間(D)未満となる、短命制御信号オブジェクト数(B1)×短命制御信号オブジェクトのサイズ(B4)の値および長命コールオブジェクト数(B2)×長命コールオブジェクトのサイズ(B5)の値の組み合わせは、図6のハッチング部分の範囲となる。このように短命制御信号オブジェクト数(B2)×短命制御信号オブジェクトのサイズ(B4)の値および長命コールオブジェクト数(B2)×長命コールオブジェクトのサイズ(B5)の値のとりうる範囲が事前に分かることで、システム開発者は、プログラム停止時間を目標停止時間(D)未満とするアプリケーションの設計を容易に行うことができる。
10 仮想マシンチューニング値計算装置
11 入力部
12 チューニングパラメータ値計算部
13 出力部
20 サーバ
111 アプリケーションモデル入力部
112 トラヒックモデル入力部
113 GC動作パラメータ入力部
114 目標停止時間入力部
131 チューニングパラメータ値出力部

Claims (5)

  1. 通信ノードに用いられる仮想マシンに設定するメモリのNEW領域サイズを計算する仮想マシンチューニング値計算装置であって、
    前記仮想マシンは、メモリ上のNEW領域のGC(ガベージコレクション)の方式としてスカベンジGCを採用し、前記メモリ上のOLD領域のGCの方式としてCMS(Concurrent Mark & Sweep)を採用する仮想マシンであり、
    前記仮想マシンに用いられるアプリケーションは、他の端末装置が前記仮想マシンにアクセスしてから処理を終了するまでの一連の動作を、複数の制御信号が関連するコールとして管理し、前記コールに対するオブジェクトとして1以上の長命コールオブジェクトを生成し、前記制御信号に対するオブジェクトとして1以上の短命制御信号オブジェクトを生成するアプリケーションであり、
    前記アプリケーションにおける、単位時間あたりのコール発生数と、前記コール1つあたりの制御信号数とを示したトラヒックモデル情報と、
    前記制御信号1つあたりの短命制御信号オブジェクト数と、前記コール1つあたりの長命コールオブジェクト数と、短命制御信号オブジェクト平均保留時間と、前記短命制御信号オブジェクトのサイズと、前記長命コールオブジェクトのサイズとを示したアプリケーションモデル情報と、
    前記スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間と、前記CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間とを示したGC動作パラメータ情報と、
    前記仮想マシンにおけるGC時のプログラム停止時間の目標値である目標停止時間との入力を受け付け、記憶部に記憶し、
    前記記憶部の、前記トラヒックモデル情報、前記アプリケーションモデル情報、前記GC動作パラメータ情報および前記目標停止時間を用いて、
    以下の式(1)および式(2)により前記NEW領域サイズを計算するチューニングパラメータ値計算部を備えることを特徴とする仮想マシンチューニング値計算装置。
    NEW領域サイズ=スカベンジGC周期T×単位時間あたりのコール発生数×(コール1つあたりの長命コールオブジェクト数×長命コールオブジェクトのサイズ+コール1つあたりの制御信号数×制御信号1つあたりの短命制御信号オブジェクト数×短命制御信号オブジェクトのサイズ)…式(1)
    ただし、
    スカベンジGC周期T={目標停止時間−(単位時間あたりのコール発生数×コール1つあたりの制御信号数×制御信号1つあたりの短命制御信号オブジェクト数×短命制御信号オブジェクト平均保留時間×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間+単位時間あたりのコール発生数×コール1つあたりの制御信号数×制御信号1つあたりの短命制御信号オブジェクト数×短命制御信号オブジェクト平均保留時間×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間)}/(単位時間あたりのコール発生数×コール1つあたりの長命コールオブジェクト数×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間+単位時間あたりのコール発生数×コール1つあたりの長命コールオブジェクト数×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間)…式(2)
  2. 前記チューニングパラメータ値計算部が、複数の前記仮想マシンからなるシステムにおける前記仮想マシンそれぞれの前記NEW領域サイズを計算するとき、
    前記仮想マシンそれぞれの、前記トラヒックモデル情報、前記アプリケーションモデル情報および前記GC動作パラメータ情報と、前記システム全体の目標停止時間を分配した前記仮想マシンそれぞれの目標停止時間とを用いて、
    前記式(1)および式(2)により前記仮想マシンそれぞれの前記NEW領域サイズを計算することを特徴とする請求項1に記載の仮想マシンチューニング値計算装置。
  3. 通信ノードに用いられる仮想マシンに設定するメモリのNEW領域サイズの範囲を計算する仮想マシンチューニング値計算装置であって、
    前記仮想マシンは、メモリ上のNEW領域のGCの方式としてスカベンジGCを採用し、前記メモリ上のOLD領域のGCの方式としてCMS(Concurrent Mark & Sweep)を採用する仮想マシンであり、
    前記仮想マシンに用いられるアプリケーションは、他の端末装置が前記仮想マシンにアクセスしてから処理を終了するまでの一連の動作を、複数の制御信号が関連するコールとして管理し、前記コールに対するオブジェクトとして1以上の長命コールオブジェクトを生成し、前記制御信号に対するオブジェクトとして1以上の短命制御信号オブジェクトを生成するアプリケーションであり、
    前記アプリケーションにおける、前記単位時間あたりのコール発生数と、前記コール1つあたりの制御信号数とを示したトラヒックモデル情報と、
    前記制御信号1つあたりの短命制御信号オブジェクト数と、前記コール1つあたりの長命コールオブジェクト数と、短命制御信号オブジェクト平均保留時間と、前記短命制御信号オブジェクトのサイズと、前記長命コールオブジェクトのサイズとを示したアプリケーションモデル情報と、
    前記スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間と、前記CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間とを示したGC動作パラメータ情報と、
    前記仮想マシンにおけるGC時のプログラム停止時間の目標値である目標停止時間と、
    前記仮想マシンにおける稼動率の目標値との入力を受け付け、記憶部に記憶し、
    前記記憶部の、前記トラヒックモデル情報、前記アプリケーションモデル情報、前記GC動作パラメータ情報、前記目標停止時間および前記稼動率の目標値を用いて、
    以下の式(3)〜式(7)により前記NEW領域サイズの範囲を計算するチューニングパラメータ値計算部を備えることを特徴とする仮想マシンチューニング値計算装置。
    目標停止時間>スカベンジGC停止時間t1+リマーク停止時間t2…式(3)
    スカベンジGC周期T>短命制御信号オブジェクト平均保留時間…式(4)
    スカベンジGC周期T/(スカベンジGC周期T+スカベンジGC停止時間t1)>稼動率の目標値…式(5)
    ただし、
    スカベンジGC停止時間t1=(単位時間あたりのコール発生数×コール1つあたりの制御信号数×制御信号1つあたりの短命制御信号オブジェクト数×短命制御信号オブジェクト平均保留時間+スカベンジGC周期T×単位時間あたりのコール発生数×コール1つあたりの長命コールオブジェクト数)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間…式(6)
    リマーク停止時間t2=(単位時間あたりのコール発生数×コール1つあたりの制御信号数×制御信号1つあたりの短命制御信号オブジェクト数×短命制御信号オブジェクト平均保留時間+スカベンジGC周期×単位時間あたりのコール発生数×コール1つあたりの長命コールオブジェクト数)×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間…式(7)
  4. 通信ノードに用いられる仮想マシンに設定するメモリのNEW領域サイズを計算する仮想マシンチューニング値計算方法であって、
    前記仮想マシンは、メモリ上のNEW領域のGC(ガベージコレクション)の方式としてスカベンジ方式を採用し、前記メモリ上のOLD領域のGCの方式としてCMS(Concurrent Mark & Sweep)を採用する仮想マシンであり、
    前記仮想マシンに用いられるアプリケーションは、他の端末装置が前記仮想マシンにアクセスしてから処理を終了するまでの一連の動作を、複数の制御信号が関連するコールとして管理し、前記コールに対するオブジェクトとして1以上の長命コールオブジェクトを生成し、前記制御信号に対するオブジェクトとして1以上の短命制御信号オブジェクトを生成するアプリケーションであり、
    前記NEW領域サイズを計算する仮想マシンチューニング値計算装置が、
    前記アプリケーションにおける、前記単位時間あたりのコール発生数と、前記コール1つあたりの制御信号数とを示したトラヒックモデル情報と、
    前記制御信号1つあたりの短命制御信号オブジェクト数と、前記コール1つあたりの長命コールオブジェクト数と、短命制御信号オブジェクト平均保留時間と、前記短命制御信号オブジェクトのサイズと、前記長命コールオブジェクトのサイズとを示したアプリケーションモデル情報と、
    前記スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間と、前記CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間とを示したGC動作パラメータ情報と、
    前記仮想マシンにおけるGC時のプログラム停止時間の目標値である目標停止時間との入力を受け付け、記憶部に記憶するステップと、
    前記記憶部の、前記トラヒックモデル情報、前記アプリケーションモデル情報、前記GC動作パラメータ情報および前記目標停止時間を用いて、
    以下の式(1)および式(2)により前記NEW領域サイズを計算するステップとを実行することを特徴とする仮想マシンチューニング値計算方法。
    NEW領域サイズ=スカベンジGC周期T×(単位時間あたりのコール発生数×コール1つあたりの長命コールオブジェクト数×長命コールオブジェクトのサイズ+単位時間あたりのコール発生数×コール1つあたりの制御信号数×制御信号1つあたりの短命制御信号オブジェクト数×短命制御信号オブジェクト平均保留時間×短命制御信号オブジェクトのサイズ)…式(1)
    ただし、
    スカベンジGC周期T={目標停止時間−(単位時間あたりのコール発生数×コール1つあたりの制御信号数×制御信号1つあたりの短命制御信号オブジェクト数×短命制御信号オブジェクト平均保留時間×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間+単位時間あたりのコール発生数×コール1つあたりの制御信号数×制御信号1つあたりの短命制御信号オブジェクト数×短命制御信号オブジェクト平均保留時間×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間)}/(単位時間あたりのコール発生数×コール1つあたりの長命コールオブジェクト数×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間+単位時間あたりのコール発生数×コール1つあたりの長命コールオブジェクト数×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間)…式(2)
  5. 通信ノードに用いられる仮想マシンに設定するメモリのNEW領域サイズの範囲を計算する仮想マシンチューニング値計算方法であって、
    前記仮想マシンは、メモリ上のNEW領域のGC(ガベージコレクション)の方式としてスカベンジGCを採用し、前記メモリ上のOLD領域のGCの方式としてCMS(Concurrent Mark & Sweep)を採用する仮想マシンであり、
    前記仮想マシンに用いられるアプリケーションは、他の端末装置が前記仮想マシンにアクセスしてから処理を終了するまでの一連の動作を、複数の制御信号が関連するコールとして管理し、前記コールに対するオブジェクトとして1以上の長命コールオブジェクトを生成し、前記制御信号に対するオブジェクトとして1以上の短命制御信号オブジェクトを生成するアプリケーションであり、
    前記NEW領域サイズの範囲を計算する仮想マシンチューニング値計算装置が、
    前記アプリケーションにおける、前記単位時間あたりのコール発生数と、前記コール1つあたりの制御信号数とを示したトラヒックモデル情報と、
    前記制御信号1つあたりの短命制御信号オブジェクト数と、前記コール1つあたりの長命コールオブジェクト数と、短命制御信号オブジェクト平均保留時間と、前記短命制御信号オブジェクトのサイズと、前記長命コールオブジェクトのサイズとを示したアプリケーションモデル情報と、
    前記スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間と、前記CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間とを示したGC動作パラメータ情報と、
    前記仮想マシンにおけるGC時のプログラム停止時間の目標値である目標停止時間と、
    前記仮想マシンにおける稼動率の目標値との入力を受け付け、記憶部に記憶するステップと、
    前記記憶部の、前記トラヒックモデル情報、前記アプリケーションモデル情報、前記GC動作パラメータ情報、前記目標停止時間および前記稼動率の目標値を用いて、
    以下の式(3)〜式(7)により前記NEW領域サイズの範囲を計算するステップとを実行することを特徴とする仮想マシンチューニング値計算方法。
    目標停止時間>スカベンジGC停止時間t1+リマーク停止時間t2…式(3)
    スカベンジGC周期T>短命制御信号オブジェクト平均保留時間…式(4)
    スカベンジGC周期T/(スカベンジGC周期T+スカベンジGC停止時間t1)>稼動率の目標値…式(5)
    ただし、
    スカベンジGC停止時間t1=(単位時間あたりのコール発生数×コール1つあたりの制御信号数×制御信号1つあたりの短命制御信号オブジェクト数×短命制御信号オブジェクト平均保留時間+スカベンジGC周期T×単位時間あたりのコール発生数×コール1つあたりの長命コールオブジェクト数)×スカベンジGCにおけるNEW領域のオブジェクト1つあたりのマークおよびコピー時間…式(6)
    リマーク停止時間t2=(単位時間あたりのコール発生数×コール1つあたりの制御信号数×制御信号1つあたりの短命制御信号オブジェクト数×短命制御信号オブジェクト平均保留時間+スカベンジGC周期×単位時間あたりのコール発生数×コール1つあたりの長命コールオブジェクト数)×CMSにおけるOLD領域にコピーされたオブジェクト1つあたりのリマーク時間…式(7)
JP2012198427A 2012-09-10 2012-09-10 仮想マシンチューニング値計算装置および仮想マシンチューニング値計算方法 Expired - Fee Related JP5809613B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012198427A JP5809613B2 (ja) 2012-09-10 2012-09-10 仮想マシンチューニング値計算装置および仮想マシンチューニング値計算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012198427A JP5809613B2 (ja) 2012-09-10 2012-09-10 仮想マシンチューニング値計算装置および仮想マシンチューニング値計算方法

Publications (2)

Publication Number Publication Date
JP2014052954A true JP2014052954A (ja) 2014-03-20
JP5809613B2 JP5809613B2 (ja) 2015-11-11

Family

ID=50611355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012198427A Expired - Fee Related JP5809613B2 (ja) 2012-09-10 2012-09-10 仮想マシンチューニング値計算装置および仮想マシンチューニング値計算方法

Country Status (1)

Country Link
JP (1) JP5809613B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10652551B2 (en) 2011-09-09 2020-05-12 Lg Electronics Inc. Inter prediction method and apparatus therefor

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020099765A1 (en) * 2001-01-23 2002-07-25 Otis Allen J. Generational garbage collector with persistent object cache
JP2004133752A (ja) * 2002-10-11 2004-04-30 Fujitsu Ltd 世代gcを有するサーバ・システム
JP2004206644A (ja) * 2002-12-26 2004-07-22 Fujitsu Ltd ヒープサイズ自動最適化処理方法,ヒープサイズ自動最適化装置,そのプログラムおよびプログラム記録媒体
JP2007025914A (ja) * 2005-07-13 2007-02-01 Fujitsu Ltd 世代別ガベージコレクションプログラム
JP2009501384A (ja) * 2005-07-15 2009-01-15 ビーイーエイ システムズ, インコーポレイテッド 仮想マシン環境における予測可能な結果のガベージコレクションのためのシステム及び方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020099765A1 (en) * 2001-01-23 2002-07-25 Otis Allen J. Generational garbage collector with persistent object cache
JP2004133752A (ja) * 2002-10-11 2004-04-30 Fujitsu Ltd 世代gcを有するサーバ・システム
JP2004206644A (ja) * 2002-12-26 2004-07-22 Fujitsu Ltd ヒープサイズ自動最適化処理方法,ヒープサイズ自動最適化装置,そのプログラムおよびプログラム記録媒体
JP2007025914A (ja) * 2005-07-13 2007-02-01 Fujitsu Ltd 世代別ガベージコレクションプログラム
JP2009501384A (ja) * 2005-07-15 2009-01-15 ビーイーエイ システムズ, インコーポレイテッド 仮想マシン環境における予測可能な結果のガベージコレクションのためのシステム及び方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10652551B2 (en) 2011-09-09 2020-05-12 Lg Electronics Inc. Inter prediction method and apparatus therefor
US11082704B2 (en) 2011-09-09 2021-08-03 Lg Electronics Inc. Inter prediction method and apparatus therefor

Also Published As

Publication number Publication date
JP5809613B2 (ja) 2015-11-11

Similar Documents

Publication Publication Date Title
US10476949B2 (en) Predictive autoscaling in computing systems
US8819653B2 (en) Automated improvement of executable applications based on evaluating independent execution heuristics
KR101814560B1 (ko) 가상 머신 마이그레이션 관리 방법, 장치, 및 시스템
RU2015114568A (ru) Автоматизированное профилирование использования ресурса
WO2018072408A1 (zh) 一种内存分析方法、装置、系统以及计算设备
CN106775936B (zh) 一种虚拟机的管理方法及装置
JP2019512126A (ja) 機械学習システムをトレーニングする方法及びシステム
JP6558374B2 (ja) スケール数推定装置、スケール数管理システム、スケール数推定方法、スケール数管理方法、および、コンピュータ・プログラム
US9471383B2 (en) Task allocation in a computing environment
US9742684B1 (en) Adaptive service scaling
CN110134490B (zh) 虚拟机动态迁移方法、设备及存储介质
JP2019215847A (ja) バッファオーバーフローの低減
Huang et al. NTPT: On the end-to-end traffic prediction in the on-chip networks
JP5809613B2 (ja) 仮想マシンチューニング値計算装置および仮想マシンチューニング値計算方法
US9769022B2 (en) Timeout value adaptation
CN103942082A (zh) 一种消除冗余的内存访问操作的编译优化方法
CN106598699B (zh) 一种虚拟机的管理方法及装置
JP5809612B2 (ja) 仮想マシン停止時間予測装置およびプログラム停止時間予測値計算方法
CN116932224A (zh) 大数据函数资源消耗评估方法及装置
US11886901B2 (en) VM performance guaranteeing system and VM performance guaranteeing method
Jadad et al. A cloud-side decision offloading scheme for mobile cloud computing
CN113672489B (zh) 超级计算机的资源性能等级确定方法及设备
CN107769987B (zh) 一种报文转发性能评估方法和装置
JP2008250838A (ja) ソフトウェア生成装置、方法、およびプログラム
JP6600250B2 (ja) マルチコアcpuを有するパケット転送装置の制御装置及びプログラム

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20140502

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140528

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141022

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150623

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150817

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150911

R150 Certificate of patent or registration of utility model

Ref document number: 5809613

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees