JP2008269578A - 競合部分処理検出方法、装置及びコンピュータプログラム - Google Patents

競合部分処理検出方法、装置及びコンピュータプログラム Download PDF

Info

Publication number
JP2008269578A
JP2008269578A JP2008049366A JP2008049366A JP2008269578A JP 2008269578 A JP2008269578 A JP 2008269578A JP 2008049366 A JP2008049366 A JP 2008049366A JP 2008049366 A JP2008049366 A JP 2008049366A JP 2008269578 A JP2008269578 A JP 2008269578A
Authority
JP
Japan
Prior art keywords
partial
processing
transaction
processes
combination
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
JP2008049366A
Other languages
English (en)
Other versions
JP5056479B2 (ja
Inventor
Takashi Horikawa
隆 堀川
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 JP2008049366A priority Critical patent/JP5056479B2/ja
Priority to US12/053,641 priority patent/US9081605B2/en
Publication of JP2008269578A publication Critical patent/JP2008269578A/ja
Application granted granted Critical
Publication of JP5056479B2 publication Critical patent/JP5056479B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】 複数のトランザクションを並列処理するコンピュータシステムにおいて、互いに競合する部分処理を特定する競合部分処理検出方法を提供する。
【解決手段】 複数の部分処理からなる複数のトランザクション処理の並列処理を行う時に、まず、トランザクション処理間に競合が発生しない並列処理時における複数のトランザクション処理の部分集合の組み合わせのそれぞれに対して第1の指標値を計測する。次に、トランザクション処理間に競合が発生する並列処理時における複数のトランザクション処理の部分集合の組み合わせのそれぞれに対して第2の指標値を計測する。そして、第1及び第2の指標値に基づいて複数のトランザクション処理における競合が発生する部分処理の組み合わせを検出する。
【選択図】 図1

Description

本発明は、サーバにおける複数の処理の競合する部分の特定に関する。特に、本発明は、サーバにおいて複数のトランザクションを同時に処理して競合が発生したときに、競合箇所を特定する技術に関する。
第一の関連する技術として、非特許文献1に記載されている技術がある。この第一の関連技術は、複数のトランザクションを同時に処理するサーバの性能を評価する技術である。第一の関連技術では、1つのトランザクションの処理で使用されるサーバリソース(CPUやディスク)の使用時間という性能基礎データと、待ち行列網理論に基づく性能予測モデルとが使用される。これにより、第一の関連技術は、サーバが複数トランザクションを処理する際の性能(主には、トランザクションのレスポンス時間とサーバのスループットの関係)の見積りを行う。
また、第二の関連技術として、非特許文献2に記載されている技術がある。この第二の関連技術は、性能予測モデルとして性能シミュレータを使うものである。第二の関連技術は、第一の関連技術と同様、サーバリソースの使用時間に基づいて、複数トランザクションの処理能力の見積もりを出力する。
Takashi Horikawa, Performance Analysis of a Client−Server System Usi ng Queueing Networks: A Case Study, Int. Trans. Opl Res. Vol. 4, No. 3, pp. 199−09, 1997. http://www.hyperformix.com/Def ault.asp?Page=210 第一の関連技術及び第二の関連技術で使用されている性能予測モデルは、通常、次のような条件を前提として性能予測を行っている。
(1)サーバが単位時間に処理すべきトランザクション数が変化した場合でも、1つのトランザクションの処理で使用するサーバリソース時間は変化しない。
(2)複数のトランザクションの間で競合する部分は、入力データ(性能基礎データ)で示されているサーバリソースである。
トランザクションを処理するプログラムを含むサーバにおいて、これら(1)(2)の前提が成り立つ場合、性能予測モデルで得られる結果は、実際のサーバ性能を反映する。前記の結果の一例は、トランザクションのレスポンス時間とサーバのスループットの関係である。
しかし、(1)(2)の条件が成立しない場合、性能予測モデルを用いて得られる結果は実際の性能と一致しない。例えば、複数CPUを搭載したサーバがトランザクション処理中にクリティカルセクションを持つプログラムを実行したときの性能が、性能予測モデルに基づいて予測される場合がある。この場合、実際の性能よりも高い性能が予測される。つまり、実際の性能が、性能予測モデルに基づいた予測された性能よりも悪い。クリティカルセクションは、あるトランザクション処理プログラム中のセッションと他のトランザクション処理プログラム中のセッションとで同時には実行できないセッションである。
性能予測モデルによる予測される性能と実際の性能とが一致しない状況の例が説明される。図22には、4つのCPUを備えるサーバが4つのトランザクションのプロセス1〜4を同時に開始したときの処理の経過が図示されている。トランザクション処理を行うためCPUにて実行されるプログラム(以下トランザクション処理プログラムと記す)は、他の処理、同時実行可能な処理及び排他制御が必要な処理から構成される。排他制御が必要な処理は、トランザクション処理中にスピンロック[spin lock]により排他制御されてもよい。排他制御が必要な処理は、クリティカルセクション処理である。4つのCPUのうち、1つのCPUが、クリティカルセクション処理の実行権を獲得する。その他の3つのCPUはビジーウェイト(busy wait)を行う。その間は、上記3つのCPUはトランザクション処理を行うことはできない。
図22に示されるように、プロセス1から4において、それぞれクリティカルセッションを含むトランザクション処理が実行される。それぞれのトランザクション処理は3単位のCPU時間が必要する。プロセス1では時刻1から時刻2にかけてクリティカルセクション処理が実行されている。プロセス2では、時刻1から時刻2にかけてビジーウェイトか行われている。そして、プロセス2では、時刻2から時刻3にかけてクリティカルセクション処理が実行されている。プロセス3及び4では、クリティカルセクション処理が始まるのはそれぞれ時刻3及び4からである。プロセス1では、1個のトランザクションを処理するために必要なCPU時間は3単位である。プロセス2、3及び4では、同様のトランザクション処理をするためにそれぞれ4、5及び6単位のCPU時間が必要とされる。4つのCPUでトランザクション処理を終了するために必要なCPU時間の平均は、4.5単位となる。このため、クリティカルセクション処理を含まないトランザクションを処理する場合と比較して、1個のトランザクションを処理するために必要なCPU時間が長くなる。
一般に、排他処理が必要な部分は、トランザクション処理の全体にわたって発生しているのではない。トランザクション処理は、複数の部分処理からなる一連の処理である。このトランザクション処理の一部の処理の間で、排他処理が必要な部分が発生することが多い。そこで、一部の排他処理が必要な部分と他の処理との競合による影響を軽減する方法、または、一部の排他処理が必要な部分と他の処理との競合を解消する方法が望まれる。これにより、予測した処理時間と実際の処理時間との不一致が解消される。また、性能モデルによる予測結果通りの性能が発揮される。そこで、これらを実現するためには、競合が発生する部分処理の組み合わせが特定される必要がある。
しかし、競合する部分処理の組み合わせを特定する方法が、従来存在しなかった。従来は、高度な知識を持つ熟練技術者が、競合する部分処理を特定するため、種々の測定ツールを組み合わせてサーバの動作を調べていた。そして、その結果と熟練技術者の経験に基づいて競合する部分処理の発生箇所を推定していた。従来の手法には、膨大な人的リソースが必要であるいう問題があった。また、従来の方法には、作業が長時間化しやすいという問題があった。さらに、競合発生の推定結果が必ずしも正確ではない。そして、競合発生箇所の推定を誤る場合があった。その結果、従来の手法には、以降に実施する対策作業が無駄になることがあるという問題があった。このように、部分処理間の競合箇所を特定する作業は、システム構築コストを引き上げる原因の一つとなっていた。
本発明は、このような状況に鑑みてなされたものである。本発明の目的は、複数のトランザクションを並列処理するコンピュータシステムにおいて、互いに競合する部分処理を特定する技術を提供することである。ここで、トランザクション処理を実行するプログラムは、トランザクション処理プログラムとする。さらに、一のトランザクション処理プログラムは、複数の部分処理からなるとする。
上述の課題を解決するため、本発明は次のような競合部分処理検出方法、システム及びコンピュータプログラムを提供する。
まず、本発明は、複数の部分処理からなる第1及び第2のトランザクション処理の並列処理を行う時に、前記第1及び前記第2のトランザクション処理における競合が発生する部分処理の組み合わせを検出する競合部分処理検出方法であって、前記第1及び第2のトランザクション処理間に競合が発生しない並列処理時における前記第1のトランザクション処理の部分集合と第2のトランザクション処理の部分集合との組み合わせのそれぞれに対して第1の指標値を計測し、前記第1及び第2のトランザクション処理間に競合が発生する並列処理時における前記第1のトランザクション処理の部分集合と第2のトランザクション処理の部分集合との組み合わせのそれぞれに対して第2の指標値を計測し、前記第1及び前記第2の指標値に基づいて前記第1及び前記第2のトランザクション処理における競合が発生する部分処理の組み合わせを検出する競合部分処理検出方法を提供する。
さらに、本発明は、前記第2の指標値が前記第1の指標値より大きい場合の部分処理の組み合わせを、前記第1及び前記第2のトランザクション処理における競合が発生する部分処理の組み合わせとして検出することを特徴とする競合部分処理検出方法を提供する。
また、本発明は、前記第1及び第2の指標値は、プロセッサ時間、プロセッサが実行した命令数または排他制御のためのロック獲得に失敗した数のいずれかであることを特徴とする競合部分処理検出方法を提供する。
本発明は、互いに複数の部分処理からなる複数のトランザクション処理プログラムについて、競合するトランザクション処理が並列処理されたときの処理時間と競合しないトランザクション処理が並列処理されたたときの処理時間とを比較する。そして、この結果の性能指標値の対応関係に基づいて競合する部分処理の発生箇所の特定を行う。これにより、複数のトランザクション処理プログラムの間で競合が発生した部分処理の組み合わせを検出する技術を提供することができる。これにより、競合する部分処理の特定を容易に行うことができる。このため、人的リソースを削減することが可能である。また、作業時間が短縮される。さらに、システム構築コストを削減することが可能である。
本発明の実施の形態の一例である競合部分処理特定システム1が説明される。図1を参照すると、競合部分処理特定システム1は、測定対象サーバ2、負荷発生部3、計測部4、集計部5、検出部6及び制御部7から構成される。
測定対象サーバ2は、プログラム制御により動作するサーバである。測定対象サーバ2は、トランザクション処理プログラムa、トランザクション処理プログラムb、OSカーネル(OS kernel)8及びトレーサ9から構成されている。測定対象サーバ2は2種類のトランザクションを処理する。2種類のトランザクションは、トランザクションa及びトランザクションbである。この実施の形態では2種類のトランザクションを用いて説明するが、トランザクションは3種類以上でもよい。トランザクションaの処理を実行するプログラムが、トランザクション処理プログラムaである。また、トランザクションbの処理を実行するプログラムが、トランザクション処理プログラムbである。測定対象サーバ2は、不図示の2個のCPUを搭載している。トランザクション処理プログラムa及びbは、それぞれ別のCPUで実行される。このとき、トランザクション処理プログラムa及びbは、一部が同時に実行されてもよい。以下では、トランザクション処理プログラムa及びbが、少なくとも一部が同時に実行される場合が説明される。トランザクション処理プログラムa及びbは、それぞれアプリケーションプローブ10を内蔵する。アプリケーションプローブ10は、トランザクション処理プログラムの実行状況に関する情報を出力する。OSカーネル8は、カーネルプローブ11を内蔵している。カーネルプローブ11は、OSカーネル8の実行状況に関する情報を出力する。以下、アプリケーションプローブ10及びカーネルプローブ11は、総称して単にプローブと記されている。
図2(a)にトランザクション処理プログラムaの処理フローが示される。トランザクション処理プログラムaは、部分処理100、200及び300から構成される。また、トランザクション処理の開始情報及び終了情報と各部分処理の切り替わり情報とが、トレーサ9に記録される。トレーサ9への情報の記録のため、アプリケーションプローブ10はトランザクション処理開始情報及び終了情報を収集する。さらに、アプリケーションプローブ10は、各部分処理の切り替わり情報を収集する。図2(a)において、アプリケーションプローブとして、ApProbe01、ApProbe12、ApProbe23及びApProbe30が挙げられている。
また、図2(b)に、トランザクション処理プログラムbの処理フローが示される。トランザクション処理プログラムbは、部分処理400、500及び600から構成される。図2(a)と同様に、アプリケーションプローブ10により、トランザクション処理開始情報及び終了情報と各部分処理の切り替わり情報とが収集される。図2(b)において、アプリケーションプローブとして、ApProbe04、ApProbe45、ApProbe56及びApProbe60が挙げられている。
OSカーネル8は、複数のプログラムの並行実行(マルチプロセス)をサポートするオペレーティングシステムのカーネルである。OSカーネル8は、負荷発生部3からトランザクション処理要求を受け取る。OSカーネル8は、受け取ったトランザクション処理を適切なトランザクション処理プログラムに渡して、処理を行う。そして、OSカーネル8は、トランザクション処理結果をそのトランザクション処理の要求元に返す。OSカーネル8には、カーネルプローブ11が設置されている。カーネルプローブ11が設置してある部分の一例としては、OSカーネル内のプロセスの復帰(CPU使用開始・再開)とプロセスの退避(CPU使用中断・終了)処理を行なう部分である。カーネルプローブ11は、プロセスの復帰及び退避処理の実行状況に関する情報を出力する。
本発明において、トランザクション処理は、複数の部分処理からなる一連の処理である。本発明において、並行処理は、複数のトランザクション処理が並行して処理または実行されることである。CPUが1個であれば、並行処理は、見かけ上同時に複数のトランザクション処理が実行されることである。このとき、CPU時間が非常に短い単位時間に分割され、複数のトランザクション処理のそれぞれに対して順番に単位時間が割り当てられている。また、CPUが複数であれば、本発明における並列処理は、複数のトランザクション処理それぞれを別のCPUに割り当てて同時に実行することである。並行実行とマルチプロセスとは同様の意味である。
トレーサ9は、アプリケーションプローブ10及びカーネルプローブ11からプログラムの実行状況に関する情報を受け取る。さらに、トレーサ9は、受け取った情報を時系列データとして記録する。この時系列データはトレースデータと呼ばれる。トレーサ9は制御部7からのトレース収集開始・終了指示に基づいてトレースデータの収集を開始及び終了する。
負荷発生部3は、制御部7から送られる負荷発生指示に基づいて、測定対象サーバ2にトランザクションを送る。負荷発生指示には、例えば、指定された負荷量が含まれている。
計測部4は、制御部7からトレース計測指示を受け取る。その後、計測部4は、トレース計測指示に基づいて、トレーサ9からトレースデータを受け取り、トレースデータの計測を行う。そして、計測部4は、各部分処理で使用したCPU時間を求める。CPU時間を求める計測処理には、特開2006‐227999号公報に記載されている方法が用いられてもよい。計測部4は、トレースデータを計測処理に入力する。これにより、各部分処理で使用したCPU時間が求められる。図3には、トランザクション処理aとbの部分処理にかかるCPU時間(相対値)が示されている。図3におけるCPU時間は、トランザクション処理a及びbがそれぞれ単独で実行されたときの時間である。
集計部5は、計測部4から計測結果を受け取る。さらに、集計部5は、制御部7から負荷量を示す値を受け取る。集計部5は、計測結果及び負荷量を示す値を集計結果表として記録する。
検出部6は、制御部7から起動指示を受け取る。さらに、検出部6は、集計部5から集計結果表を受け取る。検出部6は、起動指示に基づいて検出を開始する。検出部6は、集計結果表に基づいて、トランザクション処理プログラムa及びbにおいて資源競合が発生した部分処理の組み合わせを検出する。そして、検出部6は、部分処理の組み合わせの検出結果をボトルネック検出結果として出力する。
制御部7は、トランザクション処理の競合が発生しない負荷量及びトランザクション処理の競合が発生する負荷量の2種類の負荷量のそれぞれについて、以下の(1)〜(5)の一連の処理の実行を指示する。
(1)制御部7は、負荷発生部3に対して負荷量を指定して負荷の発生を指示する。
(2)制御部7は、トレーサ9に対してトレースデータ収集の開始及び終了を指示する。
(3)制御部7は、計測部4に対してトレースデータの計測を指示する。
(4)制御部7は、集計部5に対し、負荷量を示す値を渡し、集計結果表の生成を指示する。
(5)制御部7は、検出部6に対し、集計結果表に基づいて、競合する部分処理の組み合わせを検出するように指示する。
また、本実施の形態の一例において、トランザクション処理の部分処理200と5は同時に実行することができないクリティカルセクションである。トランザクション処理の部分処理200と5の片方は、スピンロックにより排他制御されるものである。すなわち、別々のCPUが部分処理200と5の処理を行おうとした場合は、後から処理に入ろうとしたCPUは、スピンロックによる排他制御がされる。つまり、後から処理に入ろうとしたCPUは、先に処理を行っているCPUがクリティカルセクションの処理を完了するまで待つ。本実施の形態の一例では、事前に分かっていない部分処理200と5がクリティカルセクションによって競合していることが検出される。
実施例1が説明される。実施例1では、複数のCPUにより、複数のトランザクションが処理される。そして、複数のトランザクションにおいて、互いに競合している部分処理が特定される。
本実施例の競合部分処理特定システム1において、測定対象サーバ2に対して2種類の負荷がかけられている。本実施例の競合部分処理特定システム1は、2種類の負荷それぞれをかけたときの動作状況において採取されたトレースデータから各部分処理で使用したCPU時間を求める。そして、本実施例の競合部分処理特定システム1は、その結果からトランザクション中の競合している部分処理を特定する。以下に本実施例の競合部分処理特定システム1が詳しく説明される。また、図23に、本実施例のフローチャートが示される。
最初に、制御部7は、負荷発生部3に対し、トランザクション処理同士が競合しない負荷量の発生を指示する。トランザクション処理同士が競合しない状況の一例は、同時に1つのトランザクションしか処理しないような状況である。この場合、例えば、負荷発生部3は最初に1つのトランザクションを要求し、その応答が返ってきたら次のトランザクション要求を行う。このようにすると、トランザクション処理の競合は起きない状況が作られる。負荷発生部3は、制御部7から指示された負荷量及び頻度のトランザクション処理を測定対象サーバ2に要求する(S1)。測定対象サーバ2は、負荷発生部3から要求されたトランザクション処理を実行する(S2)。図4において、トランザクション処理同士が競合しないトランザクション処理を要求されたときの測定対象サーバ2の動作状況を示すトレースデータの一例が示される。また、図5には、図4のトレースデータをタイミングチャートとして表示したものが示される。ここでは、測定対象サーバ2は、CPU1とCPU2とを含む。CPU1は、トランザクションaの処理をトランザクション処理プログラムaにより実行する。また、CPU2は、トランザクションbの処理をトランザクション処理プログラムbにより実行する。さらに、ここでは、CPU1により実行される処理がプロセスaとされ、CPU2により実行される処理がプロセスbとされる。測定対象サーバ2の2個のCPUは、プロセスa及びプロセスbを並列して実行する。
測定対象サーバ2がトランザクションを処理しているとき、制御部7は、測定対象サーバ2内のトレーサ9に対してトレース収集開始を指示する(S3)。その後、測定対象サーバ2が予め決められている適切な数のトランザクション処理を実行した後、制御部7はトレース収集終了を指示する。また、制御部7は、トランザクション処理を実行する時間が経過したことにより収集終了を指示してもよい。これにより、トレース収集開始から終了までの間の各プログラムの実行状況に関する情報、すなわち、測定対象サーバ2の動作状況を示すトレースデータがトレーサ9内に蓄積される。
計測部4は、トランザクション処理プログラムの実行状況を計測する。まず、計測部4は、制御部7からトレース計測指示に基づいてトレースデータを読み出す。そして、計測部4は、トレースデータに基づいて、並列に実行されているプロセスaの部分処理とプロセスbの部分処理の組み合わせにより処理時間を分類する。さらに、計測部4は、各々の部分処理についての処理時間を求める。図5には、プロセスa−bの処理の組み合わせと各組み合わせに対応する処理時間が示されている。プロセスa−bの処理の組み合わせは、プロセスa及びプロセスbの部分処理の組み合わせを示している。ここで、「2−4」は、プロセスaの部分処理200とプロセスbの部分処理400とが並列して実行されていること示す。また、「1−0」は、プロセスaの部分処理100が単独で実行されており、プロセスbの部分処理は実行されていないことを示す。図6には、図5の実行状況、すなわちプロセスaとbの処理の組み合わせと実行時間の関係が表により示されている。図6において、各欄の値を列(縦)方向で合計は、プロセスaの各部分処理時間合計が表されている。また、行(横)方向で合計は、プロセスbの各部分処理時間合計が表されている。図5を見ると、ここでは、排他処理が必要である部分処理200と部分処理500との間の競合がない。従って、ここでは、各々の部分処理時間は、図3に示した値と同じになる。例えば、図5では、部分処理200と部分処理400とは並列して実行されているが、部分処理400は排他処理が必要な部分処理でないので、互いに競合していない。従って、部分処理200に使用されたCPU時間は、図3に示されるプロセスaを単独で実行した場合と、図5に示されるプロセスaとプロセスbとを同時に実行した場合とで同じである。どちらの場合であっても、部分処理200に使用されたCPU時間は0.9であり、部分処理400に使用されたCPU時間は1.0である。
トレースデータ採取中に、測定対象サーバ2が複数のトランザクションを実行すると、前記の計測結果は複数トランザクションの合計値となる。実行したトランザクション数は、トレースデータに記録されているアプリケーションプローブにより検出される。例えば、トランザクション処理開始情報の収集を行うApProbe01とApProbe04等の数から判明する。また、各トランザクションに含まれる部分処理の数もトレースデータに記録されているアプリケーションプローブにより検出される。例えば、終了情報と各部分処理の切り替わり情報の収集を行うApProbe12とApProbe23等の数から判明する。
本実施例では、計測部4は、複数トランザクションについての計測結果(合計値)と実行したトランザクション数を集計部5に送る。集計部5は、計測結果を受け取る(S5)。そして、集計部5は1トランザクション当たりの時間を求める。図6には、「プロセスaの各部分処理合計」と「プロセスbの各部分処理合計」とが示されている。
次に、制御部7は、負荷発生部3に対し、トランザクション処理同士が競合する負荷量の発生を指示する。負荷発生部3は、制御部7から指示された負荷量及び頻度のトランザクション処理を測定対象サーバ2に要求する(S6)。測定対象サーバ2は、負荷発生部3から要求されたトランザクション処理を実行する(S7)。そして、制御部7は、トレーサ9にトレース収集開始・終了指示を出す。トレーサ9は、測定対象サーバ2がトランザクション処理同士が競合するトランザクション処理を受けたときの動作状況のトレースデータを採取する(S8)。そして、制御部7は、計測部4にトレース計測指示を出す。計測部4は、トランザクション処理プログラムの実行状況を計測する(S9)。計測部4は制御部7からトレース計測指示に基づいてトレースデータを読み出し、トレースデータを分析する。
サーバ動作の例が図7と図8とに示される。図7において、プロセスaの部分処理200とプロセスbの部分処理500は排他処理が必要な部分処理である。従って、部分処理200と部分処理500との間で競合が発生する。図7において、プロセスbの部分処理400と部分処理500の間、時刻t24からt25の間の部分が斜線部で記されている。斜線部は、スピンロックを示す。プロセスaにおける部分処理200は、時刻t23から先に実行されている。プロセスbの部分処理500は、t24にて後から実行を開始している。従って、プロセスbの部分処理500は、スピンロックによりプロセスaの部分処理200が終了するt25まで処理開始を待たなければならない。図8では、プロセスbによる部分処理500がプロセスaの部分処理200より先に実行されている。プロセスbによる部分処理500が、時刻t33から実行されており、プロセスaの部分処理200はt34から実行されている。そこで、プロセスaの部分処理200は、スピンロックによりプロセスbの部分処理500が終了するt35まで処理の開始を待たさなければならない。
図9と図10とには、図6に示される競合のない場合と同様にして図7と図8とにおける実行状況が表で表されている。図9では、プロセスbの部分処理500の処理時間は、1.5になっている。図6において、CPU消費時間が競合のないときは、プロセスbの部分処理500の処理時間は1.2である。プロセスbの部分処理500の処理時間は、これは、プロセスbの部分処理500が、プロセスaの部分処理200との競合によりスピンロックされているためである。CPU消費時間が競合のあるときのプロセスbの部分処理500の処理時間は、CPU消費時間が競合のないときの処理時間に比べて大きくなっている。図9と同様に、図10では、プロセスaの部分処理200の処理時間が1.5であり、図6に示されるCPU消費時間が競合のないとき処理時間である0.9に比べて大きくなっている。これは、プロセスaの部分処理200が、プロセスbの部分処理500との競合によるスピンロックされているためである。
測定対象サーバ2が競合する複数のトランザクションを実行しており、トレーサ9がその複数のトランザクション処理のトレースデータを採取したとき、そのトレースデータには、図7や図8に示される競合が混在していると想定される。ここでは、そのトレースデータを計測して得られる結果は、図9と図10とに示した表の合計として表される。図9と図10に示した表の合計が、図11に示される。計測部4は、トランザクション処理同士が競合しない負荷量を測定対象サーバ2にかけたときと同様、図11に示される計測結果と実行したトランザクション数を集計部5に送る。集計部5は、計測結果を受け取る(S10)
集計部5では、図6に示されるトランザクション処理同士が競合しない負荷量が測定対象サーバ2で処理されたときの動作状況を計測した結果と図11に示されるトランザクション処理同士が競合する負荷量が測定対象サーバ2で処理されたときの動作状況を計測した結果を集計する(S11)。集計は、以下の手順で行われる。
まず、集計部5は、図11に対して次の(1)〜(3)の処理を実行する。そして、集計部5は、図12のようなテーブルを生成する。
(1)集計部5は、各部分処理合計の欄をトランザクション数で割って、1トランザクション当たりの処理時間の値を求める。上述の例では、トランザクションa及びトランザクションbの2つのトランザクションであるので、集計部5は各部分処理合計の欄の値を2で割る。
(2)集計部5は、(1)の結果の各部分処理合計の値と競合のないときの各部分処理の時間との差を求める。そして、集計部5は、求められた結果をプロセスaの各部分処理時間差の欄又はプロセスbの各部分処理時間差の欄に記入する。
(3)集計部5は、トランザクションa及びトランザクションbについて「処理なし(0)」となっている列と行を削除する。
(4)集計部5は、0でない値の入っている欄をマークを記入するする。図12では、一例として、○が記入されている。
次に、集計部5は、図12のテーブルにおいて、各部分処理時間差の欄がゼロでない要素(ここでは、部分処理200と部分処理500)の行と列でマークの入っている欄にこの値を加える。そして、集計部5は、図13に示されるテーブルを生成する処理を実行する。
具体的には、まず、集計部5は、プロセスaとプロセスbの部分処理の組み合わせを表す全要素の初期値が0の配列を用意する。そして、集計部5は、プロセスaの部分処理200の列においてマークの入った要素、すなわち、部分処理400、500、600の欄に0.3を加える。さらに、集計部5は、プロセスbの部分処理500の列においてマークの入った要素、すなわち、部分処理100、200、300の欄に0.15を加える。
集計部5は、この集計結果を検出部6に送る。検出部6は、集計結果を受け取る(S12)。検出部6は、配列の要素中で最も大きな値を持つ要素が競合する部分処理を示すものとして検出する。図13の例では、最も大きな値を持つ配列要素は部分処理200の列と部分処理500の行の交点である。従って、検出部6は、競合している処理は部分処理200と部分処理500であると検出する(S13)。
以上述べたとおり、本実施例の競合部分処理特定システムは、競合が発生していないとき測定対象サーバの動作のトレースデータと競合が発生しているときの測定対象サーバの動作のトレースデータとに基づいて、競合の原因となっている部分処理を検出することができる。
次に、本発明の実施例2が説明される。本実施例の機能ブロックの構成は、実施例1の競合部分処理特定システム1と同様である。従って、本実施例の機能ブロックの構成は、図1で示される。以下では、競合部分処理特定システム1と異なる点が説明される。
図2(a)にトランザクション処理プログラムaの処理フローが示される。トランザクション処理プログラムaは、部分処理100、200及び300から構成される。また、トランザクション処理の開始情報及び終了情報と各部分処理の切り替わり情報とが、トレーサ9に記録される。トレーサ9への情報の記録のため、アプリケーションプローブ10によりトランザクション処理開始情報及び終了情報と各部分処理の切り替わり情報とが収集される。図2(a)において、アプリケーションプローブとして、ApProbe01、ApProbe12、ApProbe23及びApProbe30が挙げられている。
また、図2(b)に、トランザクション処理プログラムbの処理フローが示される。トランザクション処理プログラムbは、部分処理400、5及び6から構成される。図2(a)と同様に、アプリケーションプローブ10により、トランザクション処理開始情報及び終了情報と各部分処理の切り替わり情報とが収集される。図2(b)において、アプリケーションプローブとして、ApProbe04、ApProbe45、ApProbe56及びApProbe60が挙げられている。
本実施例では、部分処理の開始および終了に着目して競合部分処理特定システム1の動作が説明される。例えば、ApProbe12により、部分処理100の終了と部分処理200の開始の2つ動作が検出される。本実施例では、ApProbe12は、まず、部分処理100の終了に対応する処理を検出し、その後、部分処理200の開始に対応する処理を検出する。
計測部4は、トレースデータから1イベントずつ読み込む。イベントは、トランザクションの開始や終了、部分処理の実行、部分処理の開始や終了等が含まれる。計測部4は、イベントに応じた操作を行う。例えば、計測部4は、各部分処理で使用したCPU時間を求めるための操作や、部分処理の開始や終了に対応する操作を行う。また、例えば、計測部4は、図14に示すような処理中部分処理リストを持っており、処理中部分処理リストの更新を行ってもよい。さらに、計測部4は、例えば図15に示すような集計結果リストを集計部5から受け取り、集計結果リストの更新を行ってもよい。
図14に示される処理中部分処理リストは、次の2つの部分処理を表すデータ構造である。
(1)あるイベントが発生した時点において、測定対象サーバ2が処理している部分処理
(2)各部分処理と並列に実行されている他の部分処理
トレースデータから読み込んだイベントに応じて、計測部4は、処理中処理リストに要素を追加・削除等を行う。
図15に示される集計結果リストは、各部分処理についての動作結果を表すデータ構造である。計測部4は、トレースデータからイベントを読み込んで計測操作をするときに、集計リストに対して、要素の追加や保持されている値に対する加算操作を行う。
計測部4がトレースデータから読み込むイベントが部分処理開始を示すイベントのとき、計測部4は次のような計測操作を行う。
(1)計測部4は、イベントの部分処理に対応する要素を、処理中部分処理リスト中に作成する。そして、計測部4は、その要素が持つ並列実行部分処理リストに、その時点の処理中部分処理リストに保持されている部分処理を加える(以下、開始操作1)。
(2)計測部4は、その時点の処理中部分処理リストに保持されている各部分処理が持つ並列実行部分処理リストに、開始イベントに関連する部分処理を繋ぐ(以下、開始操作2)。
(3)計測部4は、開始操作1で作成したリスト要素を処理中部分処理リストに加える(以下、開始操作3)。
また、計測部4がトレースデータから読み込むイベントが部分処理終了を示すイベントの場合、計測部4は次のような計測操作を行う。
(1)計測部4は、イベントの部分処理についての性能指標値を求める。例えば、この実施例では、計測部4は、CPU時間を求める(以下、終了操作1)。
(2)計測部4は、部分処理が持つ並列実行部分処理リストにある各要素(以下、他部分処理)について、集計結果中の部分処理終了のイベントにかかる部分処理における他部分処理欄の性能指標値に(1)で求めた部分処理についての性能指標値を加える。そして、他の部分処理の欄に(1)で求めた部分処理が存在しない場合は、計測部4は新たに他の部分処理の欄を作成する。更に、計測部4は、その回数欄の値に1を加える(以下、終了操作2)。
(3)計測部4は、処理中部分処理リストから部分処理終了のイベントにかかる部分処理の要素を消去する(以下、終了操作3)。
終了操作2において、その部分処理が持つ並列実行部分処理リストが空の場合は、「なし」の欄が操作対象となる。
計測部4による操作の具体例が、図4のイベント系列を用いて説明される。図4のイベント系列のタイミング図は図5に示される。図4のイベント系列を含むトレースデータが入力されたときの動作を以下に示す。行頭の()内のt11、t12、…、t18は、図5に記載の時刻を示す。以下、図16に示される集計結果の作成方法が説明される。
(t11)部分処理100の開始を意味するApProbe01が入力される。この時点では、処理中部分処理リストは空である。従って、開始操作1および開始操作2は行われない。そして、開始操作3により部分処理100が処理中部分処理リストに繋がれる。
(t12)ApProbe12が入力されると、部分処理100の終了についての操作が行われる。そして、部分処理200の開始についての操作が行われる。部分処理100の終了についての操作では、計測部4が、終了操作1により部分処理100のCPU時間を1.0と求める。
次に、終了操作2が行われる。ここで、処理中部分処理リスト中につながれた部分処理100の並列実行部分処理リストは空である。従って、集計結果において部分処理100に「なし」の欄が作成される。部分処理100の「なし」の欄の性能指標値に終了処理1で求めた1.0が加えられる。また、部分処理100の「なし」の欄の回数に1が加えらる。その後、終了操作3により、処理中部分処理リストから部分処理100の要素が削除される。
次に、部分処理200の開始操作が行われる。これは前記部分処理100の開始操作と同様である。部分処理200の開始操作の結果は、処理中部分処理リストに部分処理200が繋がれた状態である。また、このときの部分処理200が持つ並列実行部分処理リストは空となる。
(t13)部分処理400の開始を意味するApProbe04が入力される。開始操作1により、処理中部分処理リストに繋がれる要素である部分処理400の並列実行部分処理リストに部分処理200が繋がれる。開始操作2により、処理中部分処理リストに繋がれている部分処理200が持つ並列実行部分処理リストに部分処理400が繋がれる。
その後、開始操作3により、開始操作1で作成された部分処理400を示すリスト要素が処理中部分処理リストに繋がれる。ここで、処理中部分リストは以下の状態である。
(1)処理中部分処理リストには、部分処理400と部分処理200が繋がれている。
(2)処理中部分処理リスト中の部分処理400が持つ並列実行部分処理リストには、部分処理200が繋がれている。処理中部分処理リスト中の部分処理200が持つ並列実行部分処理リストには部分処理400が繋がれている。
(t14)部分処理200の終了と部分処理300の開始を意味するApProbe23が入力される。部分処理200の終了についての操作が行われる。その後、部分処理300の開始についての操作が行われる。部分処理200の終了についての操作では、計測部4が終了操作1により部分処理200のCPU時間を0.9と求める。
次に、終了操作2を行う。処理中部分処理リスト中につながれた部分処理200の並列実行部分処理リストには部分処理400が繋がれている。従って、集計結果中の部分処理200に「部分処理400」の欄が作成される。部分処理200の「部分処理400」の欄の性能指標値に終了処理1で求めた0.9が加えられる。さらに、部分処理200の「部分処理400」の欄の回数に1が加えられる。その後、終了操作3により、処理中部分処理リストから部分処理200の要素が削除される。
次に、部分処理300の開始操作が行われる。部分処理300の開始操作は、部分処理400の開始操作と同様である。操作の結果、処理中部分リストは以下の状態である。
(1)処理中部分処理リストにおいて、部分処理300と部分処理400とが繋がれている。
(2)処理中部分処理リスト中の部分処理400が持つ並列実行部分処理リストにおいて、部分処理400に部分処理300と部分処理200とが繋がれている。また、処理中部分処理リスト中の部分処理300が持つ並列実行部分処理リストにおいて、部分処理300に部分処理400が繋がれている。
なお、図14は、このときの処理中部分処理リスト及び実行部分処理リストの状態を示している。
(t15)部分処理400の終了と部分処理500の開始を意味するApProbe45が入力される。そして、部分処理400の終了についての操作が行われる。その後、部分処理500の開始についての操作が行われる。部分処理400の終了についての操作では、計測部4が終了操作1により部分処理400のCPU時間を1.0と求める。
次に、終了操作2が行われる。処理中部分処理リスト中につながれた部分処理400の並列実行部分処理リストには部分処理300と部分処理200とが繋がれている。従って、集計結果中の部分処理400に「部分処理300」と「部分処理200」の欄が作成される。部分処理400の「部分処理300」及び「部分処理200」の欄の性能指標値に終了処理1で求められた1.0が加えられる。また、部分処理400の「部分処理300」及び「部分処理200」の欄の回数に1が加えられる。その後、終了操作3により処理中部分処理リストから部分処理400の要素が削除される。この場合、集計結果内の複数欄に対して性能指標値と回数の加算操作が行われる。
次に、部分処理500の開始操作が行われる。部分処理500の開始操作は前記部分処理400や部分処理300の開始操作と同様である。操作の結果、処理中部分リストは以下の状態である。
(1)処理中部分処理リストには部分処理500と部分処理300とが繋がれている。
(2)処理中部分処理リスト中の部分処理500が持つ並列実行部分処理リストには、部分処理500に部分処理300が繋がれている。また、処理中部分処理リスト中の部分処理300が持つ並列実行部分処理リストには、部分処理300に部分処理500と部分処理400とが繋がれている。
上記の操作がApProbe60まで実行されると、集計結果リストは、図16に示すようになる。図17は、図16の結果を行列表示したものである。各行が集計結果の配下にある部分処理に対応している。各列が前記部分処理の配下にある他部分処理もしくは「なし」の欄に対応している。
以上、説明したアルゴリズムが、図7及び図8の動作をトレースしたデータに適用される。換言すると、図7及び図8の動作のトレースデータが計測部4に入力されるとき、図18及び図19に示す行列表がそれぞれ得られる。図18、図19および各部分処理が単独で1回動作した場合についての結果を合計したものが図20に示される。各部分処理が単独で1回動作した場合には、部分処理100〜600について、なしの欄のみに値が入力される。ここで、()内の数値は、性能指標値の平均値である。性能指標値の平均値は、性能指標値を回数で割ることにより求められる。本実施例では、この結果が検出部6に送られる。そして、検出部6は、以下の手順で競合している部分処理を検出する。
検出部6は、図20の表において、部分処理欄に値が入っている要素の平均値について「なし」欄との差をとる。その結果が図21に示される。そして、検出部6は、部分処理mの行と部分処理nの列が交わる点および部分処理nの行と部分処理mの列が交わる点の両方とも0以外の値が入っているm−nの組み合わせを探す。図21では、部分処理200と部分処理500との組み合わせが前記の条件に該当する。従って、検出部6は、部分処理200と部分処理500の間で競合が起きているという検出結果を出す。
以上述べたとおり、本実施例の競合部分処理特定システムは、競合が発生していないとき測定対象サーバの動作のトレースデータと競合が発生しているときの測定対象サーバの動作のトレースデータとに基づいて、競合の原因となっている部分処理を検出することができる。
更に、本実施例の競合部分処理特定システムは、3個以上の処理が並列して動作しているサーバから採取したトレースデータにも適用可能である。すなわち、本実施例の競合部分処理特定システムは、競合が発生していない状態と競合が発生している状態とを別個に測定・分析する必要はない。本実施例の競合部分処理特定システムは、個々の部分処理について並列に実行されていた部分処理を考慮しての集計操作が行う。
なお、本実施例の競合部分処理特定システムでは、検出部6による検出操作として、「なし」欄との差をとる方法が説明された。しかし、各行について性能指標値の平均値を求め、その平均値との差を調べる方法が用いられてもよい。その場合、検出部6は、差が正の値となっている要素が競合による性能指標値増加の影響を受けていると検出すればよい。また、本実施例の競合部分処理特定システムでは、性能指標値としてCPU時間が用いられる例が説明された。その他にも、性能指標値は、CPUで実行した命令数や排他制御のためのロック獲得に失敗した回数等、他の性能指標が使用されてもよい。
本発明の競合部分処理特定システムは、例えば、情報処理システムを構築する際の負荷テストに適用することが出来る。特に、情報処理システムにおいて複数のトランザクションを並列処理する際に発生する競合の原因となっている部分処理を効率的に発見するための測定・分析装置や、測定・分析のためのコンピュータプログラムに適用することが出来る。
本発明の実施の形態である競合部分処理検出システム1の機能ブロック図である。 トランザクション処理プログラムa及びbにおけるアプリケーションプローブと部分処理の関係を説明するためのフローチャートである。 各プロセスによりトランザクションが処理した部分処理の順番と、それぞれの部分処理で費やしたCPU時間との例を説明するための図である。 トランザクション処理同士が競合しない負荷をかけたときの測定対象サーバ2の動作状況を示すトレースデータの一例である。 図4のトレースデータを表示したタイミング図である。 図5の動作状況におけるプロセスaとbの部分処理の組み合わせとCPU時間との対応関係を示す表である。 トランザクション処理同士が競合する負荷をかけたときの測定対象サーバ2の動作状況を示すタイミング図の一例である。 トランザクション処理同士が競合する負荷をかけたときの測定対象サーバ2の動作状況を示すタイミング図の一例である。 図7の動作状況におけるプロセスaとbの部分処理の組み合わせとCPU時間との対応関係を示す表である。 図8の動作状況におけるプロセスaとbの部分処理の組み合わせとCPU時間との対応関係を示す表である。 図9及び10の表において、部分処理の組み合わせが同じ欄のCPU時間同士の和を対応する欄に納めた表である。 図11の表に対して集計部5が一部の処理を行った状態を説明するための表である。 図12の表に対して集計部5が更に処理を行った状態を説明するための表である。 処理中部分処理リストの例である。 集計結果リストの構造を説明するための図である。 集計結果リストの例である。 図16の結果を行列表示したものである。 部分処理の組み合わせと、CPU時間とその組み合わせを実行した回数とを示す表であり、図7の動作状況を計測部4が計測して生成した表である。 部分処理の組み合わせと、CPU時間とその組み合わせを実行した回数とを示す表であり、図8の動作状況を計測部4が計測して生成した表である。 図18及び19の表において、対応する部分処理の組み合わせ毎にCPU時間と回数の和を求め、CPU時間及び回数の和からCPU時間の平均値を求めて格納した表である。 図20の表において、部分処理の組み合わせの欄に格納されている平均値と、「なし」欄に格納されている平均値との差を格納した表である。 4つのCPUを備えるサーバが4つのトランザクション処理を同時に開始したときの処理の経過を示す図である。 本発明の実施の形態の動作を示すフローチャートの図である。
符号の説明
1 競合部分処理検出システム
2 測定対象サーバ
3 負荷発生部
4 計測部
5 集計部
6 検出部
7 制御部
8 OSカーネル
9 トレーサ
10 アプリケーションプローブ
11 カーネルプローブ

Claims (9)

  1. 複数の部分処理からなる第1及び第2のトランザクション処理の並列処理を行う時に、前記第1及び前記第2のトランザクション処理における競合が発生する部分処理の組み合わせを検出する競合部分処理検出方法であって、
    前記第1及び第2のトランザクション処理間に競合が発生しない並列処理時における前記第1のトランザクション処理の部分集合と第2のトランザクション処理の部分集合との組み合わせのそれぞれに対して第1の指標値を計測し、
    前記第1及び第2のトランザクション処理間に競合が発生する並列処理時における前記第1のトランザクション処理の部分集合と第2のトランザクション処理の部分集合との組み合わせのそれぞれに対して第2の指標値を計測し、
    前記第1及び前記第2の指標値に基づいて前記第1及び前記第2のトランザクション処理における競合が発生する部分処理の組み合わせを検出する競合部分処理検出方法。
  2. 前記第2の指標値が前記第1の指標値より大きい場合の部分処理の組み合わせを、前記第1及び前記第2のトランザクション処理における競合が発生する部分処理の組み合わせとして検出することを特徴とする請求項1に記載の競合部分処理検出方法。
  3. 前記第1及び第2の指標値は、プロセッサ時間、プロセッサが実行した命令数または排他制御のためのロック獲得に失敗した数のいずれかであることを特徴とする請求項1または2に記載の競合部分処理検出方法。
  4. 複数の部分処理からなる第1及び第2のトランザクション処理の並列処理を行う時に、前記第1及び前記第2のトランザクション処理における競合が発生する部分処理の組み合わせを検出する競合部分処理検出装置であって、
    前記第1及び第2のトランザクション処理間に競合が発生しない並列処理時における前記第1のトランザクション処理の部分集合と第2のトランザクション処理の部分集合との組み合わせのそれぞれに対して第1の指標値を計測し、前記第1及び第2のトランザクション処理間に競合が発生する並列処理時における前記第1のトランザクション処理の部分集合と第2のトランザクション処理の部分集合との組み合わせのそれぞれに対して第2の指標値を計測する指標値計測部と、
    前記第1及び前記第2の指標値に基づいて前記第1及び前記第2のトランザクション処理における競合が発生する部分処理の組み合わせを検出する競合部分処理検出部とを備えることを特徴とする競合部分処理検出装置。
  5. 前記競合部分処理検出部は、前記前記第2の指標値が前記第1の指標値より大きい場合の部分処理の組み合わせを、前記第1及び前記第2のトランザクション処理における競合が発生する部分処理の組み合わせとして検出することを特徴とする請求項4に記載の競合部分処理検出装置。
  6. 前記第1及び第2の指標値は、プロセッサ時間、プロセッサが実行した命令数または排他制御のためのロック獲得に失敗した数のいずれかであることを特徴とする請求項4または5に記載の競合部分処理検出装置。
  7. コンピュータに、複数の部分処理からなる第1及び第2のトランザクション処理の並列処理を行う時に、前記第1及び前記第2のトランザクション処理における競合が発生する部分処理の組み合わせを検出させる競合部分処理検出用プログラムであって、
    前記第1及び第2のトランザクション処理間に競合が発生しない並列処理時における前記第1のトランザクション処理の部分集合と第2のトランザクション処理の部分集合との組み合わせのそれぞれに対して第1の指標値を計測する第1指標値計測処理と、
    前記第1及び第2のトランザクション処理間に競合が発生する並列処理時における前記第1のトランザクション処理の部分集合と第2のトランザクション処理の部分集合との組み合わせのそれぞれに対して第2の指標値を計測する第2指標値計測処理と、
    前記第1及び前記第2の指標値に基づいて前記第1及び前記第2のトランザクション処理における競合が発生する部分処理の組み合わせを検出する競合部分処理検出処理とを含むことを特徴とする競合部分処理検出用プログラム。
  8. 前記競合部分処理検出処理において、前記第2の指標値が前記第1の指標値より大きい場合の部分処理の組み合わせを、前記第1及び前記第2のトランザクション処理における競合が発生する部分処理の組み合わせとして検出することを特徴とする請求項7に記載の競合部分処理検出方法。
  9. 前記第1及び第2の指標値は、プロセッサ時間、プロセッサが実行した命令数または排他制御のためのロック獲得に失敗した数のいずれかであることを特徴とする請求項7または8に記載の競合部分処理検出用プログラム。
JP2008049366A 2007-03-27 2008-02-29 競合部分処理検出方法、装置及びコンピュータプログラム Expired - Fee Related JP5056479B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008049366A JP5056479B2 (ja) 2007-03-27 2008-02-29 競合部分処理検出方法、装置及びコンピュータプログラム
US12/053,641 US9081605B2 (en) 2007-03-27 2008-03-24 Conflicting sub-process identification method, apparatus and computer program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007081366 2007-03-27
JP2007081366 2007-03-27
JP2008049366A JP5056479B2 (ja) 2007-03-27 2008-02-29 競合部分処理検出方法、装置及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2008269578A true JP2008269578A (ja) 2008-11-06
JP5056479B2 JP5056479B2 (ja) 2012-10-24

Family

ID=40048930

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008049366A Expired - Fee Related JP5056479B2 (ja) 2007-03-27 2008-02-29 競合部分処理検出方法、装置及びコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP5056479B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011104823A1 (ja) * 2010-02-23 2011-09-01 富士通株式会社 マルチコアプロセッサシステム、スレッド制御方法、およびスレッド制御プログラム
KR20190096837A (ko) * 2018-02-09 2019-08-20 한양대학교 산학협력단 충돌 페이지 리스트를 이용한 병렬 저널링 방법 및 그 장치
WO2020255519A1 (ja) * 2019-06-18 2020-12-24 日本電信電話株式会社 制御処理装置、制御処理方法および制御処理プログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006227999A (ja) * 2005-02-18 2006-08-31 Nec Corp ボトルネック検出システム、測定対象サーバ、ボトルネック検出方法およびプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006227999A (ja) * 2005-02-18 2006-08-31 Nec Corp ボトルネック検出システム、測定対象サーバ、ボトルネック検出方法およびプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011104823A1 (ja) * 2010-02-23 2011-09-01 富士通株式会社 マルチコアプロセッサシステム、スレッド制御方法、およびスレッド制御プログラム
JP5408330B2 (ja) * 2010-02-23 2014-02-05 富士通株式会社 マルチコアプロセッサシステム、スレッド制御方法、およびスレッド制御プログラム
US9311142B2 (en) 2010-02-23 2016-04-12 Fujitsu Limited Controlling memory access conflict of threads on multi-core processor with set of highest priority processor cores based on a threshold value of issued-instruction efficiency
KR20190096837A (ko) * 2018-02-09 2019-08-20 한양대학교 산학협력단 충돌 페이지 리스트를 이용한 병렬 저널링 방법 및 그 장치
KR102123616B1 (ko) 2018-02-09 2020-06-17 한양대학교 산학협력단 충돌 페이지 리스트를 이용한 병렬 저널링 방법 및 그 장치
WO2020255519A1 (ja) * 2019-06-18 2020-12-24 日本電信電話株式会社 制御処理装置、制御処理方法および制御処理プログラム

Also Published As

Publication number Publication date
JP5056479B2 (ja) 2012-10-24

Similar Documents

Publication Publication Date Title
JP4654707B2 (ja) ボトルネック検出システム、測定対象サーバ、ボトルネック検出方法およびプログラム
Lu et al. Log-based abnormal task detection and root cause analysis for spark
US9483378B2 (en) Method and system for resource monitoring of large-scale, orchestrated, multi process job execution environments
JP5978401B2 (ja) 分散システムにおいてユーザリクエストの実行を監視するための方法及びシステム
US8949800B2 (en) Time-based trace facility
US5193179A (en) Activity monitor system non-obtrusive statistical monitoring of operations on a shared bus of a multiprocessor system
US20040148152A1 (en) System performance prediction mechanism and method based on software component performance measurements
JP5353227B2 (ja) 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。
CN108153587B (zh) 一种针对大数据平台的慢任务原因检测方法
JP4996624B2 (ja) 検出装置、システム、プログラムおよび検出方法
JP6090327B2 (ja) ボトルネック検出装置、方法及びプログラム
CN107220121B (zh) 一种numa架构下沙箱环境测试方法及其系统
JPWO2014208139A1 (ja) 異常検出装置、制御方法、及びプログラム
US20160188441A1 (en) Testing multi-threaded applications
CN116089482A (zh) 分析大规模数据处理作业
JP5056479B2 (ja) 競合部分処理検出方法、装置及びコンピュータプログラム
US9081605B2 (en) Conflicting sub-process identification method, apparatus and computer program
Fournier et al. Analyzing blocking to debug performance problems on multi-core systems
CN109542341B (zh) 一种读写io监测方法、装置、终端及计算机可读存储介质
CN111459815A (zh) 一种实时计算引擎测试方法和系统
Saeed et al. Learning based memory interference prediction for co-running applications on multi-cores
Abrams A tool to aid in model development and validation
US20090077421A1 (en) Load test method and load test apparatus
US20230091197A1 (en) Automatic sensor trace validation using machine learning
JP2018036864A (ja) 電子制御装置、解析システム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20090513

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110113

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20110705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120612

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120716

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5056479

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees