JP6079071B2 - アプリケーション実行装置、方法及びプログラム - Google Patents
アプリケーション実行装置、方法及びプログラム Download PDFInfo
- Publication number
- JP6079071B2 JP6079071B2 JP2012198333A JP2012198333A JP6079071B2 JP 6079071 B2 JP6079071 B2 JP 6079071B2 JP 2012198333 A JP2012198333 A JP 2012198333A JP 2012198333 A JP2012198333 A JP 2012198333A JP 6079071 B2 JP6079071 B2 JP 6079071B2
- Authority
- JP
- Japan
- Prior art keywords
- time
- execution
- application
- timeout
- grace
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
前述した問題を解決するために、本発明のアプリケーション実行装置は、アプリケーションの実行時間を計測する実行時間収集部と、アプリケーション毎のタイムアウト時間、猶予時間および実行見込時間を保持する保持手段と、実行見込時間がタイムアウト時間より長く、猶予時間内にある場合、タイムアウト時間の判断を前記猶予時間を用いて行い、それ以外の場合は前記タイムアウト時間を用いて判断する実行判断手段と、を備える。
本発明の第1の実施形態の構成を、図1を用いて説明する。
実行見込時間は、実行時間収集部101が収集するアプリケーションそれぞれの実行時間履歴を統計処理をして得られる時間である。例えば実行時間履歴の直近N回の平均値を採用することが出来るがこれに限られない。図3に直近3回の平均値を実行見込時間とするときの具体例を示す。
第一の効果は、タイムアウト時間経過後、残りわずかな時間でアプリケーションの処理が完了する見込である場合、タイムアウトとはせずに該当の処理を継続するため、クライアント端末を操作しているユーザは待ち時間を少し延ばすだけで正常応答を受け取ることができることである。
本発明の第2の実施形態の構成を、図5を用いて説明する。
なおメソッドはライブラリ化され、複数のアプリケーションが利用するような形態であってもよい。
アプリケーションが結果を返却する前にタイムアウトとなりアプリケーションが実行を停止させられた場合は、そのときまでに結果を返却したメソッドについては実行時間が収集されるが、タイムアウトの後に実行される予定であったメソッドの実行時間が収集されない。またタイムアウトのときに実行中であったメソッドについては、実行時間履歴が残らないか、もしくはメソッドが呼び出されてからタイムアウトのときまでとする。
例えばアプリケーションがメソッドAを1回呼び出し、メソッドBを2回呼び出すように構成されている。メソッドAおよびBの実行見込時間は、それぞれのメソッドの実行時間履歴を統計処理して得られる時間であり、例えば直近N回の実行時間履歴の平均値などを用いても良い。その結果メソッドそれぞれの実行見込時間は1秒と2秒であるとする。そうするとアプリケーションの実行見込時間は、それぞれを乗じて得られる5秒となる。Nを3とした場合の具体例を図6に示す。
保持部102は、アプリケーションの区別なくメソッド単位の実行時間履歴を管理してもよい。そのときは複数のアプリケーションがひとつのメソッドを呼び出している場合には、当該メソッドの実行時間は、当該複数のアプリケーションの実行見込時間の基礎として用いられる。実行見込時間の算出がメソッド単位の実行時間履歴に基づくことにより、実行見込時間の算出精度の向上が期待できる。なぜならば当該履歴には全てのアプリケーションによるメソッドの実行時間が格納されているため、当該アプリケーションでタイムアウトが連続して起こり正常なアプリケーション単位の実行時間履歴が蓄積できない状況であっても、他のアプリケーションが呼び出したメソッドの実行時間履歴に基づいて実行見込時間を算出可能であるからである。
さらにアスペクトとは、ソフトウェア部品群に対して実行命令列の任意条件を満たす箇所において別のソフトウェア部品であるインタセプタが呼び出されることを定義するプログラム改変ルールである。インタセプタは任意のプログラムである。本実施形態におけるインタセプタは、メソッドの実行時間の計測及び実行時間収集部101への報告をする機能を有する。アスペクト処理系は定義されたアスペクトに基づき一括してインタセプタをアプリケーション全体にわたるソフトウェア部品に組み込むことができる。
アスペクトとは例えば「ある名前空間を対象に、任意の文字列をメソッド名に含むすべてのpublicメソッドの実行の開始においてインタセプタAを呼び出し、終了においてインタセプタBを呼び出す」といったものである。アスペクトの処理系はこれを解釈し個々のメソッドについて条件を満たすものを特定し、それぞれについてバイトコードトランスレーションを実施することで、上記アスペクトが対象アプリケーションにおいて組み込まれ、実際に実行されるようにしている。なお一度組み込んだアスペクトを外したり、変更したりすることも自由である。
本実施例において、アプリケーションを構成するメソッドの開始および終了に応じたアスペクトを適用し、アスペクトに基づいてインタセプタを組み込むことにより、メソッドの実行時間を測定することが出来る。
なおバイトコードトランスレーション技術は例えばJavassist(http://www.javassist.org)などが利用可能である。またアスペクトによるアプリケーションに対する一括のバイトコードトランスレーションはAspect−J(http://www.eclipse.org/aspectj/)などで利用可能である。
第1の実施形態による効果に加え、メソッド単位での実行時間履歴に基づいて実行見込時間を算出しているため、他のアプリケーションが呼び出したメソッドの実行時間履歴も活用でき、実行見込時間の算出の精度が向上する。
本発明の第3の実施形態の構成を、図9を用いて説明する。本実施形態のアプリケーション実行装置10は、第1の実施形態におけるバイトコードトランスレーション部105にかわりスタックトレース採取部106を有する。
第1および第2の実施形態における効果に加え、特別なバイトコードトランスレーションや、インタセプタ等を用いる必要が無い点で、システムへの影響が少ない。
Claims (10)
- アプリケーションの実行時間を計測する実行時間収集部と、
前記アプリケーション毎のタイムアウト時間、猶予時間および実行見込時間を保持する保持手段と、
前記アプリケーションが前記タイムアウト時間を経過した場合、前記アプリケーションの前記猶予時間と前記アプリケーションの前記実行見込時間とを比較し、前記猶予時間が上回る場合、タイムアウトの判断を前記猶予時間を用いて行い、それ以外の場合は前記タイムアウト時間を用いて判断する実行判断手段とを有するアプリケーション実行装置。 - 前記保持手段はさらに前記アプリケーションを構成するメソッドの情報と、前記メソッドそれぞれの実行履歴とを保持し、
前記実行見込時間は前記実行履歴の統計処理に基づいて算出される、
請求項1記載のアプリケーション実行装置。 - 前記メソッドはロード時に一時的に改変されることができるソフトウェア部品から構成され、
前記メソッドの実行が開始または終了するときに呼び出されて前記メソッドの前記実行時間を計測し前記保持手段に格納させるインタセプタを前記ソフトウェア部品に付加をするソフトウェア部品処理手段
をさらに備える請求項2記載のアプリケーション実行装置。 - 前記アプリケーションはスタックトレースが採取可能なシステムで実行され、
一定時間間隔で前記スタックトレースを採取して前記メソッドの実行時間を計測して保持手段格納させるスタックトレース採取部
をさらに有する、請求項2記載のアプリケーション実行装置。 - 実行時間収集部はアプリケーションの実行時間を計測し、
保持手段は前記アプリケーション毎のタイムアウト時間、猶予時間および実行見込時間を保持し、
前記アプリケーションが前記タイムアウト時間を経過した場合、前記アプリケーションの前記猶予時間と前記アプリケーションの前記実行見込時間とを比較し、前記猶予時間が上回る場合、タイムアウト時間の判断を前記猶予時間を用いて行い、それ以外の場合は前記タイムアウト時間を用いて判断する、
アプリケーション実行方法。 - 前記保持手段はさらに前記アプリケーションを構成するメソッドの情報と、前記メソッドそれぞれの実行履歴とを保持し、
前記実行見込時間は前記実行履歴の統計処理に基づいて算出される、
請求項5記載のアプリケーション実行方法。 - 前記メソッドはロード時に一時的に改変されることができるソフトウェア部品から構成され、
ソフトウェア部品処理手段は前記メソッドの実行が開始または終了するときに呼び出されて前記メソッドの前記実行時間を計測し前記保持手段に格納させるインタセプタを前記ソフトウェア部品に付加をする、
請求項6記載のアプリケーション実行方法。 - コンピュータに、
アプリケーションの実行時間を計測させ、
前記アプリケーション毎のタイムアウト時間、猶予時間および実行見込時間を保持させ、
前記アプリケーションが前記タイムアウト時間を経過した場合、前記アプリケーションの前記猶予時間と前記アプリケーションの前記実行見込時間とを比較させ、前記猶予時間が上回る場合、タイムアウト時間の判断を前記猶予時間を用いて行い、それ以外の場合は前記タイムアウト時間を用いて判断させる、
アプリケーション実行プログラム。 - コンピュータに、
さらに前記アプリケーションを構成するメソッドの情報と、前記メソッドそれぞれの実行履歴とを保持させ、
前記実行見込時間は前記実行履歴の統計処理に基づいて算出される、
請求項8記載のアプリケーション実行プログラム。 - 前記メソッドはロード時に一時的に改変されることができるソフトウェア部品から構成され、
コンピュータに、
前記メソッドの実行が開始または終了するときに呼び出されて前記メソッドの前記実行時間を計測し格納させるインタセプタを前記ソフトウェア部品に付加をさせる、
請求項9記載のアプリケーション実行プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012198333A JP6079071B2 (ja) | 2012-09-10 | 2012-09-10 | アプリケーション実行装置、方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012198333A JP6079071B2 (ja) | 2012-09-10 | 2012-09-10 | アプリケーション実行装置、方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014052939A JP2014052939A (ja) | 2014-03-20 |
JP6079071B2 true JP6079071B2 (ja) | 2017-02-15 |
Family
ID=50611342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012198333A Expired - Fee Related JP6079071B2 (ja) | 2012-09-10 | 2012-09-10 | アプリケーション実行装置、方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6079071B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7279401B2 (ja) * | 2019-02-21 | 2023-05-23 | 日本電気株式会社 | アプリケーション実行装置、方法及びプログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2908343B2 (ja) * | 1996-09-17 | 1999-06-21 | 日本電気ソフトウェア株式会社 | トランザクション処理システム |
JP2001022654A (ja) * | 1999-07-05 | 2001-01-26 | Toshiba Corp | 情報処理装置 |
JP4905974B2 (ja) * | 2007-03-30 | 2012-03-28 | 株式会社エヌ・ティ・ティ・データ | プログラムプロファイリング装置、プログラムプロファイリング方法、及びプログラム |
JP4968092B2 (ja) * | 2008-02-05 | 2012-07-04 | 日本電気株式会社 | ストール検出装置、ストール検出方法、及びストール検出プログラム |
-
2012
- 2012-09-10 JP JP2012198333A patent/JP6079071B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014052939A (ja) | 2014-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2021201512B2 (en) | Data stream processing language for analyzing instrumented software | |
Yadwadkar et al. | Selecting the best vm across multiple public clouds: A data-driven performance modeling approach | |
US7568028B2 (en) | Bottleneck detection system, measurement object server, bottleneck detection method and program | |
US20210184947A1 (en) | Automatic capture of detailed analysis information based on remote server analysis | |
JP5679256B2 (ja) | 分散タスクシステムおよび分散タスク管理方法 | |
US7702783B2 (en) | Intelligent performance monitoring of a clustered environment | |
US8943196B2 (en) | Programmatically determining an execution mode for a request dispatch utilizing historic metrics | |
JP4841982B2 (ja) | 性能情報収集方法、装置、及びプログラム | |
US8347021B1 (en) | Storing application messages | |
US8090752B2 (en) | Monitoring memory consumption | |
KR20120026046A (ko) | 애플리케이션 효율 엔진 | |
US20070300230A1 (en) | Thread priority based on object creation rates | |
US9311598B1 (en) | Automatic capture of detailed analysis information for web application outliers with very low overhead | |
WO2020232871A1 (zh) | 一种微服务依赖分析方法及装置 | |
US10534685B2 (en) | Application monitoring | |
JP6995146B2 (ja) | 適応アプリケーションの性能分析 | |
JP6079071B2 (ja) | アプリケーション実行装置、方法及びプログラム | |
van Riet et al. | Optimize along the way: An industrial case study on web performance | |
US20180219752A1 (en) | Graph search in structured query language style query | |
CN107729208A (zh) | 一种输变电设备监测装置深度监控系统 | |
US6725363B1 (en) | Method for filtering instructions to get more precise event counts | |
US9317262B2 (en) | Identification of code synchronization points | |
US9015718B1 (en) | Identifying task instances that interfere with processor performance | |
JP2006065430A (ja) | 仮想計算機性能変更方法 | |
WO2013129061A1 (ja) | 同時接続数制御システム、同時接続数制御サーバ、同時接続数制御方法および同時接続数制御プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150824 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160630 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160712 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160817 |
|
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: 20161220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170102 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6079071 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |