WO2004075061A1 - System performance measurement/analysis device - Google Patents

System performance measurement/analysis device Download PDF

Info

Publication number
WO2004075061A1
WO2004075061A1 PCT/JP2004/002011 JP2004002011W WO2004075061A1 WO 2004075061 A1 WO2004075061 A1 WO 2004075061A1 JP 2004002011 W JP2004002011 W JP 2004002011W WO 2004075061 A1 WO2004075061 A1 WO 2004075061A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing unit
performance
processing units
application
analyzing
Prior art date
Application number
PCT/JP2004/002011
Other languages
French (fr)
Japanese (ja)
Inventor
Myongho Ahn
Masami Takai
Atsuko Yamada
Original Assignee
Intellasset, Inc.
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 Intellasset, Inc. filed Critical Intellasset, Inc.
Publication of WO2004075061A1 publication Critical patent/WO2004075061A1/en

Links

Classifications

    • 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet

Definitions

  • the present invention optimizes the cooperative operation of a system by measuring and analyzing the operating performance of the entire system in a system environment configured by a network, a plurality of servers and software connected by a network. On how to do. Background art
  • Patent Literature 1 and Patent Literature 2 discuss conventional approaches of a system for monitoring the load status of IT resources.
  • Patent Document 3 discloses a system for monitoring the performance of software without depending on the language.
  • Patent Document 4 discloses a method of visualizing and displaying a software configuration, and
  • Patent Document 5 discloses a method of analyzing a source code.
  • the application is divided into smaller processing units, the performance of each processing unit is evaluated, and performance degradation occurs in both the processing unit and the hardware resources on which it runs. Factors need to be identified. Disclosure of the invention
  • the system performance measurement / analysis apparatus of the present invention is installed on a plurality of servers connected via a network, and a part or all of the plurality of applications cooperate in a virtual machine environment. Is a system performance measurement and analysis device that measures and analyzes the results and optimizes the cooperative operation based on the results.
  • Application analysis means for analyzing and extracting processing units constituting the application, and analyzing and acquiring a calling relationship between the processing units;
  • Operating performance measuring means for measuring the operating performance of the processing unit
  • Hardware resource specifying means for analyzing and acquiring a correspondence relationship between the processing unit and hardware resources used by the processing unit;
  • Display means for displaying the calling relationship between the processing units, the operation performance of the processing unit, and the hardware resources on which the processing unit operates together this is referred to as an object / destruction diagram.
  • FIG. 1 is a diagram showing a configuration of .NET which is one example of a virtual machine environment.
  • Figure 2 shows the concept of generating a binary file from source code and restoring source code from the binary file.
  • FIG. 3 shows the flow of the source code restoration process.
  • Figure 4 shows the flow of the process of the preparation process of the lazy worker method.
  • FIG. 5 is a flow chart of the lazy generation process.
  • FIG. 6 is a diagram showing a system configuration of the device according to the embodiment of the present invention.
  • FIG. 7 is a conceptual diagram of a functional configuration of software according to the embodiment of the present invention.
  • FIG. 8 is a flowchart of a process for measuring the performance of a smart object.
  • FIG. 9 is a flowchart of a process of collecting the object arrangement information.
  • Figure 10 shows a display example of an object deployment diagram (flow type).
  • Figure 11 is a display example of an object deployment diagram (tree type).
  • a system constituted by a plurality of hardware and software (applications) connected via a network, that is, hardware resources (computers such as servers and clients, networks, and the like)
  • hardware resources computers such as servers and clients, networks, and the like
  • the system environment consists of a CPU, memory, hard disk, network card, etc.
  • software resources applications that are distributed and executed on hardware resources.
  • some or all of the application will run under a virtual machine environment (CLR on .NET platform, JVM on J2EE platform, etc.).
  • VM virtual machine
  • VM virtual machine
  • VMs can be used include Microsoft's .NET and J2EE proposed by Sun Microsystems.
  • a method (flow chart) based on a .NET environment will be described. Similar methods can be easily devised and implemented in other VM environments based on the methods described in this specification.
  • Figure 1 shows the structure of the .NET framework.
  • the inside of the .NET framework consists of three main components.
  • CLR Common Language Runtime
  • VM Engine
  • ASP .NET uses Web Services and Web applications, excluding Windows applications Class library to implement.
  • Applications on the .NET framework are coded using the class libraries provided by the .NET framework.
  • the generated source code is converted into executable code of the application or component by the compiler, and the generated code is not native code depending on specific CPU instructions, but managed code and managed code. This is the intermediate code called.
  • the managed code is converted to the final native code by the CLR JIT compiler and executed.
  • the CLR requires managed code to have two main pieces of information:
  • MSIL Microsoft Intermediate Language (middle j): Executable code
  • Metadata Information about MSIL
  • the software of the system whose performance is to be measured is analyzed, the processing units (objects) constituting the software are extracted, and the relationship between the processing units is clarified and shown in the figure.
  • This figure is called the call graph.
  • the operation performance of each processing unit (time required for execution, communication time between each processing unit, etc.) is measured. This is achieved without altering the source code of the application by measuring the operation performance using data that can be read from the virtual machine. Then, it clarifies on which hardware resource each processing unit is operating among the hardware resources that make up the system. It also measures and displays the load status of each hardware resource at the execution stage of the process. ⁇ Detailed description of the embodiment
  • the source code is restored from the binary file by using the method of the present invention.
  • FIG. 2 is a schematic diagram showing the process of generating a binary file from the source code and the process of restoring the source code from the binary file.
  • 203 binary files are generated by compiling 202 from source code written in a high-level language such as 201 C #, C ++, VB (visual basic).
  • compiling 202 from source code written in a high-level language such as 201 C #, C ++, VB (visual basic).
  • FIG. 3 is a flowchart showing processing steps for restoring the source code.
  • step S301 all server machines in the system are searched to find a server on which the .NET environment is installed, and connect to it.
  • step S302 the binary files of the application on .NET of the connected server are collected.
  • step S303 the binary file is read, and in step S304, the metadata and MSIL (intermediate code) are extracted from the binary file using the MSIL disassembler engine.
  • step S305 syntax analysis of the MSIL of the module is performed, and in step S306, semantic analysis is performed. Scrutinize each keyword and its parameters and match it with the corresponding keyword in the original high-level language. During this process, Identify classes, methods, properties, etc. As a result, the source code is restored as in step S306.
  • the lazy worker method is one of the methods to analyze the source code of the application in the system, extract the processing units that make up the application, and analyze the calling relationship between the processing units.
  • the processing unit refers to a detailed execution unit of an application such as a class, a method, a property, and an instance or an object generated from the class.
  • the Rage-Worker method consists of two stages: a preparation process and a tree generation process.
  • the preparation process the “caller and callee” of the class are analyzed and acquired based on the source code.
  • the call relationship of all the processing units that the processing unit directly or indirectly calls for any processing unit is a one-type.
  • the tree structure generated by the tree generation process is represented by “nodes” and “pointers”. A node corresponds to a processing unit, and a pointer corresponds to a call relation between processing units.
  • the call graph is generated by drawing the generated library structure with an appropriate drawing application.
  • the source code is analyzed in the preparation process, and the tree generation process generates the tree structure without referring to the source code.
  • a call graph starting from an arbitrary processing unit can be efficiently generated and drawn without re-analyzing the source code.
  • FIG. 4 is a flowchart showing an example of the processing steps of the preparation process of the Rage-Worker method.
  • a class list is prepared in step S401.
  • the class list is a data structure for registering classes.
  • Each class in the list has a tree structure, and stores information on the methods in each class and the methods of the caller and callee of the class.
  • the source file processing of step S402 is performed on all source codes in the application.
  • the class is extracted by detecting the start of the description of the class in step S411 for all the source codes in the source file, and the class processing in step S412 is performed on the detected class.
  • the detected class is set as the own class in step S421, and the method or property is extracted by detecting the start of the description of the method or property in step S422 from all the descriptions in the class, and the detected method or property is extracted.
  • the cola-core processing of step S423 is performed on the patty.
  • the method or property detected in step S431 is set as the own method, and in step S432, list / data processing described below is performed on the own class and the own method.
  • step S433 From all the descriptions in the own method, a description calling another method or property is detected in step S433, the class to which the method or property belongs is set as a call destination class in step S434, and step S435 Alternatively, the port property is used as the callee method.
  • step S436 list data processing is performed for the called class and the called method as well as in step S432. Then, in step S437, the callee method is added to the callee information of the own class,
  • step S438 the own method is added to the caller information of the callee class.
  • the list 'data processing if the class does not exist, it is added in step S441. If the method does not exist in the class, it is added in step S443.
  • Analyzed in the preparation process Generates a tree-type data structure for the specified class based on the obtained caller (Caller) ⁇ callee (Callee) information according to the processing steps shown in Fig. 5.
  • step S501 it is referred to whether the class specified in step S501 exists in the class list. If the class exists, a node corresponding to the class is generated in step S502, and the node Perform processing. If not, an appropriate error message is displayed in step S504, and the process ends.
  • the current node is set as the current node in step S511, the call destination information of the current node is referred to in step S512, and if it is not null, all of the information registered as the information are searched in step S513. Generates the called node. This node is called a target node.
  • step S514 pointers from the current node to all target nodes are generated.
  • step S515 the same node-vointer processing is performed on all the generated target nodes.
  • the calling relation between the processing units can be generated and drawn at a detailed level.
  • FIG. 6 is a diagram showing a configuration of a system in which a program according to the embodiment of the present invention is mounted.
  • Reference numeral 601 denotes a monitoring dedicated terminal
  • 602 denotes a monitoring target terminal. These terminals are connected via 603 LAN, WAN, Internet and other networks. 4.
  • Software configuration
  • FIG. 7 is a conceptual diagram of a functional configuration of a program according to the embodiment of the present invention.
  • Agent Handler 701 each server 1 ⁇ ! ! Is the software that supervises and manages Agents # 1 to #n.
  • the agent handler 701 operates as a monitoring-only terminal that monitors each monitoring target terminal.
  • Agents are software that runs on each server.
  • Agents #l to #n are servers 1 to which the agent is running! ! Monitor the operating performance of Agent Handler Obtains performance information from agents via agents # 1 to #n running on servers l to n and consoles # 1 to # ⁇ to monitor performance of each server. I do.
  • Agents # 1 to # ⁇ of servers 1 to ⁇ acquire OS performance information acquisition means, application performance information acquisition means, database system (DBMS) performance information acquisition means, and network performance information, respectively.
  • DBMS database system
  • OS performance information is obtained from the OS level monitoring program.
  • the OS level monitoring flowchart is, for example, WMI (Windows Management Instrumentation) in the Windows environment.
  • Application performance information is obtained using the management service program.
  • the management service program is a utility such as CLR (Common Language Runtime: having the function of a virtual machine) provided in the Microsoft (registered trademark) .NET platform.
  • CLR Common Language Runtime: having the function of a virtual machine
  • the performance information of the application is measured at a more detailed level by measuring the operation performance of the processing unit described later.
  • Database performance information can be obtained by accessing the database directly.
  • network performance information can be obtained by monitoring network devices using SNMP and monitoring the connection status of the line. 5. Measurement of operation performance for each processing unit
  • the operation performance is measured without any modification to the source code by the method according to the present invention.
  • the VM manages code execution as an application execution engine and provides various services to the application. At the time of application execution, the VM performs various managements related to the execution of each processing unit. Therefore, in the present invention, by introducing small software called a hooker into the VM, it is possible to freely communicate directly with the VM and acquire data relating to the measurement of operation performance from the VM.
  • the VM manages the start, end, and call of the processing unit.
  • the hooker detects the event and collects necessary information to measure the operation performance of the processing unit.
  • FIG. 8 is a flowchart showing processing steps for measuring the operation performance of each processing unit. This process starts when the fulfilment detects the above-mentioned VM event. -In S801, access the VM and check the type of event.
  • step S802 If the event type is generation of a processing unit in step S802,
  • step S803 the metadata is accessed, and information necessary for performance measurement such as the class name, the method / property included in the inside, the external class to be used, and the method / property to be used is collected. Save time.
  • step S806 If the event type is a call of a processing unit in step S805, it is determined in step S806 whether the call destination is a processing unit executed by another server. In step S807, the time required for communication between the servers is recorded. If the type of event is the end of the processing unit in step S808, the total execution time is calculated in step S809, and stored in step S810. 6. Hardware resource identification means
  • the information of application 'components placed on the server can be collected by referring to the metadata. This specifies the processing unit that is placed on the server and executed.
  • FIG. 9 is a flow for collecting information on the arrangement status of processing units.
  • a connection is made to a server connected to the network.
  • a connection is made to the VM of the server, and in step S903, the metadata is referred to, and in step S904, information of a processing unit that can be executed in the server is collected. Save the information collected in step S905.
  • the operation performance of the processing unit measured by the above means can be expressed as an object deployment diagram (hereinafter referred to as ODD) together with the calling relationship between the processing units, the operation performance of the processing unit, and the hardware resources used by the processing unit. It is displayed according to the display method named "abbreviation").
  • ODD object deployment diagram
  • Fig. 10 and Fig. 11 show ODD display examples.
  • Cold Daraf Graph showing the relationship between processing units occupies most of the display area. Power is shown in Fig. 10 and in tree form in Fig. 11.
  • Each display unit has a color and indicates a server machine that constitutes a live application system. If Application # 2 is shown in red, and "Billing Process I was shown in red” Then, you can see that "billing process" is running on "application server # 2". All machine names in the system are displayed in different colors. The color of the text displayed on the screen corresponds to the color of the server machine.
  • This operation performance includes network performance (communication time), operation performance per processing unit (execution time), and the like.
  • the ODDs shown in the cases of Figs. 10 and 11 mainly deal with network performance and operating performance of processing units, and do not show elements that can be ignored in the operating performance of other systems.
  • This table is used to display detailed numerical information. Also, the user can obtain the history of specific data from the table. The display on this screen is updated at any time specified by the user. Users use this screen to identify problems when they want to see the performance of the system at a more detailed level, such as when a failure occurs that degrades the performance of the system. Failure factors can be categorized into any one of "application”, “environment setting”, “hardware resource”, and “network”, and correspond. "Hardware resources” refers to a failure of IT equipment such as a hard disk failure or display failure, and can be dealt with by repairing or replacing the failed part.
  • the system administrator can easily compare the “Average Response Time” and “Response Time” values in the table to easily determine that the performance of a particular processing unit has deteriorated. You can notice. If there is a large difference between these two values, we can assume that there is something wrong. In such a case, it is possible to examine the operation performance of other processing units and to specify the processing unit whose operation performance is most deteriorated. For example, if the current response time of a processing unit is 8.1 seconds and the average response time is 6.1 seconds, then it is possible that the system has failed. The system administrator also checks other running processing units.
  • the "accounting" has a difference of 2 seconds compared to the average.
  • the response time of other processing units is within 0.5 seconds, the system administrator can click "Accounting" and check the source code to determine the cause of the failure. .
  • Faults can be found by carefully observing the degradation of operating performance, as in the case of applications.
  • the consumption time of the CPU, memory, hard disk, etc. of a specific machine may not be obtained or the consumption rate may become 0, which is lower than the case of the application or environment setting. Thus, finding obstacles is easy.
  • Server A can be considered to have failed.
  • network failures affect the server machines that make up the system when they are distributed over two or more LANs connected via the Internet. Even if the LAN of each site has good performance, it cannot guarantee the performance of the Internet.
  • the operation performance of an application can be measured in finer processing units, and the correspondence with the hardware resources in which each processing unit is running can be easily clarified.
  • ODD makes it possible to provide a visual and intuitive understanding of the correspondence between the performance of the individual processing units and the hardware resources on which they operate.
  • ODD makes it easy for users to investigate response performance by providing intuitively understandable information that helps identify the cause of a problem.

Abstract

Applications of the system whose performance is to be measured are analyzed and the processing unit constituting the applications is extracted. Correlation between the processing units is clarified and the hardware resource constituting the system on which each processing unit is operating is clarified. Moreover, the operation performance of each processing unit (time required for execution, communication time between each processing unit, and the like) is measured without modifying the application source code. In addition, at processing execution stage, a load state of each hardware resource is measured and displayed together with the operation performance of each processing unit, hardware resource operating, and the hardware resource load state.

Description

明細書 システム性能測定分析装置 技術分野  Description System performance measurement analyzer Technical field
本発明は、 ネッ 1、ワークで接続された複数のサーバ及びソフトウエアによつ て構成されたシステム環境において、 システム全体の動作性能を測定し■分析 することによって、 システムの協同動作を最適化するための方法に関する。 背景技術  The present invention optimizes the cooperative operation of a system by measuring and analyzing the operating performance of the entire system in a system environment configured by a network, a plurality of servers and software connected by a network. On how to do. Background art
今曰、 コンピュータの使用が非常に盛んになり、 あらゆるところでコンビュ ータが使用されている。 さらに、 複数のコンピュータ (サーバ) をネットヮー クで接続し、 それらのサーバに様々なアプリケーションを分散して配置 ·利用 する形態が一般化している。 これらのアプリケーションは従来個別に利用され ることが多かったが、 インターネットやウェブの普及により、 今日では複数の アプリケーションを協同動作させて所望の処理を実行する利用形態が増えてい る。 ゥェブサ一ビスはその典型例である。 このようなアプリケーシヨンの協同 動作環境においては、 所望の処理に複数のアプリケーシヨンが関与するため、 所望の処理の動作性能を向上させるためには、 所望の処理に関与する全てのァ プリケーション (これらアプリケーションの全体をシステムと呼ぶ) の動作性 能を改善することが必要となる。 あるいは逆に、 システム内のアプリケーショ ンの一つでも性能が劣化すると、 それがスループット上のボトルネックとなり システムの動作性能が劣化してしまう。 このような環境においては、 システム 内の全てのアプリケーションと IT リソースを監視し、 システムの性能上のボ トルネックを解消するための要因分析と解決策提示 (これをシステムの最適化 と呼ぶ) が必要となる。 Nowadays, the use of computers has become very popular, and computers are used everywhere. In addition, it has become common to connect multiple computers (servers) over a network and distribute and use various applications on those servers. In the past, these applications were often used individually, but with the spread of the Internet and the Web, the use of multiple applications in cooperation to perform desired processing has increased today. Web services is a typical example. In such a cooperative operation environment of applications, since a plurality of applications are involved in a desired process, in order to improve the operation performance of the desired process, all applications involved in the desired process ( It is necessary to improve the operation performance of these applications as a whole. Conversely, if the performance of even one of the applications in the system deteriorates, it becomes a bottleneck in throughput, and the operating performance of the system deteriorates. In such an environment, all applications and IT resources in the system are monitored, and factor analysis and solution presentation to eliminate bottlenecks in system performance (this is used to optimize the system) ) Is required.
従来、 コンピュータシステムにおいてアプリケーション実行の性能劣化が発 生した場合には、その要因を特定するために以下のような方法を使用していた。 Conventionally, when performance degradation of application execution has occurred in a computer system, the following method has been used to identify the cause.
1. ハードウェア資源 (CPU, ハードディスク、 メモリ、 ネットワークカード など) の負荷状況を測定し、 負荷が高いハードウ ア資源を特定する。 1. Measure the load status of hardware resources (CPU, hard disk, memory, network card, etc.) and identify hardware resources with high load.
2. アプリケーション群の個々の処理性能を測定し、 性能劣化が見られるアブ リケーションを特定する。  2. Measure the individual processing performance of the application group and identify the application where performance degradation is observed.
ITリソースの負荷状況を監視するシステムの従来の取組みについては、特許 文献 1及び特許文献 2がある。 また、 言語に依存しないでソフトウェアの性能 を監視するシステムとしては、 特許文献 3がある。 また、 特許文献 4は、 ソフ トウエアの構成をビジユアル化して表示する方法を開示し、 特許文献 5はソー スコ一ドの解析方法を開示している。  Patent Literature 1 and Patent Literature 2 discuss conventional approaches of a system for monitoring the load status of IT resources. Patent Document 3 discloses a system for monitoring the performance of software without depending on the language. Patent Document 4 discloses a method of visualizing and displaying a software configuration, and Patent Document 5 discloses a method of analyzing a source code.
【特許文献 1】  [Patent Document 1]
米国特許 5, 572, 672号  US Patent 5,572,672
〖特許文献 2】  〖Patent Document 2]
米国特許 5 , 506, 955号  U.S. Patent 5,506,955
【特許文献 3】  [Patent Document 3]
米国出願公開 US 2002/0095660号  U.S. Application Publication US 2002/0095660
【特許文献 4】  [Patent Document 4]
米国特許 6, 226, 787号  US Patent No. 6,226,787
【特許文献 5】  [Patent Document 5]
米国特許 5, 500, 881号  US Patent 5,500,881
アプリケーションが単一のハードウェア上に配置され、 実行されてきた、 従 来のシステム環境においては、 上記の方法を組み合わせることにより、 どのァ プリケーションの性能劣化が、 どのハードゥエァ资源によって引き起こされて いたかを特定するのは比較的容易である。 In a traditional system environment where applications have been deployed and run on a single piece of hardware, a combination of the above methods can result in the degradation of which application is caused by which hardware source. It is relatively easy to determine if you have been.
昨今はアプリケーション群がネットワークで接続された複数のハードウエア に分散的に配置され、 実行されるケースが増加している。 こうした環境におい ては、 一つのアプリケーションが複数のハードウエア資源上で実行され得るた め、 アプリケーションとそれを実行しているハードウヱァ資源を一対一で対応 付けることが困難となる。  In recent years, the number of applications that are distributed and deployed on multiple pieces of hardware connected by a network has been increasing. In such an environment, since one application can be executed on multiple hardware resources, it is difficult to make one-to-one correspondence between the application and the hardware resource executing the application.
この問題を解決するためには、 アプリケーションをより細かな処理単位に分 割し、 処理単位ごとの性能を評価し、 個々の処理単位とそれが動作しているハ 一ドウエア資源の両面から性能劣化の要因を特定する必要がある。 発明の開示  To solve this problem, the application is divided into smaller processing units, the performance of each processing unit is evaluated, and performance degradation occurs in both the processing unit and the hardware resources on which it runs. Factors need to be identified. Disclosure of the invention
本発明の課題は、 アプリケーションの動作性能をより詳細に測定し、 協同動 作の最適化作業に適切な情報を提供することのできるシステム性能測定分析装 置を提供することである。  It is an object of the present invention to provide a system performance measuring and analyzing apparatus capable of measuring the operation performance of an application in more detail and providing appropriate information for optimizing the cooperative operation.
加えて、 従来のアプリケーションの動作性能の測定手法においては、 アプリ ケーシヨンのソースコード入手や改変などが前提となっているが、 本発明では 不要とすることも課題としている。  In addition, in the conventional method for measuring the operation performance of an application, it is assumed that the source code of the application is obtained or modified, but the present invention also has a problem that it is unnecessary.
本発明のシステム性能測定分析装置は、 ネットワークで接続された複数のサ ーバにインストールされ、 その一部または全てがバーチヤルマシン環境下で協 同動作する複数のアプリケーションに関して、 該アプリケーションの動作性能 を測定 ·分析し、 その結果に基づき協同動作を最適化するためのシステム性能 測定分析装置であって、  The system performance measurement / analysis apparatus of the present invention is installed on a plurality of servers connected via a network, and a part or all of the plurality of applications cooperate in a virtual machine environment. Is a system performance measurement and analysis device that measures and analyzes the results and optimizes the cooperative operation based on the results.
該アプリケーシヨンを構成する処理単位を解析 ·抽出し、 処理単位間の呼び 出し関係を解析 ·取得するアプリケーション解析手段と、  Application analysis means for analyzing and extracting processing units constituting the application, and analyzing and acquiring a calling relationship between the processing units;
該処理単位の動作性能を測定する動作性能測定手段と、 該処理単位と、 該処理単位が利用するハードウ ア資源との対応関係を解 析 ·取得するハードウェア資源特定手段と、 Operating performance measuring means for measuring the operating performance of the processing unit; Hardware resource specifying means for analyzing and acquiring a correspondence relationship between the processing unit and hardware resources used by the processing unit;
該処理単位間の呼び出し関係、 該処理単位の動作性能、 該処理単位が動作す るハードウエア資源を、 共に表示する表示手段 (これをオブジェク ト ·デイブ ロイメント ·ダイアグラムと呼ぶ) を備えることを特徴とする。 図面の簡単な説明  Display means for displaying the calling relationship between the processing units, the operation performance of the processing unit, and the hardware resources on which the processing unit operates together (this is referred to as an object / destruction diagram). And BRIEF DESCRIPTION OF THE FIGURES
図 1は、 バーチャルマシン環境の 1つの例である. NETの構成を示す図であ る。  FIG. 1 is a diagram showing a configuration of .NET which is one example of a virtual machine environment.
図 2は、 ソースコードからバイナリファイルの生成と、 バイナリファイルか らソースコードの復元を行う際の考え方を示した図である。  Figure 2 shows the concept of generating a binary file from source code and restoring source code from the binary file.
図 3は、 ソースコード復元処理のフローである。  Figure 3 shows the flow of the source code restoration process.
図 4は、 レイジーワーカー法の準備プロセスの処理のフローである。  Figure 4 shows the flow of the process of the preparation process of the lazy worker method.
図 5は、 レイジーヮ一力一法のッリ一生成プロセスの処理のフローである。 図 6は、 本発明の実施形態に従った装置のシステム構成を示す図である。 図 7は、本発明の実施形態に従ったソフトウェアの機能構成の概念図である。 図 8は、 才ブジェク トの動作性能の測定の処理のフローである。  Figure 5 is a flow chart of the lazy generation process. FIG. 6 is a diagram showing a system configuration of the device according to the embodiment of the present invention. FIG. 7 is a conceptual diagram of a functional configuration of software according to the embodiment of the present invention. FIG. 8 is a flowchart of a process for measuring the performance of a smart object.
図 9は、 オブジェク ト配置情報の収集の処理のフローである。  FIG. 9 is a flowchart of a process of collecting the object arrangement information.
図 1 0は、 オブジェク トディプロィメントダイアグラム (フロー型) の表示 例である。  Figure 10 shows a display example of an object deployment diagram (flow type).
図 1 1は、 オブジェク トディプロィメントダイアグラム (ツリー型) の表示 例である。 発明を実施するための最良の形態  Figure 11 is a display example of an object deployment diagram (tree type). BEST MODE FOR CARRYING OUT THE INVENTION
·前提とする環境 本発明の実施形態においては、 ネットワークを介して接続された複数のハー ドウエア及びソフトウェア (アプリケーション) により構成されるシステム、 すなわち、 ハードウェア資源 (サーバ、 クライアントなどのコンピュータ、 ネ ットワーク及びそれらを構成する CPU、 メモリ、 ハ一ドディスク、ネットヮー クカード等) と、 ソフトウェア資源 (ハ"ドウエア資源上に分散的に配置され 実行されるアプリケーション群) により構成されているシステム環境を前提と する。 またこれらのアプリケーシヨンの一部または全部がバーチャルマシン環 境 ( .NETプラッ トフォームの CLR、 J 2 EEプラッ トフォームの JVMなど) の下で実行されることを前提とする。 · Assumed environment In the embodiment of the present invention, a system constituted by a plurality of hardware and software (applications) connected via a network, that is, hardware resources (computers such as servers and clients, networks, and the like) It is assumed that the system environment consists of a CPU, memory, hard disk, network card, etc.) and software resources (applications that are distributed and executed on hardware resources). It is assumed that some or all of the application will run under a virtual machine environment (CLR on .NET platform, JVM on J2EE platform, etc.).
•バーチャルマシン環境 • Virtual machine environment
バーチャルマシン環境について述べる。 本実施形態の装置では、 システムの 動作性能 (処理単位の実行時間、 ハードウェアの処理性能、 ネットワークの通 信時間など) を測定する際に、 バーチャルマシン (VM) を介して行う。 また バイナリーファイルからソースコードを復元する際にも VM を利用する。 VM が利用可能な環境として、マイクロソフト社の .NETやサンマイクロシステム が提唱した J2EEなどがある。 本明細書では. NET環境を前提とした手法 (フ ローチャート) について説明する。 他の VM環境でも、 本明細書に記述されて いる方法に基づいて同様の方法を容易に考案 ·実施できる。  Describe the virtual machine environment. In the apparatus of the present embodiment, when measuring the operation performance of the system (execution time of a processing unit, hardware processing performance, network communication time, and the like), measurement is performed via a virtual machine (VM). It also uses the VM when restoring source code from binary files. Environments where VMs can be used include Microsoft's .NET and J2EE proposed by Sun Microsystems. In this specification, a method (flow chart) based on a .NET environment will be described. Similar methods can be easily devised and implemented in other VM environments based on the methods described in this specification.
図 1は、 .NET フレームワークの構成を示したものである。 .NET フレーム ワークの内部は、 大きく 3 つの要素から構成されている。 最下層にある CLR(Common Language Runtime)は、 アプリケーションゃコンポーネントを 実行するためのエンジン (VM) である。 そしてアプリケーションのシステム · インターフェイスとなるクラス ·ライブラリ群がその上にある。 ASP .NETは、 Windowsアプリケーションを除く、 Web Serviceと Webアプリケーションを 実装するためのクラス ·ライブラリである。 .NET フレームワーク上のアプリ ケーシヨンは、 .NET フレームワークによって提供されるクラス · ライブラリ を使用してコーディングされる。 作成されたソースコードは、 コンパイラによ つてアプリケーションないしコンポーネントの実行コードに変換されるが、 こ の際に生成されるのは特定の CPU命令に依存したネイティブ ·コードではな く、 マネージド ' コードと呼ばれる中間コードである。 アプリケーションの実 行時には、 マネージド · コードが CLRの JITコンパイラにより最終的なネィ ティブ · コードに変換され、 実行される。 Figure 1 shows the structure of the .NET framework. The inside of the .NET framework consists of three main components. CLR (Common Language Runtime) at the bottom is an engine (VM) for executing application / component. And there are classes and libraries on top of the application system. ASP .NET uses Web Services and Web applications, excluding Windows applications Class library to implement. Applications on the .NET framework are coded using the class libraries provided by the .NET framework. The generated source code is converted into executable code of the application or component by the compiler, and the generated code is not native code depending on specific CPU instructions, but managed code and managed code. This is the intermediate code called. When the application runs, the managed code is converted to the final native code by the CLR JIT compiler and executed.
CLRは、 マネージド · コードに対して、 大きく分けて以下の 2つの情報を持 つていることを要求する。  The CLR requires managed code to have two main pieces of information:
U)MSIL (Microsoft Intermediate Language (中間目 j ) :実行可能コード (2)メタデータ : MSILに関する情報  U) MSIL (Microsoft Intermediate Language (middle j): Executable code (2) Metadata: Information about MSIL
(内部に含むメソッド /プロパティ、 利用する外部のメソッド /プロパティ等、 CLRが実行時に必要とする情報)  (Information required by the CLR at the time of execution, such as internal methods / properties and external methods / properties used)
•実施の形態の概要 • Overview of the embodiment
本発明の実施形態においては、 性能を測定しようとするシステムのソフトゥ エアを分析し、 それらのソフトウェアを構成する処理単位 (オブジェク ト)を抽 出し、 処理単位間の関連を明らかにして図示する (この図をコールグラフと呼 ぶ)。 コールグラフを生成する上で、 バイナリファイル (実行可能ファイル) か らソースコードを復元する。  In the embodiment of the present invention, the software of the system whose performance is to be measured is analyzed, the processing units (objects) constituting the software are extracted, and the relationship between the processing units is clarified and shown in the figure. This figure is called the call graph.) Restore source code from binary file (executable file) in generating call graph.
次に、 各処理単位の動作性能 (実行に要する時間、 各処理単位間の通信時間 など) を計測する。 バーチャルマシンから読み取り可能なデータを利用して動' 作性能を計測することで、 アブリケーシヨンのソースコードを改変することな くこれを実現する。 そして、 各処理単位がシステムを構成するハードウェア資源の内、 どのハー ドウエア資源上で動作しているかを明らかにする。 また処理の実行段階におい て各ハードウ ア資源の負荷状況を測定し表示する。 ·実施の形態の詳細な説明 Next, the operation performance of each processing unit (time required for execution, communication time between each processing unit, etc.) is measured. This is achieved without altering the source code of the application by measuring the operation performance using data that can be read from the virtual machine. Then, it clarifies on which hardware resource each processing unit is operating among the hardware resources that make up the system. It also measures and displays the load status of each hardware resource at the execution stage of the process. · Detailed description of the embodiment
1. ソースコードの復元 1. Restore source code
ソースコードを直接入手できない場合でも、 本発明が前提しているバーチヤ ルマシン環境においては、 本発明の方法を用いることでバイナリファイルから ソースコードを復元する。  Even if the source code is not directly available, in the virtual machine environment assumed by the present invention, the source code is restored from the binary file by using the method of the present invention.
例えば .NET環境においてはコンパイラにより、高級言語で記述されたソー スコードをバイナリファイルに変換する。 図 2はソースコ一ドからバイナリフ アイルを生成する過程と、 バイナリファイルからソースコードを復元する過程 を示した模式図である。 201の C#、 C++、 VB (ビジュアルべ一シック) など の高級言語で記述されたソースコ一ドから 202のコンパイル処理で 203のバイ ナリファイルが生成される。 また、 バイナリファイルからソースコードを復元 する際には.204のデコンパイルによりソースコ一ドを復元する。  For example, in a .NET environment, a compiler converts source code written in a high-level language into a binary file. Figure 2 is a schematic diagram showing the process of generating a binary file from the source code and the process of restoring the source code from the binary file. 203 binary files are generated by compiling 202 from source code written in a high-level language such as 201 C #, C ++, VB (visual basic). When restoring the source code from a binary file, the source code is restored by decompiling .204.
図 3はソースコードを復元する処理ステップを示すフローチヤ一トである。 ステップ S301では、 システム内の全サーバマシンを探査し、 .NET環境が インストールされているサーバを発見し、 接続する。 ステップ S302では、 接 続したサーバの. NET 上のアプリケーションのバイナリファイルを収集する。 S303では、バイナリファイルを読み込み、ステップ S304で MSILディスァセ ンブラエンジンを利用して、 バイナリファイルからメタデータと MSIL (中間 コード)を抽出する。ステップ S305でモジュールの MSILの構文解析を行い、 ステップ S306で意味解析を行う。 各キーヮード及びキーヮードのパラメータ を精査し、 元の高級言語の対応するキーワードと照合する。 この過程で変数、 クラス、 メソッド、 プロパティなどを識別する。 これらにより、 ステップ S306 のとおりソースコードが復元される。 FIG. 3 is a flowchart showing processing steps for restoring the source code. In step S301, all server machines in the system are searched to find a server on which the .NET environment is installed, and connect to it. In step S302, the binary files of the application on .NET of the connected server are collected. In step S303, the binary file is read, and in step S304, the metadata and MSIL (intermediate code) are extracted from the binary file using the MSIL disassembler engine. In step S305, syntax analysis of the MSIL of the module is performed, and in step S306, semantic analysis is performed. Scrutinize each keyword and its parameters and match it with the corresponding keyword in the original high-level language. During this process, Identify classes, methods, properties, etc. As a result, the source code is restored as in step S306.
2. アプリケーションの解析 2. Analysis of application
アプリケーションを解析しコールグラフを生成する方法として、 ここではレ イジ一ワーカー (Lazy Worker)法と命名した方法を用いる。 レイジ一ワーカー 法は、 システム内のアプリケーションのソースコードを解析することにより、 アプリケーションを構成する処理単位を抽出し、 処理単位間の呼び出し関係を 解析する方法の一つである。 ここで処理単位とは、 クラス、 メソッ ド、 プロパ ティや、 クラスから生成されるインスタンス又はォブジヱク トなどのような、 アプリケーションの細かな実行単位を指す。  As a method of analyzing an application and generating a call graph, a method named the lazy worker method is used here. The Rage-Worker method is one of the methods to analyze the source code of the application in the system, extract the processing units that make up the application, and analyze the calling relationship between the processing units. Here, the processing unit refers to a detailed execution unit of an application such as a class, a method, a property, and an instance or an object generated from the class.
レイジ一ワーカー法は、 準備プロセスとツリー生成プロセスの二段階で構成 される。 準備プロセスでは、 ソースコードを基に 「クラスの呼出元 (Caller) · 呼出先 (Callee)」 を解析 ·取得する。 次のツリー生成プロセスでは、 準備プロ セスで取得した Caller · Callee情報に基づき、 任意の処理単位に対して、 該処 理単位が直接/間接に呼び出す全処理単位の呼出関係をッリ一型のデータ構造 として生成する。 ツリー生成プロセスが生成するツリー構造は「ノード」 と 「ポ インタ」 により表現される。 ノードは処理単位に対応し、 ポインタは処理単位 間の呼出関係に対応する。 生成されたッリ一構造を適切な描画アプリケーショ ンで描画することによりコールグラフを生成する。 レイジ一ワーカー法では、 準備プロセスでソースコードを解析しておくことにより、 ツリー生成プロセス ではソースコードを参照することなくツリー構造を生成する。 これにより、 任 意の処理単位を起点とするコールグラフを、 ソースコードの再解析なしに効率 的に生成 ·描画する。  The Rage-Worker method consists of two stages: a preparation process and a tree generation process. In the preparation process, the “caller and callee” of the class are analyzed and acquired based on the source code. In the next tree generation process, based on the Caller and Callee information obtained in the preparation process, the call relationship of all the processing units that the processing unit directly or indirectly calls for any processing unit is a one-type. Generate as a data structure. The tree structure generated by the tree generation process is represented by “nodes” and “pointers”. A node corresponds to a processing unit, and a pointer corresponds to a call relation between processing units. The call graph is generated by drawing the generated library structure with an appropriate drawing application. In the Rage-Worker method, the source code is analyzed in the preparation process, and the tree generation process generates the tree structure without referring to the source code. As a result, a call graph starting from an arbitrary processing unit can be efficiently generated and drawn without re-analyzing the source code.
(1) 準備プロセス 図 4はレイジ一ワーカー法の準備プロセスの処理ステップの例を示すフ口一 チャートである。 (1) Preparation process FIG. 4 is a flowchart showing an example of the processing steps of the preparation process of the Rage-Worker method.
'準備プロセスでは、 まず、 ステップ S401でクラスリストを用意する。 クラ スリストはクラスを登録するためのデータ構造である。 リスト内の各クラスは ツリー構造をしており、 各クラス内のメソッド及びクラスの呼出元や呼出先の メソッドに関する情報等を格納している。 クラスリストの初期値をヌル (空) にした後、 アプリケーション内の全てのソースコードに対してステップ S402 のソースファイル処理を行っていく。  'In the preparation process, first, a class list is prepared in step S401. The class list is a data structure for registering classes. Each class in the list has a tree structure, and stores information on the methods in each class and the methods of the caller and callee of the class. After setting the initial value of the class list to null (empty), the source file processing of step S402 is performed on all source codes in the application.
ソースファイル処理では、 ソースファイル内の全てのソースコードに対して ステップ S411でクラスの記述の開始を検知することでクラスを抽出し、 検知 したクラスに対してステツプ S412のクラス処理を行っていく。  In the source file processing, the class is extracted by detecting the start of the description of the class in step S411 for all the source codes in the source file, and the class processing in step S412 is performed on the detected class.
クラス処理では、 検知したクラスをステップ S421で自クラスとし、 該クラ ス内の全ての記述からステップ S422でメソッド又はプロパティの記述の開始 を検知することでメソッド又はプロパティを抽出し、 検知したメソッド又はプ 口パティに対してステップ S423のコーラ一 ·コーリー処理を行っていく。 コーラ一 ·コーリー処理ではまず、 ステップ S431で検知したメソッド又は プロパティを自メソッドとし、 ステップ S432で自クラス及ぴ自メソッドに対 して後述のリスト ·データ処理を行う。  In the class processing, the detected class is set as the own class in step S421, and the method or property is extracted by detecting the start of the description of the method or property in step S422 from all the descriptions in the class, and the detected method or property is extracted. The cola-core processing of step S423 is performed on the patty. In the cola-core processing, first, the method or property detected in step S431 is set as the own method, and in step S432, list / data processing described below is performed on the own class and the own method.
自メソッド内の全ての記述から、 ステップ S433で他のメソッド又はプロパ ティの呼出を行っている記述を検知し、 ステップ S434で該メソッド又はプロ パティが属するクラスを呼出先クラスとし、 ステップ S435該メソッド又はプ 口パティを呼出先メソッドとする。 呼出先クラス及び呼出先メソッドに対して もステップ S436でステップ S432同様リスト ·データ処理を行う。 そして、 ステップ S437で自クラスの呼出先情報に呼出先メソッドを追カロし、  From all the descriptions in the own method, a description calling another method or property is detected in step S433, the class to which the method or property belongs is set as a call destination class in step S434, and step S435 Alternatively, the port property is used as the callee method. In step S436, list data processing is performed for the called class and the called method as well as in step S432. Then, in step S437, the callee method is added to the callee information of the own class,
S438で呼出先クラスの呼出元情報に自メソッドを追加する。 リスト 'データ処理では該クラスが存在しない場合ステップ S441でこれを 追加する。 該クラスに該メソッドが存在しない場合ステップ S443でこれを追 加する。 In S438, the own method is added to the caller information of the callee class. In the list 'data processing, if the class does not exist, it is added in step S441. If the method does not exist in the class, it is added in step S443.
(2) ツリー生成プロセス  (2) Tree generation process
準備プロセスで解析 ·取得されたクラスの呼出元 (Caller) ·呼出先 (Callee)情 報を元に指定されたクラスについて、 図 5に示す処理ステップに従ってツリー 型のデータ構造を生成する。  Analyzed in the preparation process · Generates a tree-type data structure for the specified class based on the obtained caller (Caller) · callee (Callee) information according to the processing steps shown in Fig. 5.
ツリー生成プロセスでは、 ステップ S501で指定されたクラスがクラスリス トに存在しているかを参照し、 該クラスが存在すればステップ S502で該クラ スに対応するノードを生成し、ステップ S503のノード ·ボインタ処理を行う。 存在しなければステップ S504で適切なエラーメッセージを表示して終了する。 ノード 'ボインタ処理では、 ステップ S511で現在のノードを力レントノー ドとし、 ステップ S512で力レントノードの呼出先情報を参照し、 ヌルでなけ れば、 ステップ S513で該情報として登録されている全ての呼出先のノードを 生成する。 このノードをターゲットノードと呼ぶ。 ステップ S514でカレント ノードから全ターゲットノードへのポインタを生成する。 生成した全ターゲッ トノードに対し、 ステップ S515で同様のノード ·ボインタ処理を行う。  In the tree generation process, it is referred to whether the class specified in step S501 exists in the class list. If the class exists, a node corresponding to the class is generated in step S502, and the node Perform processing. If not, an appropriate error message is displayed in step S504, and the process ends. In the node 'pointer process, the current node is set as the current node in step S511, the call destination information of the current node is referred to in step S512, and if it is not null, all of the information registered as the information are searched in step S513. Generates the called node. This node is called a target node. In step S514, pointers from the current node to all target nodes are generated. In step S515, the same node-vointer processing is performed on all the generated target nodes.
以上により、処理単位間の呼び出し関係を詳細なレベルで生成 '描画できる。  As described above, the calling relation between the processing units can be generated and drawn at a detailed level.
3. システム構成 3. System configuration
図 6は、 本発明の実施形態に従ったプログラムが実装されたシステムの構成 を示す図である。 601は監視専用端末であり、 602は監視対象端末である。 こ れらの端末は 603の LAN、 WAN, インターネットなどのネットワークを介し て接続されている。 4. ソフトゥェァ構成 FIG. 6 is a diagram showing a configuration of a system in which a program according to the embodiment of the present invention is mounted. Reference numeral 601 denotes a monitoring dedicated terminal, and 602 denotes a monitoring target terminal. These terminals are connected via 603 LAN, WAN, Internet and other networks. 4. Software configuration
図 7 は、 本発明の実施形態に従ったプログラムの機能構成の概念図である。 エージェントハンドラ 701は、 各サーバ 1〜!!に設けられるエージェント #1〜 #nを統括管理するソフトウェアである。 エージェントハンドラ 701は、 各監 視対象端末を監視する監視専用端末で動作する。 エージェントは各サーバ上で 動作するソフトウェアである。 エージェント #l〜#n は該エージェントが動作 しているサーバ 1〜!!の動作性能を監視する。 エージェントハンドラが各サー バの動作 1生能を監視するには、 サーバ l〜n上で動作しているエージェント #1 〜#n とコンソール #1〜#ηを介してエージェントから動作性能情報を取得する。 各サーバ 1〜ηのエージェント #1〜#ηは、 OSの性能情報取得手段と、 アブ リケーション性能情報取得手段と、 データベースシステム (DBMS) の性能情 報取得手段と、 ネットワークの性能情報を取得する手段とを有する。  FIG. 7 is a conceptual diagram of a functional configuration of a program according to the embodiment of the present invention. Agent Handler 701, each server 1 ~! ! Is the software that supervises and manages Agents # 1 to #n. The agent handler 701 operates as a monitoring-only terminal that monitors each monitoring target terminal. Agents are software that runs on each server. Agents #l to #n are servers 1 to which the agent is running! ! Monitor the operating performance of Agent Handler Obtains performance information from agents via agents # 1 to #n running on servers l to n and consoles # 1 to # η to monitor performance of each server. I do. Agents # 1 to # η of servers 1 to η acquire OS performance information acquisition means, application performance information acquisition means, database system (DBMS) performance information acquisition means, and network performance information, respectively. Means.
OSの性能情報は、 OSレベル監視プログラムから得られる。 OSレベル監視 フ口グラムは、 Windows 豫境における WMI ( Windows Management Instrumentation) 等である。 アプリケーションの性能情報は、 管理サービス プログラムを使用して取得する。 管理サービスプログラムとは、 Microsoft (登 録商標) 社の .NETプラットフォームに設けられる CLR (Common Language Runtime :バーチャルマシンの機能を持つ)のようなユーティリティである。 本発明においては、 アプリケーションの性能情報を、 後述の処理単位の動作性 能の測定を行うことにより、より詳細なレベルで測定することを実現している。 データベースの性能情報は、 直接データベースにアクセスすることによって得 られる。 また、 ネットワークの性能情報は、 図 6のシステムが TCP/IPネッ トワークで構成されている場合、 SNMPによるネットワーク機器の監視や、 回 線の接続状況の監視を行うことによって得られる。 5. 処理単位の動作性能の測定 OS performance information is obtained from the OS level monitoring program. The OS level monitoring flowchart is, for example, WMI (Windows Management Instrumentation) in the Windows environment. Application performance information is obtained using the management service program. The management service program is a utility such as CLR (Common Language Runtime: having the function of a virtual machine) provided in the Microsoft (registered trademark) .NET platform. In the present invention, the performance information of the application is measured at a more detailed level by measuring the operation performance of the processing unit described later. Database performance information can be obtained by accessing the database directly. When the system shown in Fig. 6 is configured with a TCP / IP network, network performance information can be obtained by monitoring network devices using SNMP and monitoring the connection status of the line. 5. Measurement of operation performance for each processing unit
処理単位の動作性能 (実行時間など) を測定する際、 本発明が前提している パーチャルマシン環境においては、 本発明による方法でソースコードに一切手 を加えずに動作性能を測定する。  When measuring the operation performance (execution time, etc.) of a processing unit, in the virtual machine environment presupposed by the present invention, the operation performance is measured without any modification to the source code by the method according to the present invention.
VM環境下においては、 VMがアプリケーションの実行エンジンとしてコー ドの実行を管理し、アプリケーションに対して様々なサービスを提供している。 アプリケーション実行時においては、 VMは各処理単位の実行に関わる様々な 管理などを行っている。 そこで本発明では、 VM にフッカ (hooker)という小さ なソフトウェアを揷入することで、 VM と直接自由に通信し、 動作性能の測定 に関わるデータを VMから取得することを実現している。 アプリケーション実 行時、 VMは処理単位の開始、 終了、 呼出等を管理している。 これらのィベン トが VMに発生すると、 フッカは該ィベントを検知し、 更に必要とする情報の 収集を行つて該処理単位の動作性能を測定する。  Under the VM environment, the VM manages code execution as an application execution engine and provides various services to the application. At the time of application execution, the VM performs various managements related to the execution of each processing unit. Therefore, in the present invention, by introducing small software called a hooker into the VM, it is possible to freely communicate directly with the VM and acquire data relating to the measurement of operation performance from the VM. When executing an application, the VM manages the start, end, and call of the processing unit. When these events occur in the VM, the hooker detects the event and collects necessary information to measure the operation performance of the processing unit.
図 8は、 処理単位の動作性能の測定の処理ステップを示すフローチヤ一トで ある。 本処理はフッ力が前述の VM のイベント検知時に開始する。 ― S801では、 VMにアクセスして、 イベントの種類を確認する。  FIG. 8 is a flowchart showing processing steps for measuring the operation performance of each processing unit. This process starts when the fulfilment detects the above-mentioned VM event. -In S801, access the VM and check the type of event.
イベントの種類がステップ S802の処理単位の生成であつた場合、  If the event type is generation of a processing unit in step S802,
S803 でメタデータにアクセスして、 クラス名や内部に含むメソッド/プロパ ティ、 利用する外部のクラス及びメソッド /プロパティ等の性能測定に必要な 情報を収集し、 ステップ S804で該処理単位が開始した時間を保存する。 In step S803, the metadata is accessed, and information necessary for performance measurement such as the class name, the method / property included in the inside, the external class to be used, and the method / property to be used is collected. Save time.
イベントの種類がステップ S805の処理単位の呼出であった場合には、 S806 で呼出先が他のサーバで実行される処理単位であるか否かを判断し、 他のサー バの場合には、 ステップ S807でサーバ間の通信に要した時間を記録する。 イベントの種類がステップ S808の処理単位の終了であった場合には、 ステ ップ S809で合計実行時間を計算し、 ステツプ S810で保存する。 6.ハードウェア資源特定手段 If the event type is a call of a processing unit in step S805, it is determined in step S806 whether the call destination is a processing unit executed by another server. In step S807, the time required for communication between the servers is recorded. If the type of event is the end of the processing unit in step S808, the total execution time is calculated in step S809, and stored in step S810. 6. Hardware resource identification means
VM環境下においては、 メタデータを参照することで該サーバに配置されて いるアプリケーション 'コンポーネントの情報を収集できる。 これにより、 サ ーバ上に配置され、 実行される処理単位を特定する。  In a VM environment, the information of application 'components placed on the server can be collected by referring to the metadata. This specifies the processing unit that is placed on the server and executed.
図 9 は、 処理単位の配置状況に関する情報を収集するためのフローである。 ステップ S901でネットワークに接続されているサーバに接続する。 ステップ S902で該サーバの VMに接続し、ステップ S903でそのメタデータを参照して、 ステップ S904で該サーバで実行されうる処理単位の情報を収集する。 ステツ プ S905で収集した情報を保存する。 以上の処理を、 監視対象の全てのサーバ に対して実行していくことで、 各処理単位が実行されるサーバを特定すること が可能である。  Figure 9 is a flow for collecting information on the arrangement status of processing units. In step S901, a connection is made to a server connected to the network. In step S902, a connection is made to the VM of the server, and in step S903, the metadata is referred to, and in step S904, information of a processing unit that can be executed in the server is collected. Save the information collected in step S905. By executing the above processing for all servers to be monitored, it is possible to specify the server on which each processing unit is executed.
7. システム性能の表示 7. System performance display
上記の手段により測定した処理単位の動作性能を、 該処理単位間の呼び出し 関係、該処理単位の動作性能、該処理単位が利用するハードウエア資源を共に、 オブジェクトディプロィメントダイアグラム (以下、 ODD と略記) と命名し た表示方法により、 表示する。  The operation performance of the processing unit measured by the above means can be expressed as an object deployment diagram (hereinafter referred to as ODD) together with the calling relationship between the processing units, the operation performance of the processing unit, and the hardware resources used by the processing unit. It is displayed according to the display method named "abbreviation").
図 10と図 11は、 ODDの表示例である。 表示部の多くを占めるコールダラ フ (処理単位間の関係を示すグラフ) 力 図 10ではフロー型で表示されてお り、 図 11ではツリー型で表示されている。  Fig. 10 and Fig. 11 show ODD display examples. Cold Daraf (Graph showing the relationship between processing units) occupies most of the display area. Power is shown in Fig. 10 and in tree form in Fig. 11.
同図の上部には、 「ウェブサーバ」、 「アプリケーションサーバ #1」 「アプリ ケーシヨンサーバ #2」 の表示部がある。 各表示部は、 色を有し、 ゥヱブアプリ ケーシヨンシステムを構成するサーバマシンを示す。 もし、 アプリケーション #2が赤色で示され、 且つ、 画面の真ん中で 「課金処理 I が赤色で示されていた ならば、 「課金処理」 は 「アプリケーションサーバ #2」 で動作していることが 分かる。 システムの全てのマシン名は異なる色で表示される。 スクリーン上に 表示されるテキストなどの色はサーバマシンの色に対応している。 At the top of the figure, there are the display units of “Web server”, “Application server # 1” and “Application server # 2”. Each display unit has a color and indicates a server machine that constitutes a live application system. If Application # 2 is shown in red, and "Billing Process I was shown in red" Then, you can see that "billing process" is running on "application server # 2". All machine names in the system are displayed in different colors. The color of the text displayed on the screen corresponds to the color of the server machine.
同図の右側には、 「CPUJ 「メモリ J 「ディスク」 「ネットワーク」 と示された グラフがある。 これらのグラフは、 各サーバにおけるハードウェア資源の消費 量を示している。 ユーザは、 これを見て、 ハードウェア資源の現状をチェック し、 ハードウエアの状態とそのマシン上にある特定の処理単位との関連を得る ことができる。  On the right side of the figure is a graph labeled "CPUJ" "Memory J" "Disk" "Network". These graphs show the amount of hardware resources consumed by each server. This allows the user to check the current state of the hardware resources and get an association between the state of the hardware and a particular processing unit on the machine.
コールグラフ上には、 ユーザが任意に設定した時間間隔における動作性能の 平均値が示される。 この動作性能は、 ネットワーク性能 (通信時間)、 処理単位 の動作性能 (実行時間)、 等を含む。 図 10及ぴ図 11の事例で示している ODD は、 主にネッ トワーク性能と処理単位の動作性能を扱い、 他のシステムの動作 性能上無視できる程度の要素については表示していない。  On the call graph, the average value of the operation performance at the time interval arbitrarily set by the user is shown. This operation performance includes network performance (communication time), operation performance per processing unit (execution time), and the like. The ODDs shown in the cases of Figs. 10 and 11 mainly deal with network performance and operating performance of processing units, and do not show elements that can be ignored in the operating performance of other systems.
スクリーンの下部には表がある。 この表は、 詳細な数値情報を表示する為に 使用する。 また、 ユーザは、 特定のデータの履歴を表から得ることができる。 このスクリーンの表示は、 ユーザーが指定した任意の時間毎に更新される。 ユーザは、 システムの性能が劣化する障害が発生した時などのシステムの動 作性能をより詳細なレベルで見たい時には、 このスクリーンを使って問題を特 定する。障害要因は、 "アプリケーション"、 "環境設定"、 "ハードウェア資源"、 "ネットワーク"のいずれかに分類でき、対応することになる。 "ハードウェア 資源" とは、 例えばハードデイスク障害ゃデイスプレイの障害などの IT機器 類に不具合が生じた場合であり、 障害部分を修理又は交換することで対応でき る。 "ネットワーク" の場合、 障害対応ができる範囲は LANなどの特定の範囲 に限られる。また、これらのハードウエア資源ゃネットワークを設定するのが、 "環境設定" であるが、 ハードウェア資源すなわち、 CPU、 ハードディスク、 メモリや、 ネットワーク等はアプリケーションが使用することによって動作す るものであることから、 システム障害の大部分は "アプリケーション" によつ て引き起こされているものであると言える。 以下に "アプリケーション"、 "環境設定"、 "ハードウェア資源"、 "ネットヮ ーク" のそれぞれによって障害が引き起こされている場合の例を述べる。 There is a table at the bottom of the screen. This table is used to display detailed numerical information. Also, the user can obtain the history of specific data from the table. The display on this screen is updated at any time specified by the user. Users use this screen to identify problems when they want to see the performance of the system at a more detailed level, such as when a failure occurs that degrades the performance of the system. Failure factors can be categorized into any one of "application", "environment setting", "hardware resource", and "network", and correspond. "Hardware resources" refers to a failure of IT equipment such as a hard disk failure or display failure, and can be dealt with by repairing or replacing the failed part. In the case of "network", the range in which failures can be handled is limited to a specific range such as LAN. In addition, it is "environment setting" that sets these hardware resources ゃ network, but the hardware resources, that is, CPU, hard disk, Since applications such as memory and network are operated by applications, it can be said that most of system failures are caused by "applications". An example in which a failure is caused by each of "application", "environment setting", "hardware resource" and "network" will be described below.
1. アプリケーシヨンの場合 1. For application
アプリケーションによって障害が引き起こされている場合、 システム管理者 は表の "平均応答時間" と "応答時間" の値を比較することで、 容易に特定の 処理単位の動作性能が劣化していることに気付くことができる。 これらの 2つ の値に大きな差があれば、 何らかの問題があると考えることができる。 このよ うな場合、 その他の処理単位の動作性能についても調べ、 最も動作性能の劣化 している処理単位を特定することが可能である。 例えば、 ある処理単位の現在 の応答時間が 8.1秒であり、 平均応答時間が 6.1秒であった場合、 システムに '何らかの障害が起きていると考えることができる。 システム管理者は動作して いる他の処理単位についても調查をする。 平均応答時間は 3.1秒の "会計処理" の現在の応答時間が 5.1秒であれば、 "会計処理"には、平均と比較して 2秒の 差が生じていることになる。 これに対して他の処理単位の応答時間のずれは 0.5 秒以内であったとすると、 システム管理者は "会計処理" をクリックし、 ソースコードを確認してその障害の原因を特定することができる。  When an application is causing a failure, the system administrator can easily compare the “Average Response Time” and “Response Time” values in the table to easily determine that the performance of a particular processing unit has deteriorated. You can notice. If there is a large difference between these two values, we can assume that there is something wrong. In such a case, it is possible to examine the operation performance of other processing units and to specify the processing unit whose operation performance is most deteriorated. For example, if the current response time of a processing unit is 8.1 seconds and the average response time is 6.1 seconds, then it is possible that the system has failed. The system administrator also checks other running processing units. If the current response time of an "accounting" with an average response time of 3.1 seconds is 5.1 seconds, then the "accounting" has a difference of 2 seconds compared to the average. On the other hand, if the response time of other processing units is within 0.5 seconds, the system administrator can click "Accounting" and check the source code to determine the cause of the failure. .
2. 環境設定の場合 2. For environment settings
環境設定に問題がある場合、 それはサーバマシン全体に影響を与える為、 サ ーパマシン全体の性能が劣化することになる。 典型的な例としては、 環境設定 の問題により、 サーバマシン上の全ての処理単位の動作性能が劣化することが 挙げられる。 基本的な考え方はアプリケーションの場合と似ているが、 性能に 影響を与える範囲に違いがある。 If there is a problem with the environment setting, it affects the entire server machine, and the performance of the entire server machine will be degraded. A typical example is preferences The problem is that the operation performance of all processing units on the server machine deteriorates. The basic idea is similar to that of an application, but there are differences in the range that affects performance.
障害の発見は、 アプリケーションの場合同様、 動作性能の劣化を注意深く観 察することで行うことができる。  Faults can be found by carefully observing the degradation of operating performance, as in the case of applications.
3. ハードウェア資源の場合 3. For hardware resources
ハードウェア資源に問題がある場合、 特定のマシンの CPUやメモリ、 ハー ドディスク等の消費時間が得られなかったり、 その消費率が 0になったりする ことから、 アプリケーションや環境設定の場合に比して、 障害の発見は容易で ある。  If there is a problem with the hardware resources, the consumption time of the CPU, memory, hard disk, etc. of a specific machine may not be obtained or the consumption rate may become 0, which is lower than the case of the application or environment setting. Thus, finding obstacles is easy.
例えば、 ODDにサーバ Aからのハードウエア資源の消費状況に関する値が 表示されなくなった場合、サーバ Aは障害を起こしていると考えることが出来 る。  For example, if the value of hardware resource consumption from Server A is no longer displayed in ODD, Server A can be considered to have failed.
4. ネットワークの場合 4. For networks
ネットワーク障害は一般的に、 システムを構成するサーバマシンがインター ネットを介して接続された二つ以上の LANに分散して配置されている場合に 影響を与える。 たとえそれぞれの拠点の LAN の性能が良くても、 インターネ ットの性能までを保証することはできない。  Generally, network failures affect the server machines that make up the system when they are distributed over two or more LANs connected via the Internet. Even if the LAN of each site has good performance, it cannot guarantee the performance of the Internet.
例えばサーバマシン Aが LAN#1に、 サーバマシン Bが LAN#2に配置され ており、 LAN#1 と LAN#2 がインターネットを介して接続されている場合、 LAN#1と LAN#2がいかに髙速であっても、インターネットの部分はコント口 ールすることができないため、 システム全体のネットワーク性能については誰 も保証することができない。 ODD の表示においては、 個々のオブジェク トをつなぐ線の色や種類 (波線 や点線など) を変えて表示し、 オブジェク トが異なるネットワーク上に存在す ることを示す。 加えて、 個々の表示アイテムごとの動作性能を表示する。 For example, if server machine A is located on LAN # 1 and server machine B is located on LAN # 2, and LAN # 1 and LAN # 2 are connected via the Internet, how is LAN # 1 and LAN # 2 connected? Even at high speeds, no one can guarantee the network performance of the entire system because the Internet part cannot be controlled. In the ODD display, the colors and types of lines connecting individual objects (waves, dotted lines, etc.) are displayed differently to indicate that the objects exist on different networks. In addition, the performance of each display item is displayed.
本発明により、アプリケーションの動作性能をより細かな処理単位で測定し、 且つ個々の処理単位が動作しているハードゥエア資源との対応を容易に明らか にできる。 加えて、 ODD により、 上記の個々の処理単位の動作性能とそれら が動作しているハードウエア資源との対応を視覚的、 直感的に理解できる形で 提供することが可能となる。  According to the present invention, the operation performance of an application can be measured in finer processing units, and the correspondence with the hardware resources in which each processing unit is running can be easily clarified. In addition, ODD makes it possible to provide a visual and intuitive understanding of the correspondence between the performance of the individual processing units and the hardware resources on which they operate.
このように、 ODD は、 問題の原因を特定するのに役立つ情報を直感的に理 解できる形で提供することで、 ュ一ザが応答性能の調査を容易に行うことを可 能とする。  In this way, ODD makes it easy for users to investigate response performance by providing intuitively understandable information that helps identify the cause of a problem.
これにより、 システムの性能劣化を検知した際には、 その要因を細かな処理 単位レベルで特定することが可能となり、 解決する為に改善すべきプログラム をより細かな処理単位レベルで知ることが可能となる。  As a result, when system performance degradation is detected, it is possible to identify the cause at a fine processing unit level, and it is possible to know at a finer processing unit level the programs that need to be improved to solve them It becomes.
また、 処理単位とハードゥ ア資源の対応関係を容易に把握することが可能 となるため、 システムの性能劣化を解決しょうとする場合において、 ソフトゥ エアの処理方法の改善と IT リソースの処理能力の向上を図るなど、 システム' を構成するソフトウエアとハードウェアの両面から、 その要因をより詳細なレ ベルで特定し、 改善すべきアイテム (修正すべき処理単位または増強すべきハ 一ドウエア資源など) を知ることが可能となる。 結果として、 アプリケーショ ンのソースコードの書き換え '修正やハードウェア資源の増強を行って、 ァプ リケーションの動作性能を迅速に最適化することができる。  In addition, since it is possible to easily understand the correspondence between processing units and hardware resources, it is possible to improve the processing method of software and improve the processing capacity of IT resources when solving system performance degradation. The factors that need to be specified at a more detailed level in terms of both software and hardware that make up the system, such as planning, and items to be improved (such as processing units to be corrected or hardware resources to be enhanced) It becomes possible to know. As a result, it is possible to quickly optimize the operation performance of the application by rewriting or modifying the source code of the application and increasing the hardware resources.

Claims

請求の範囲 The scope of the claims
1 . ネットワークで接続された複数のサーバにインストールされ、 その一部ま たは全てがパーチャルマシン環境下で協同動作する複数のアプリケーションに 関して、 該アプリケーションの動作性能を測定 ·分析し、 その結果に基づき協 同動作を最適化するためのシステム性能測定分析をコンビユータで実現させる ためのプログラムであって、 1. Measure and analyze the performance of multiple applications installed on multiple servers connected via a network, some or all of which cooperate in a virtual machine environment. A program that enables a computer to perform system performance measurement and analysis to optimize cooperative operation based on the results.
該アプリケーションを構成する処理単位を解析 ·抽出し、 処理単位間の呼び 出し関係を解析 ·取得するアプリケーション解析ステツプと、  An application analysis step of analyzing and extracting processing units constituting the application, and analyzing and acquiring a calling relationship between the processing units;
該処理単位の動作性能を測定する動作性能測定ステップと、  An operation performance measuring step of measuring the operation performance of the processing unit;
該処理単位と、 該処理単位が利用するハードゥエア資源との対応関係を解 析 ·取得するハードウエア資源特定ステップと、  Analyzing the correspondence between the processing unit and the hardware resources used by the processing unit;
該処理単位間の呼び出し関係、 該処理単位の動作性能、 該処理単位が利用す るハードウェア資源を、 共に表示する表示ステップと、  A display step of displaying together a calling relationship between the processing units, an operation performance of the processing units, and a hardware resource used by the processing units;
を備えることを特徴とするシステム性能測定分析プログラム。 A system performance measurement analysis program characterized by comprising:
2 .前記表示ステップの表示は、ユーザーが指定した任意の時間毎に更新され、 更新時の処理単位の動作性能を示すことを特徴とする請求項 1に記載のシステ ム性能測定分析プログラム。 2. The system performance measurement analysis program according to claim 1, wherein the display of the display step is updated at an arbitrary time designated by a user, and indicates an operation performance of a processing unit at the time of the update.
3 . 前記動作性能測定ステップでは、 処理単位の実行時間及びネットワークの 通信時間を測定することを特徴とする請求項 1に記載のシステム性能測定分析 3. The system performance measurement analysis according to claim 1, wherein in the operation performance measurement step, an execution time of a processing unit and a communication time of a network are measured.
4 . 前記動作性能測定ステップでは、 アプリケーションのソースコードを改変 せずに動作性能を測定することを特徴とする請求項 1に記載のシステム性能測 定分析プログラム。 4. In the operation performance measurement step, modify the application source code. 2. The system performance measurement analysis program according to claim 1, wherein the operation performance is measured without performing the operation.
5 . 前記アプリケーション解析ステップでは、 バーチャルマシン環境が提供す るデイスアセンブラ機能を利用してソースコードを復元するステップと、 ソー スコードを解析して処理単位の抽出並びに処 a単位間の呼び出し関係を取得す るステップによつて構成されることを特徴とする請求項 1に記載のシステム性 能測定分析プログラム。 5. In the application analysis step, the source code is restored using the disk assembler function provided by the virtual machine environment, and the source code is analyzed to extract the processing unit and obtain the calling relationship between the processing units. The system performance measurement analysis program according to claim 1, wherein the program is configured by the following steps.
6 . 前記ハードウェア資源特定ステップでは、 バーチャルマシン環境のメタデ ータを利用して、 処理単位と処理単位が利用するハードウエア資源の対応関係 を取得することを特徴とする請求項 1に記載のシステム性能測定分析プロダラ ム。 6. The hardware resource identification step according to claim 1, wherein a correspondence between a processing unit and a hardware resource used by the processing unit is acquired using metadata of a virtual machine environment. System performance measurement analysis program.
7 . 前記表示ステップは、 処理単位と処理単位が動作するハードウェア資源の 対応関係を、 視覚的に表現することを特徴とする請求項 1に記載のシステム性 能測定分析プログラム。 7. The system performance measurement analysis program according to claim 1, wherein the display step visually represents a correspondence between a processing unit and a hardware resource on which the processing unit operates.
8 . ネットワークで接続された複数のサーバにインストールされ、 その一部ま たは全てがバーチャルマシン環境下で協同動作する複数のアプリケーションに 関して、 該アプリケーヨンの動作性能を測定 ·分析し、 その結果に基づき協同 動作を最適化するためのシステム性能測定分析方法であつて、 8. Measure and analyze the performance of multiple applications installed on multiple servers connected over a network, some or all of which cooperate in a virtual machine environment. A system performance measurement and analysis method for optimizing cooperative operation based on results.
該アプリケーションを構成する処理単位を解析 ·抽出し、 処理単位間の呼び 出し関係を解析 ·取得するアプリケーション解析ステップと、  An application analysis step of analyzing and extracting processing units constituting the application, and analyzing and acquiring a calling relationship between the processing units;
該処理単位の動作性能を測定する動作性能測定二 該処理単位と、 該処理単位が利用するハードウエア資源との対応関係を解 析 ·取得するハードウェア資源特定ステツプと、 An operation performance measurement method for measuring the operation performance of the processing unit. Analyzing the correspondence between the processing unit and the hardware resources used by the processing unit;
該処理単位間の呼び出し関係、 該処理単位の動作性能、 該処理単位が利用す るハードウエア資源を、 共に表示する表示ステップと、  A display step of displaying together a calling relationship between the processing units, an operation performance of the processing units, and a hardware resource used by the processing units;
を備えることを特徴とするシステム性能測定分析方法。 A method for measuring and analyzing system performance, comprising:
9 . ネットワークで接続された複数のサーバにインストールされ、 その一部ま たは全てがパーチヤルマシン環境下で協同動作する複数のアプリケーションに 関して、 該アプリケーションの動作性能を測定 ·分析し、 その結果に基づき協 同動作を最適化するためのシステム性能測定分析装置であって、 9. For multiple applications installed on multiple servers connected via a network, some or all of which cooperate in a partial machine environment, measure and analyze the performance of the applications and analyze the performance. A system performance measurement and analysis device for optimizing a cooperative operation based on a result.
該アプリケーションを構成する処理単位を解析 ·抽出し、 処理単位間の呼ぴ 出し関係を解析 ·取得するアプリケーション解析手段と、  Application analysis means for analyzing and extracting processing units constituting the application, and analyzing and acquiring a calling relationship between the processing units;
該処理単位の動作性能を測定する動作性能測定手段と、  Operating performance measuring means for measuring the operating performance of the processing unit;
該処理単位と、 該処理単位が利用するハードウエア資源との対応関係を解 析 ·取得するハ一ドウエア資源特定手段と、  Hardware resource specifying means for analyzing and acquiring the correspondence between the processing unit and the hardware resources used by the processing unit;
該処理単位間の呼び出し関係、 該処理単位の動作性能、 該処理単位が利用す るハードウェア資源を、 共に表示する表示手段と、  Display means for displaying together a call relationship between the processing units, an operation performance of the processing units, and a hardware resource used by the processing units;
を備えることを特徴とするシステム性能測定分析装置。 A system performance measurement / analysis device comprising:
PCT/JP2004/002011 2003-02-24 2004-02-20 System performance measurement/analysis device WO2004075061A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003-046120 2003-02-24
JP2003046120A JP2004264914A (en) 2003-02-24 2003-02-24 Apparatus for measuring and analyzing system performance

Publications (1)

Publication Number Publication Date
WO2004075061A1 true WO2004075061A1 (en) 2004-09-02

Family

ID=32905540

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2004/002011 WO2004075061A1 (en) 2003-02-24 2004-02-20 System performance measurement/analysis device

Country Status (2)

Country Link
JP (1) JP2004264914A (en)
WO (1) WO2004075061A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11222078B2 (en) 2019-02-01 2022-01-11 Hewlett Packard Enterprise Development Lp Database operation classification

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4938576B2 (en) * 2007-07-24 2012-05-23 日本電信電話株式会社 Information collection system and information collection method
US8566800B2 (en) * 2010-05-11 2013-10-22 Ca, Inc. Detection of method calls to streamline diagnosis of custom code through dynamic instrumentation
US8429187B2 (en) * 2011-03-21 2013-04-23 Amazon Technologies, Inc. Method and system for dynamically tagging metrics data
US9411616B2 (en) 2011-12-09 2016-08-09 Ca, Inc. Classloader/instrumentation approach for invoking non-bound libraries
CN102609351B (en) * 2012-01-11 2015-12-02 华为技术有限公司 For the method, apparatus and system of the performance of analytic system
JP6452904B1 (en) 2017-12-25 2019-01-16 三菱電機株式会社 Design support apparatus, design support method, and program
WO2022123763A1 (en) * 2020-12-11 2022-06-16 日本電信電話株式会社 Call graph creation device, call graph creation method, and program
US11816364B2 (en) * 2022-01-13 2023-11-14 Microsoft Technology Licensing, Llc Performance evaluation of an application based on detecting degradation caused by other computing processes

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6435637A (en) * 1987-07-31 1989-02-06 Hitachi Ltd Program tracing system
JPH0580992A (en) * 1991-09-20 1993-04-02 Hokkaido Nippon Denki Software Kk Output system for procedure-function relation chart
JPH05274132A (en) * 1992-03-25 1993-10-22 Matsushita Electric Ind Co Ltd Program analyzer
JP2000122901A (en) * 1998-10-12 2000-04-28 Hitachi Ltd Journal acquirement analysis device
JP2000315198A (en) * 1999-05-06 2000-11-14 Hitachi Ltd Distributed processing system and its performance monitoring method
JP2001282759A (en) * 2000-03-31 2001-10-12 Suntory Ltd Operating mechanism for operating web application system, and web application system
JP2002082926A (en) * 2000-09-06 2002-03-22 Nippon Telegr & Teleph Corp <Ntt> Distributed application test and operation management system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6435637A (en) * 1987-07-31 1989-02-06 Hitachi Ltd Program tracing system
JPH0580992A (en) * 1991-09-20 1993-04-02 Hokkaido Nippon Denki Software Kk Output system for procedure-function relation chart
JPH05274132A (en) * 1992-03-25 1993-10-22 Matsushita Electric Ind Co Ltd Program analyzer
JP2000122901A (en) * 1998-10-12 2000-04-28 Hitachi Ltd Journal acquirement analysis device
JP2000315198A (en) * 1999-05-06 2000-11-14 Hitachi Ltd Distributed processing system and its performance monitoring method
JP2001282759A (en) * 2000-03-31 2001-10-12 Suntory Ltd Operating mechanism for operating web application system, and web application system
JP2002082926A (en) * 2000-09-06 2002-03-22 Nippon Telegr & Teleph Corp <Ntt> Distributed application test and operation management system

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
MENDLEN DAVE: "Microsoft. NET no subete: Nyumon visual studio.NET: Web service to XML o tsukatte web application o jinsoku katsu kantan ni sakusei suru", MICROSOFT DEVELOPMENT NETWORK MAGAZINE JAPANESE VERSION, no. 7, 18 October 2000 (2000-10-18), pages 73 - 86, XP002982551 *
RICHTER JEFFREY: "Tokushu 1 microsoft.NET programming nyumon part I: NET frame work application to kata no build, package, haifu, kanri part I", MICROSOFT DEVELOPMENT NETWORK MAGAZINE JAPANESE VERSION, no. 12, 18 March 2001 (2001-03-18), pages 27 - 39, XP002982553 *
SAKAKIBARA KAZUYA: "Tokushu 2: Enterprise e mukau visual studio 6.0: Shin no tool suite o mezashite", DR. DOBB'S JOURNAL JAPAN., vol. 7, no. 11, 1 November 1998 (1998-11-01), pages 71 - 76, XP002982550 *
TSUZUKI KAORU: "Tokubetsu kikaku: Windows apli kaihatsu no saishin trend o saguru: Visual studio 6.0 no zen'yo", ASCII, vol. 22, no. 11, 1 November 1998 (1998-11-01), pages 252 - 257, XP002982552 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11222078B2 (en) 2019-02-01 2022-01-11 Hewlett Packard Enterprise Development Lp Database operation classification
US11755660B2 (en) 2019-02-01 2023-09-12 Hewlett Packard Enterprise Development Lp Database operation classification

Also Published As

Publication number Publication date
JP2004264914A (en) 2004-09-24

Similar Documents

Publication Publication Date Title
US11659020B2 (en) Method and system for real-time modeling of communication, virtualization and transaction execution related topological aspects of monitored software applications and hardware entities
Zhao et al. lprof: A non-intrusive request flow profiler for distributed systems
CA2969131C (en) Data stream processing language for analyzing instrumented software
US8832665B2 (en) Method and system for tracing individual transactions at the granularity level of method calls throughout distributed heterogeneous applications without source code modifications including the detection of outgoing requests
US10489264B2 (en) Monitoring activity on a computer
US20090049429A1 (en) Method and System for Tracing Individual Transactions at the Granularity Level of Method Calls Throughout Distributed Heterogeneous Applications Without Source Code Modifications
US20170357524A1 (en) Automated software configuration management
US20100070980A1 (en) Event detection system, event detection method, and program
US20070168994A1 (en) Debugging a computer program in a distributed debugger
US7496795B2 (en) Method, system, and computer program product for light weight memory leak detection
US20150220421A1 (en) System and Method for Providing Runtime Diagnostics of Executing Applications
US7720950B2 (en) Discovery, maintenance, and representation of entities in a managed system environment
JP2009516239A (en) General purpose multi-instance method and GUI detection system for tracking and monitoring computer applications
Jayaraman et al. Compact visualization of Java program execution
US10084637B2 (en) Automatic task tracking
WO2004075061A1 (en) System performance measurement/analysis device
JP2010009411A (en) Virtual environment operation support system and virtual environment operation support program
WO2018200961A1 (en) Hyper dynamic java management extension
JP5803935B2 (en) Availability analysis apparatus and availability analysis method
WO2012062515A1 (en) Method and system for visualising a system model
US11354220B2 (en) Instrumentation trace capture technique
US11615015B2 (en) Trace anomaly grouping and visualization technique
JP2014092821A (en) Log acquisition program, log acquisition device, and log acquisition method
US11811804B1 (en) System and method for detecting process anomalies in a distributed computation system utilizing containers
Baggio et al. Intrusion free monitoring: An observation engine for message server based applications

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase