WO2012031419A1 - Fine-grained performance modeling method for web application and system thereof - Google Patents

Fine-grained performance modeling method for web application and system thereof Download PDF

Info

Publication number
WO2012031419A1
WO2012031419A1 PCT/CN2010/078104 CN2010078104W WO2012031419A1 WO 2012031419 A1 WO2012031419 A1 WO 2012031419A1 CN 2010078104 W CN2010078104 W CN 2010078104W WO 2012031419 A1 WO2012031419 A1 WO 2012031419A1
Authority
WO
WIPO (PCT)
Prior art keywords
web application
data
performance
execution
model
Prior art date
Application number
PCT/CN2010/078104
Other languages
French (fr)
Chinese (zh)
Inventor
王伟
黄翔
张文博
魏峻
钟华
黄涛
Original Assignee
中国科学院软件研究所
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 中国科学院软件研究所 filed Critical 中国科学院软件研究所
Publication of WO2012031419A1 publication Critical patent/WO2012031419A1/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/3447Performance evaluation by modeling
    • 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

Definitions

  • the invention relates to a web application performance modeling technology, in particular to a modeling method and a modeling system for constructing an adaptive web application fine-grained performance model based on a hierarchical queuing network.
  • Multi-layered Web applications have become mainstream web applications.
  • a large number of key applications e-banking, online payment, etc.
  • QoS system quality of service
  • the basic principle of performance prediction is to analyze the performance of the system by simulating the situation of real system queuing and resource competition.
  • Inputs typically include data such as user behavior, component associations, and resource consumption.
  • Output performance data includes throughput, response time, and resource utilization.
  • the prediction method can be divided into two types: coarse granularity and fine granularity.
  • the coarse-grained approach focuses on portraying the behavior of the server, which is to study the resource consumption of the server and server at the macro level.
  • This method is relatively simple to model and is suitable for analyzing the overall performance of multiple servers under clusters. But this approach does not consider how a single software component consumes resources and how components and components are related. Therefore, the prediction results do not reflect the resource consumption of the software components, and thus cannot provide useful data for discovering performance problems on the software structure.
  • the basis of the fine-grained method is the execution structure diagram of the software, that is, the call and resource consumption between important components in the system. So in addition to predicting the performance of individual software components, the fine-grained approach predicts the overall performance of the system.
  • Wi ll iam and Smith first proposed a software-based performance engineering approach (CU Smith and LG Wi ia iams, Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software. Addison Wesley, 2002) to introduce performance analysis into the software development process.
  • Gomaa and Menashe proposed a method based on the "client/server" system model (H. Gomaa and D. Menasce, Performance Engineering of Component-Based Distributed Software Systems, Performance Eng., R. Dumke et al., eds. pp. 40-55, 2001.
  • the method directly uses the class diagram and the collaboration diagram to describe the interaction form between components to generate an extended queuing network (EQN) model.
  • EQN extended queuing network
  • Woodside et al. proposed a method for automatically generating LQN models by inserting and collecting execution trajectory code from a software design environment (M. Woodside, C. Hrischuk, B. Sel ic, and S. Brayarov, Automated Performance Model ing of Software Generated by a Design Environment, Performance Evaluation, vol. 45, pp. 107-123, 2001.). This method inserts code into the source code based on the abstraction level given by the designer, and collects the execution trajectory and resource consumption exhibited by the software under the given test case. However, it is only suitable for development software, and is not suitable for running web applications.
  • Yoshihira and Jiang proposed a method based on monitoring data to discover stable relationships in systems (Guofei Jiang, Haifeng Chen, Kenj i Yoshihira, Efficient and Scalable Algorithms for Inferring Likely Invariants in Distributed Systems, IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, VOL 19, NO. 11, NOVEMBER (2007) 1508-1523). They collect the stable consumption of the components by collecting the resource consumption of the components in the request processing process, and then analyze the processing power of the system according to the established associated network, find the bottleneck, and then do capacity planning. However, only the scalability of the system can be predicted, and the performance of the system cannot be predicted.
  • the present invention designs a system and method for automatically constructing a performance model based on monitoring data according to the characteristics of the Web application system and its platform.
  • the log information that can be collected by the web application platform is based on a statistical method, and the technology of trajectory tracking, service time calculation and user behavior simulation is transparently constructed to enable fine-grained prediction.
  • Performance model for system performance is transparently constructed to enable fine-grained prediction.
  • the technical basis of the invention is the monitoring technology that the web application platform system can provide, and the acquisition mainly includes three types of log data, one is the execution trajectory of the service (called a call chain); the other is the total utilization of the CPU, specifically refers to a single server.
  • CPU utilization if the server has multiple cores, the usage of all cores is accumulated; one is the user's use of the system's trajectory.
  • the web application invokes a series of components to collaborate to do the work, and the execution flow of the component that performs the work is called the call chain.
  • the Servlet component calls the EJB component
  • the EJB component calls the database.
  • the user's use of the system's trajectory refers to all actions from the user's first login to the application to the last access to the application, generally including multiple requests for different pages of the system.
  • user behavior refers to all actions from the user's first login to the application to the last access to the application, generally including multiple requests for different pages of the system.
  • tools such as Oracle's Weblogic Diagnostics Framework, the open source InfraRED tool (http://infrared.sourceforge.neO, and the stone research paper (Curtis E.) Hrischuk, Murray Woodside. Trace-Based Load Characterization for Generating Performance Software Models. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 25, NO. 1, JANUARY/FEBRUARY 1999), etc. Therefore, the present invention will not address the description of the monitoring technique, specifically Implementation can refer to these methods.
  • the process of predicting performance using the present invention is completely transparent and automatic to system maintenance personnel, requiring no manual intervention.
  • the performance model is automatically constructed and updated based on the input log information.
  • predictive results are needed, maintenance personnel only need to call the analysis function to get the future performance of the system.
  • the predicted results include the throughput rate of the system, the response time, the resource utilization of each software component and the total resource utilization, and the resource utilization of each hardware resource.
  • One of the objectives of the present invention is to provide a method for modeling fine-grained performance of a web application, comprising the following steps:
  • the web application system running data includes execution trajectory data, total CPU utilization, and trajectory data of the user using the system.
  • Execution trajectory data is the execution flow of a series of components called the call chain for the system to complete the request made by the user.
  • the performance data includes a derived vector of execution maps, deployment status data, service time, and user behavior pattern maps.
  • Deployment status data refers to the location of each component on the server in the web application.
  • Service time refers to the actual execution time of a functional service (such as a function) that the component provides to the outbound service, without waiting time.
  • the execution trajectory data is represented by a call chain, wherein the node is a component, the edge is a calling relationship between components, the solid line indicates a synchronization request, the dotted line indicates an asynchronous request, and the number indicates the number of calls.
  • An execution map of a transaction is obtained by merging a peer node of each call chain of a transaction (ie, the same call chain of the first node), the peer node being that the two nodes ⁇ and ⁇ satisfy the following conditions :
  • the user's HTTP request is a transaction.
  • the component deployment status data is obtained by analyzing the IP address of the server where each component on the execution track is located.
  • the Kalman filtering method is used to calculate the execution time of each component providing service to obtain the service time.
  • Kalman filtering provides a general method for estimating the unobservable state X at discrete points in time.
  • the k-th time state can be defined as a linear stochastic difference equation:
  • 3 ⁇ 4 ⁇ + + w -i (L a)
  • the total CPU utilization observed at time k is defined as: - ff3 ⁇ 4 ⁇ ! ⁇ 3 ⁇ 4 (1. b)
  • A is the state transition matrix from k-1 to k
  • -i is an optional control parameter
  • B is a matrix related to control
  • Mfe is a measurement error
  • its covariance matrix is Q M
  • is the conversion matrix to
  • ⁇ 3 ⁇ 4 is the measurement error
  • Rk covariance matrix
  • the method for converting the user's use of the system's trajectory data into a derived vector is:
  • the method for generating the hierarchical queuing network performance model is:
  • An object of the present invention is to provide a fine-grained performance modeling system for a web application system, including:
  • the status update module sets an update period of the web application middleware platform, and calculates performance data according to the operation data of the web application system in each update period;
  • the analysis module generates and displays a hierarchical queuing network performance model of the web application system according to the current performance data.
  • the status update module includes an execution graph analyzer, a deployment analyzer, a service time analyzer, and a user behavior simplifier. Executing the graph analyzer to calculate the overall execution path of an event by executing the trajectory data calculation web application system; obtaining the execution map;
  • the deployment analyzer extracts location data of each component in the execution trajectory data on the server, and obtains the component deployment status data;
  • the service time analyzer calculates the execution time of each component of the web application system to obtain the service time
  • the user behavior reducer converts the trajectory data of the user using the system into a derivative vector of the user behavior pattern diagram.
  • the log load module includes a track information loader, a CPU utilization loader, and a user behavior loader, and the track information loader loads execution track data; the CPU utilization loader loads the total of the system server CPU. Utilization; User Behavior Loader loads the trajectory data used by the user from login to exit.
  • the above performance modeling methods are periodically updated as the system operates to ensure that the state of the performance model can change as the system changes.
  • the prediction step can be triggered to obtain future performance models by using performance data such as execution maps and deployment state data in the state storage module.
  • the performance model of this study is based on a hierarchical queuing network (M. Woodside, "The Stochastic Rendezvous Network Model for Performance of Synchronous Cl ient-Server Like Distributed Software", IEEE Transactions on Computers, Vol. 44, No. 1, January 1995, pp. 20-34), the biggest advantage of this model is that it can describe the use of resources hierarchically, in line with the needs of fine-grained performance analysis.
  • the invention provides a performance modeling system and method for a web application platform, the advantages of which are as follows:
  • the model structure is based on the operational data and statistical methods monitored by the Web application platform, and can be automatically updated as the system status changes;
  • Model granularity follows the standard Web application component model, using a variety of Web application platforms
  • the model simplifies the user behavior (ie, load) into a model acceptable to the hierarchical queuing network model, which can truly reflect the use of the Web application system;
  • the performance of the future of the Web application system can provide multiple levels of performance data such as software components, server nodes and clusters.
  • FIG. 1 is a flow chart of a performance modeling method in an embodiment of the present invention.
  • FIG. 2 is a structural block diagram of a performance modeling system according to an embodiment of the present invention.
  • FIG. 3 is an example of a call chain used in an embodiment of the present invention.
  • FIG. 4 is an execution diagram of the call chain of FIG. 3 generated by the method and system of the present invention.
  • Figure 5 is a diagram of a hierarchical queuing network model generated by the execution map of Figure 4 in an embodiment of the present invention.
  • Figure 6 is a hierarchical queued network model diagram with the deployment state data appended to Figure 5.
  • Figure 7 is a diagram of a hierarchical queuing network model after adding service time in Figure 6.
  • FIG. 8 is a load diagram of a derived vector generation of a user behavior pattern diagram in an embodiment of the present invention.
  • Figure 9 is a complete hierarchical queued network model diagram of the embodiment. detailed description
  • the present invention is based on a standard component model supported by Web application middleware (such as Servlet, EJB, SQL, etc.), automatically calculates performance data through monitored operational data and statistical methods, and finally generates a performance model.
  • the main monitoring data includes the call chain, the total CPU utilization and the trajectory of the user's use of the system.
  • the invention mainly relates to two modules, one is a state update module for monitoring and processing data, and the other is an analysis module, which can build a performance model by using the detected operational data, and predict the future performance state of the web application, which is user and maintenance. People interacting.
  • the status update module is mainly responsible for monitoring the execution of the web application, and obtaining the running data by analyzing the log information. Constructs execution diagrams, gets deployment state data, calculates service time, and simplifies user behavior.
  • the analysis module after receiving the command from the maintenance personnel, constructs a performance model that conforms to the latest state of the system by loading the latest performance data, and then calculates and analyzes the future performance of the system.
  • the specific implementation process of the present invention is shown in FIG.
  • the performance data is the link between data processing and performance analysis.
  • the running data is processed, it is saved as performance data, and when performance needs to be analyzed, it is extracted from it for analysis.
  • the specific operational data is the execution trajectory data, the total utilization of the CPU, and the trajectory data of the user using the system.
  • Performance data includes derived vectors for execution graphs, deployment state data, service time, and user behavior pattern diagrams. The acquisition of each performance data is described in detail below in connection with the system of the present invention.
  • the system of the present invention should at least include
  • the status update module sets an update period of the web application middleware platform, and calculates performance data according to the operation data of the web application system in each update period;
  • the analysis module generates and displays a hierarchical queuing network performance model of the web application system according to the current performance data.
  • the present embodiment employs the overall structure as shown in FIG.
  • the main module has five parts: initial module, log load module, status update module, state storage module and analysis module.
  • the status update module is the core of the entire algorithm, responsible for the key data required for production forecasting.
  • the small arrows in the figure indicate that data is taken from the direction of the arrow, such as the user behavior simplifier getting data from the user behavior loader. Large arrows indicate the order of execution.
  • the initial module is primarily responsible for determining the web application middleware platform to be monitored.
  • the purpose of determining the pending middleware platform is to facilitate the normal operation of the log load module. Because there are some differences in the different middleware platforms, the monitoring tools on them will have some differences. In order to obtain the required operational data, it is necessary. Make a little adjustment to the specificity. However, the basic principles of these schemes are consistent, and as mentioned above, there are many achievements in the fields of open source, commerce, and research. Therefore, the method of monitoring is not specifically described here. The required monitoring data format is described in the log load module.
  • the log load module is mainly responsible for loading the operational data monitored by the middleware into the system of the invention, organizing The format required by the cost invention provides data for the status update module.
  • the module includes three sub-modules: Trace Information Loader, CPU Utilization Loader, User Behavior Loader.
  • the trace information loader loads the data associated with the call chain and organizes it into the format required for the study.
  • Figure 3 shows the different call chain structures for a transaction specifically used by the present invention.
  • a node represents a component
  • an edge represents a call relationship between components
  • a solid line represents a synchronization request
  • a dashed line represents an asynchronous request
  • a number represents the number of calls.
  • CO represents the starting component of the transaction
  • r0 represents the number of user requests
  • r0_l represents the number of times the CO component calls the C1 component.
  • the track contains the IP information of the server where each component is located.
  • the CPU utilization loader is mainly responsible for the total utilization of the server CPU periodically loaded. This study collects in seconds.
  • the format of each record is: time : [ V . ⁇ Vn ].
  • Each record begins with the time of recording, followed by a record of the CPU utilization of each core. If it is a traditional single-core CPU, the number of data elements is one, and if it is a multi-core CPU, the number of data elements is the same as the number of cores.
  • the user behavior loader is primarily responsible for loading the user's trajectory from the login to the exit process.
  • the transaction corresponds to a service exposed to the user, usually a web page.
  • the status update module is the key to the present invention and is responsible for statistically analyzing the data directly required for performance modeling from the loaded log information.
  • the status update module determines the length of the status update period, and then updates the status by the specified period after the determination.
  • the length of the cycle can be determined according to the frequency of system updates, which is shorter than the average update cycle. In general, set the period to 10-30 minutes.
  • the status update module consists of an execution graph analyzer, a deployment analyzer, a service time analyzer, and a user behavior simplifier.
  • the execution graph parser is responsible for parsing the execution path of a transaction from the call chain (read from the trace information loader) rather than calling a specific call chain one time. Therefore, the execution graph analyzer forms the overall execution path by merging the peer nodes of each call chain of a transaction, that is, the execution graph of a transaction. Because if you simply merge the components in the graph by node, it will lead to structural inconsistency. In the call chain shown in Figure 3, if you just merge by node, the path of C0->C4->C1->C3 will appear, that is, component C0 calls C4, C4 calls Cl, and C1 calls C3. However, the path does not exist, and the cause of the inconsistency is that C4->C1 is not equal to C0->C1, if the merge process If there is no distinction, there will be a path that does not actually exist.
  • this paper defines the concept of peer nodes. If the nodes ⁇ and ⁇ are equal, one condition needs to be met:
  • the merging of peer nodes is as follows: Use ⁇ ( ⁇ ) to represent the peer class of node X. If two peer nodes have ⁇ -> ⁇ in the call chain, then there is a flaw in the merged transaction execution graph. ( ⁇ ) -> ⁇ ( ⁇ ).
  • Figure 4 depicts the transaction execution diagram of the merged call chain of Figure 3, in which the call relationship of C0->C1->C3 and C0->C4->C1 is preserved, so no inconsistency is caused.
  • the deployment analyzer primarily analyzes the deployment location of components in the call chain (read from the trace information loader), which server a component is deployed on. This part of the information is still extracted from the trajectory monitoring information, and the deployment information of the component is obtained by analyzing the IP of the physical device where each component on the trajectory is located.
  • the Service Time Analyzer is primarily used to calculate the component's service time, depending on the CPU utilization loader, the deployment analyzer, and the data generated by the execution graph analyzer. Because the service time of the component is difficult to accurately obtain through monitoring, the service time of the component can only be calculated from other monitorable data. Service time refers to a functional service (such as a function) that the component provides to the outside, the actual execution time, and no waiting time.
  • the present invention uses Kalman filtering to perform calculations (R. E. Kalman, A New Approach to Linear Filtering and Prediction Problems, Transactions of the ASME-Journal of Basic Engineering, I960).
  • the execution graph and deployment status data are used in the calculation to determine the components on each server and the frequency of calls to these components (that is, the throughput rate, which can be obtained by dividing the number of calls divided by the status update period, in seconds). At the same time, monitoring data for CPU utilization is also used.
  • the calculation of the service time of components on a server is described below.
  • Kalman filtering provides a general method for estimating the unobservable state X at discrete points in time.
  • the k-th moment state can be defined as a linear stochastic difference equation:
  • the total utilization rate of the CPU at the kth time is defined as:
  • 3 ⁇ 4 ⁇ . . (L b)
  • A is the state transition matrix from k-1 to k
  • -i is an optional control parameter
  • B is the matrix associated with the control
  • Mfe is the measurement error
  • is the conversion matrix to
  • ⁇ 3 ⁇ 4 is the measurement error
  • its co-party The difference matrix is 3 ⁇ 4.
  • the present invention maps equations (1. a) and (1. b) as follows:
  • the Kalman algorithm also requires an initial value and Rj.
  • the iterative process is as follows:
  • 3 ⁇ 4 (./ ⁇ K k H k ⁇ P k initial value and 13 ⁇ 4 have little effect on Kalman filter calculation and can be set to any reasonable value.
  • the three matrices i3 ⁇ 4 Q ⁇ P 3 ⁇ 4 must be determined for each iteration.
  • H t can be obtained directly by calling the chain information, that is, each service
  • the throughput rate (the total number of times the service is called divided by the length of the sample period in one sample period).
  • the covariance matrix representing the X change in each iteration is usually not available for online systems, and only the range of variation can be estimated. However, if it is too large, the estimation result will be too large. If it is too small, the result will be subtle and the fluctuation of service time will not be reflected.
  • One strategy is to set the diagonal matrix, and the diagonal element is the square of the maximum value of the X change during an iteration.
  • 3 ⁇ 4 ⁇ 8 ⁇ > ⁇ 2, , where ⁇ ( ⁇ ⁇ - ) is the error of each measurement, that is, the measurement error of the total utilization of the CPU.
  • ⁇ ( ⁇ ⁇ - ) is the error of each measurement, that is, the measurement error of the total utilization of the CPU.
  • the User Behavior Reducer is primarily responsible for translating the actual user behavior (read from the User Behavior Loader) into a form acceptable to the hierarchical queuing network.
  • the present invention introduces a derivative vector of the user behavior pattern diagram, which describes the basic characteristics of the user behavior pattern diagram, that is, the number of times each transaction is averaged in one session, and the user behavior pattern diagram The number of times a transaction is accessed is equal in probability.
  • V denote the derived vector of the user behavior pattern, indicating the number of times each transaction was accessed in a session. If the number of times of ⁇ 3 ⁇ 4 is 1, that is, the number of times the transaction starts is 1, then the number of times each transaction is accessed can be defined as the form of formula (3), that is, the number of times each transaction is accessed is equal to the number of times its precursor node is accessed and accessed. The product of the node probabilities.
  • Equation 3 can be written as a matrix:
  • the status update module periodically executes at the interval of the status update period to update the performance data. After each update, the performance data is saved in the state storage module for analysis by the module.
  • the state storage module is mainly responsible for storing the latest state generated by the state update module, including: execution map, deployment state data, service time, and user behavior, corresponding to the results generated by the corresponding sub-modules of the state update module.
  • execution map e.g., execution map
  • deployment state data e.g., deployment state data
  • service time e.g., deployment state data
  • user behavior e.g., user behavior
  • the analysis module extracts data from the module for prediction.
  • the analysis module is responsible for generating performance models based on state information and invoking its tools to analyze future performance.
  • the module consists primarily of a performance model builder, a performance analysis module, and a display module.
  • the status storage module finds that the performance data exists and is started, the analysis module calls each sub-module to work, and presents the performance analysis result to the maintenance personnel. Otherwise, an acquisition cycle has not been completed at this time, and no operational data is collected, waiting for the maintenance personnel to start the analysis module again.
  • the performance model constructor is responsible for generating the hierarchical queuing network performance model based on the performance data, and specifically includes four steps: First, generating a single service hierarchical queuing network model according to a single execution graph; Second, attaching deployment state data to determine each component The deployment state; third, the service time is filled in the structure of the performance model according to the service time; fourth, the load is generated according to the derived vector of the user behavior pattern diagram, and the hierarchical queue network of the individual service is combined into one complete The hierarchical queuing network performance model.
  • the execution graph of each transaction is generated in units of transactions.
  • the execution map reflects the overall characteristics of the transaction in terms of statistical characteristics and can be directly converted to a hierarchical queuing network model (LQN).
  • the conversion rule is an entry (Entry) in which the node (component service) in the execution graph is converted to LQN, and the service of the same component is merged into a task (Task) of the LQN model.
  • Figure 4 is an execution diagram obtained by the execution graph analyzer processing the different call chains of a transaction shown in Figure 3 after merging the peer nodes, and converted into an LQN model as shown in Figure 5.
  • Figure 6 shows an example of additional deployment state data. If the deployment analyzer analyzes that the CO is deployed on the ServerO server, C1 and C2 are deployed on the Server1 server, and C3 and C4 are deployed on the Serverf server, Figure 5 is converted to the structure shown in Figure 6.
  • Service time is a key parameter of a hierarchical queuing network.
  • Each component service that is, each entry in the hierarchical queuing network, has this parameter, indicating that the component itself is actually executing the required time, excluding itself and the wait time for calling other components.
  • the estimation of the service time is done by the service time analyzer.
  • different services of the same component that is, different service times of different entries in the LQN model, will be calculated separately.
  • the unequal nodes of the same service do not distinguish between them, because it is not necessary to care about the calling relationship between components at this time, and only need to care about the service time of each service.
  • Figure 7 shows an example of an LQN model with service time parameters added.
  • the C1 and C3 tasks in the figure have two entries, but they are two non-equivalent nodes of the same service, so the service time is the same.
  • the derived vector of the user behavior pattern diagram does not have a loop, so it can be modeled with LQN.
  • Figure 8 shows the LQN template for the derived vector of the user behavior pattern diagram.
  • the task simulates a user, corresponding to the special task of simulating the user in the LQN model, and can generate loads in both open and closed ways (Franks, G., Hubbard, A., Majumdar, S., Petriu, DC, Rol ia, J. , Woodside, C. M: A toolset for Performance Engineering and Software Design of Cl ient-Server Systems. Performance Evaluation, Vol. 24, Nb. 1-2 (1995) 117-135).
  • Each task (from T1 to Tn) is accessed with the value in the derived vector V.
  • Figure 9 shows a simple example that describes the style of a complete LQN model.
  • the top-level task ⁇ represents the user, which issues different types of requests to the application server. Its service time is quite special. The statistics are the average thinking time of the user, not the service time, because the user operation interval is the thinking time, not the actual running time.
  • the user requests to reach the load balancer it will be forwarded to the heterogeneous application server in different proportions.
  • the application server After the application server receives the request, it will invoke different database query operations.
  • the database query is completed, the nested wait is released layer by layer until the user releases the wait and the request ends.
  • the Performance Analysis Module is a calculator for solving the hierarchical queuing network tool. It can be used by the analysis tool LQNS and the simulation tool LQNSim (M. Woodside and G. Franks, "Tutorial Introduction to Layered Model ing of Software Perf romance", Http : //www. see. carleton. ca/rads/lqns/lqn_documentatior.
  • the input to the tool is a performance model of a hierarchical queuing network model, and the output is the result of performance prediction.
  • the results contain the total response time of the system, Data such as throughput, processor utilization, individual component usage, total execution time, etc.
  • the display module is mainly responsible for presenting the predicted results to the maintenance personnel, and graphically providing maintenance personnel with different forms to analyze and compare the performance of the system.
  • the chart display is primarily responsible for displaying the predicted performance data in a line graph showing response time, throughput, processor utilization, individual component usage, and total execution time.
  • the abscissa is time, and the ordinate is the above various performance data, and each data is represented by a line graph.
  • the present invention automatically constructs a performance model that adapts to system changes for Web applications in a monitoring and statistical manner, thereby predicting future performance of the system.
  • the prediction results can reflect the performance characteristics of different levels and granularities of the system, such as performance data of different levels at different levels, such as clusters, nodes in the cluster, and components on the nodes. It provides quantitative basis for control technologies such as load balancing strategy adjustment, node supply and recovery, bottleneck detection and location, and differentiated service quality assurance.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

A fine-grained performance modeling method for a web application and a system thereof are disclosed. The modeling method comprises: 1) setting an updating period for a middleware platform of the web application system; 2) extracting operating data of the middleware platform of the web application system in one updating period; 3) obtaining performance date of the middleware platform of the web application system according to the operating data; 4) generating and displaying a layered queuing network performance model of the web application system according to the current performance data. The modeling system comprises a status updating module, a log loading module and an analyzing module. The modeling system and method construct performance model automatically based on the operating data monitored by the web application platform and a statistical mode without the participation of humans, and carry out updates along with the changes of the system status. The granularity of the constructed model follows the standard web application component model, can be applied in various web application platforms; thereby the usage of the web application system can be truly reflected.

Description

一种 Web应用细粒度性能建模方法及其系统 技术领域  Web application fine-grained performance modeling method and system thereof
本发明涉及 Web应用性能建模技术, 尤其涉及以分层排队网为基础, 构建自适应的 Web 应用细粒度性能模型的建模方法及建模系统。 背景技术  The invention relates to a web application performance modeling technology, in particular to a modeling method and a modeling system for constructing an adaptive web application fine-grained performance model based on a hierarchical queuing network. Background technique
多层架构的 Web应用已成为当前主流的网络应用, 大量关键应用(电子银行、 网上支付等 等)采用 Web应用实施, 在一个较长时间内保障系统服务质量 (QoS)十分重要。 目前, 惯用的 做法是通过构造性能模型, 对系统未来一段时间内的性能做预测, 然后再以预测结果为指导, 判断系统性能是否满足服务质量的要求。  Multi-layered Web applications have become mainstream web applications. A large number of key applications (e-banking, online payment, etc.) are implemented using Web applications, and it is important to guarantee system quality of service (QoS) for a long period of time. At present, it is customary to predict the performance of the system in the future by constructing a performance model, and then use the prediction results as a guide to judge whether the system performance meets the service quality requirements.
性能预测的基本原理是通过模拟真实系统排队等待、资源竞争的情况来分析系统的性能。 输入一般包括用户行为、 组件的关联和资源消耗等数据, 输出的性能数据包括吞吐率、 响应 时间和资源利用率等。  The basic principle of performance prediction is to analyze the performance of the system by simulating the situation of real system queuing and resource competition. Inputs typically include data such as user behavior, component associations, and resource consumption. Output performance data includes throughput, response time, and resource utilization.
根据模拟真实系统的抽象程度不同, 预测方法可分为粗粒度和细粒度两类。 粗粒度方法 侧重于刻画服务器的行为, 即研究服务器与服务器在宏观层面上的资源消耗。 这种方法建模 相对简单, 适合于分析集群等环节下的多服务器的总体性能。 但该方法并不考虑单个软件组 件是如何消耗资源, 以及组件和组件之间又是如何关联的。 所以, 预测结果不会反映软件组 件的资源消耗, 也就无法为发现软件结构上的性能问题提供有用的数据。 而细粒度方法的基 础是软件的执行结构图, 即系统中重要组件间的调用与资源消耗。 所以细粒度的方法除了可 以预测出各个软件组件的性能, 还可以预测出系统总的性能。  According to the degree of abstraction of the simulated real system, the prediction method can be divided into two types: coarse granularity and fine granularity. The coarse-grained approach focuses on portraying the behavior of the server, which is to study the resource consumption of the server and server at the macro level. This method is relatively simple to model and is suitable for analyzing the overall performance of multiple servers under clusters. But this approach does not consider how a single software component consumes resources and how components and components are related. Therefore, the prediction results do not reflect the resource consumption of the software components, and thus cannot provide useful data for discovering performance problems on the software structure. The basis of the fine-grained method is the execution structure diagram of the software, that is, the call and resource consumption between important components in the system. So in addition to predicting the performance of individual software components, the fine-grained approach predicts the overall performance of the system.
但因为细粒度的方法需要了解软件的细节, 所以建模过程相比于粗粒度方法也会复杂很 多。 因为此时, 设计人员不仅需要详细了解软件的整体设计, 还需要了解用户行为和资源的 消耗, 也就导致了构造一个细粒度模型的代价是非常昂贵的。  But because the fine-grained approach requires an understanding of the details of the software, the modeling process is much more complicated than the coarse-grained approach. Because at this time, designers need not only to understand the overall design of the software, but also to understand the user behavior and resource consumption, which leads to the cost of constructing a fine-grained model is very expensive.
已有一些研究意图降低构造 Web应用性能模型的成本, 他们或者针对其中某一个方面, 或者属于粗粒度的方法, 但是它们均未全面系统的为容量规划人员提供一种快捷高效的针对 Web的性能建模方法。  There have been some studies aimed at reducing the cost of constructing Web application performance models, either for one of them or for coarse-grained methods, but they are not fully systematically providing capacity planners with a fast and efficient Web-oriented performance. Modeling method.
Wi l l iam 和 Smith 首先提出了一种基于软件性能工程的方法 (C. U. Smith and L. G. Wi l l iams, Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software. Addison Wesley, 2002 ) 将性能分析引入软件开发过程中。 Gomaa和 Menasce提 出了基于 "客户机 /服务器"体系模式下的方法 ( H. Gomaa and D. Menasce, Performance Engineering of Component-Based Distributed Software Systems, Performance Eng. , R. Dumke et al., eds. pp. 40-55, 2001. )。 该方法直接用类图和协作图描述组件间的交互形 式分析生成扩展的排队网 (EQN)模型。上述方法降低了性能模型构造的难度, 但是正确的获得 模型所需要的参数仍是一个难题, 而且性能模型还需要服务时间、 用户行为等其它参数。 Wi ll iam and Smith first proposed a software-based performance engineering approach (CU Smith and LG Wi ia iams, Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software. Addison Wesley, 2002) to introduce performance analysis into the software development process. in. Gomaa and Menashe proposed a method based on the "client/server" system model (H. Gomaa and D. Menasce, Performance Engineering of Component-Based Distributed Software Systems, Performance Eng., R. Dumke et al., eds. pp. 40-55, 2001. The method directly uses the class diagram and the collaboration diagram to describe the interaction form between components to generate an extended queuing network (EQN) model. The above method reduces the difficulty of constructing the performance model, but the correct parameters required to obtain the model is still a problem, and the performance model also needs other parameters such as service time and user behavior.
Woodside等人提出了一种从软件设计环境中通过插入收集执行轨迹代码的方式自动生成 LQN 模型的方法 ( M. Woodside, C. Hrischuk, B. Sel ic, and S. Brayarov, Automated Performance Model ing of Software Generated by a Design Environment, Performance Evaluation, vol. 45, pp. 107-123, 2001. )。 此方法根据设计人员给定的抽象层度向源代 码中插入代码, 收集给定测试用例下软件所表现出的执行轨迹和资源消耗情况。 但只适合于 开发态的软件, 并不适合于运行态的 Web应用。  Woodside et al. proposed a method for automatically generating LQN models by inserting and collecting execution trajectory code from a software design environment (M. Woodside, C. Hrischuk, B. Sel ic, and S. Brayarov, Automated Performance Model ing of Software Generated by a Design Environment, Performance Evaluation, vol. 45, pp. 107-123, 2001.). This method inserts code into the source code based on the abstraction level given by the designer, and collects the execution trajectory and resource consumption exhibited by the software under the given test case. However, it is only suitable for development software, and is not suitable for running web applications.
Yoshihira和 Jiang提出了一种基于监测数据发现系统中稳定关联关系的方法 (Guofei Jiang, Haifeng Chen, Kenj i Yoshihira, Efficient and Scalable Algorithms for Inferring Likely Invariants in Distributed Systems, IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, VOL. 19, NO. 11, NOVEMBER (2007) 1508-1523)。 他们通过收集请求处理过程 中组件对资源的消耗, 分析出其中稳定的关联, 然后依据建立的关联网络, 分析系统的处理 能力, 发现瓶颈所在, 进而做容量规划。 但只能预测系统的可扩展性, 而不能对系统性能进 行预测。  Yoshihira and Jiang proposed a method based on monitoring data to discover stable relationships in systems (Guofei Jiang, Haifeng Chen, Kenj i Yoshihira, Efficient and Scalable Algorithms for Inferring Likely Invariants in Distributed Systems, IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, VOL 19, NO. 11, NOVEMBER (2007) 1508-1523). They collect the stable consumption of the components by collecting the resource consumption of the components in the request processing process, and then analyze the processing power of the system according to the established associated network, find the bottleneck, and then do capacity planning. However, only the scalability of the system can be predicted, and the performance of the system cannot be predicted.
Cherkasova等人提出了一种基于事务的容量规划方法 (L. Cherkasova, Kivanc Ozonat, Automated Anomaly Detection and Performance Model ing of Enterprise Appl ications, ACM Transactions on Computer Systems, Vol. 27, No. 3, November 2009. )。 与本石开究相似, 他们也将用户的一次 HTTP请求看作一个事务。但他们的方法仍以请求为基本单元, 本文则关 注于组件, 更有利于发现组件一级的性能问题。 发明内容  Cherkasova et al. proposed a transaction-based capacity planning method (L. Cherkasova, Kivanc Ozonat, Automated Anomaly Detection and Performance Model ing of Enterprise Appl ications, ACM Transactions on Computer Systems, Vol. 27, No. 3, November 2009. ). Similar to this stone research, they also treat a user's HTTP request as a transaction. However, their method still uses the request as the basic unit. This article focuses on the components, which is more conducive to the discovery of performance problems at the component level. Summary of the invention
针对上述问题, 本发明依据 Web应用系统及其平台所具有的特性, 设计出一种基于监测 数据自动构造性能模型的系统和方法。在本发明中, 利用 Web应用平台能收集到的日志信息, 以统计方法为基础, 通过轨迹跟踪, 服务时间计算和用户行为模拟这几个方面的技术, 透明 的构造出一个可以能够细粒度预测系统性能的性能模型。  In view of the above problems, the present invention designs a system and method for automatically constructing a performance model based on monitoring data according to the characteristics of the Web application system and its platform. In the present invention, the log information that can be collected by the web application platform is based on a statistical method, and the technology of trajectory tracking, service time calculation and user behavior simulation is transparently constructed to enable fine-grained prediction. Performance model for system performance.
本发明技术基础是 Web应用平台系统所能提供的监测技术,获取主要包括三类日志数据, 一是服务的执行轨迹 (称之为调用链); 一是 CPU总的利用率, 具体指单个服务器的 CPU利 用率, 如果服务器有多个核, 则将所有核的利用率累加; 一是用户使用系统的轨迹。 具体来 讲, 为了响应用户发出的请求 (完整的请求处理以及应答过程称为一个事务), Web 应用会调 用一系列的组件协作完成这一工作, 而完成这一工作的组件的执行流程称为调用链, 比如 Servlet组件调用 EJB组件, EJB组件又调用数据库等。用户使用系统的轨迹(称之为用户行 为) 则是指从用户第一次登陆应用, 到最后一次访问应用之间的全部行为, 一般包括了多次 对系统不同页面的请求。支持这种监测的工具商业的和开源的都有很多, 比如 Oracle的诊断 框 架 ( Weblogic Diagnostics Framework ) , 开 源 的 InfraRED 工 具 ( http : //infrared. sourceforge. neO, 以及石开究论文 ( Curtis E. Hrischuk, Murray Woodside. Trace-Based Load Characterization for Generating Performance Software Models. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 25, NO. 1, JANUARY/FEBRUARY 1999 ) 等。 因此, 本发明将不涉及监测技术的说明, 具体实现可以参照这些方法。 The technical basis of the invention is the monitoring technology that the web application platform system can provide, and the acquisition mainly includes three types of log data, one is the execution trajectory of the service (called a call chain); the other is the total utilization of the CPU, specifically refers to a single server. CPU utilization, if the server has multiple cores, the usage of all cores is accumulated; one is the user's use of the system's trajectory. Specific In order to respond to a request from a user (a complete request processing and a response process is called a transaction), the web application invokes a series of components to collaborate to do the work, and the execution flow of the component that performs the work is called the call chain. For example, the Servlet component calls the EJB component, and the EJB component calls the database. The user's use of the system's trajectory (referred to as user behavior) refers to all actions from the user's first login to the application to the last access to the application, generally including multiple requests for different pages of the system. There are many commercial and open source tools to support this type of monitoring, such as Oracle's Weblogic Diagnostics Framework, the open source InfraRED tool (http://infrared.sourceforge.neO, and the stone research paper (Curtis E.) Hrischuk, Murray Woodside. Trace-Based Load Characterization for Generating Performance Software Models. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 25, NO. 1, JANUARY/FEBRUARY 1999), etc. Therefore, the present invention will not address the description of the monitoring technique, specifically Implementation can refer to these methods.
使用本发明预测性能的过程, 对系统维护人员来说是完全透明自动的, 不需要人工干预。 该系统启动之后, 会自动的根据输入的日志信息, 构造并更新性能模型。 需要预测结果时, 维护人员只需要调用分析功能, 则可获得系统未来的性能。预测出的结果包括系统的吞吐率、 响应时间、 各软件组件的资源利用率和总的资源利用率, 以及各硬件资源的资源利用率等。  The process of predicting performance using the present invention is completely transparent and automatic to system maintenance personnel, requiring no manual intervention. After the system is started, the performance model is automatically constructed and updated based on the input log information. When predictive results are needed, maintenance personnel only need to call the analysis function to get the future performance of the system. The predicted results include the throughput rate of the system, the response time, the resource utilization of each software component and the total resource utilization, and the resource utilization of each hardware resource.
本发明的目的之一是提供一种 Web应用细粒度性能建模方法, 包括如下步骤:  One of the objectives of the present invention is to provide a method for modeling fine-grained performance of a web application, comprising the following steps:
1 ) 设定 Web应用系统中间件平台的更新周期;  1) setting the update period of the web application middleware platform;
2 ) 获取一个更新周期内的 Web应用系统中间件平台的运行数据;  2) Obtaining the running data of the web application middleware platform in an update cycle;
3 ) 根据运行数据计算 Web应用系统中间件平台的性能数据;  3) calculating performance data of the web application middleware platform according to the running data;
4) 根据当前性能数据生成并显示 Web应用系统的分层排队网性能模型。  4) Generate and display a hierarchical queuing network performance model of the web application system based on current performance data.
所述 Web应用系统运行数据包括执行轨迹数据、 CPU总的利用率和用户使用系统的轨迹 数据。 执行轨迹数据即系统为完成用户发出的请求而调用一系列组件的执行流程, 又被称为 调用链。  The web application system running data includes execution trajectory data, total CPU utilization, and trajectory data of the user using the system. Execution trajectory data is the execution flow of a series of components called the call chain for the system to complete the request made by the user.
所述性能数据包括执行图、 部署状态数据、 服务时间和用户行为模式图的派生向量。 部 署状态数据是指 Web应用系统中每个组件在服务器上的位置。 服务时间指组件向外提供服务 的某个功能服务 (比如函数) 实际需要的执行时间, 不包含等待时间。  The performance data includes a derived vector of execution maps, deployment status data, service time, and user behavior pattern maps. Deployment status data refers to the location of each component on the server in the web application. Service time refers to the actual execution time of a functional service (such as a function) that the component provides to the outbound service, without waiting time.
所述执行轨迹数据用调用链表示, 其中节点为组件, 边为组件之间的调用关系, 实线表 示同步请求, 虚线表示异步请求,编号表示调用的次数。  The execution trajectory data is represented by a call chain, wherein the node is a component, the edge is a calling relationship between components, the solid line indicates a synchronization request, the dotted line indicates an asynchronous request, and the number indicates the number of calls.
通过合并一个事务的各调用链 (即第一个节点相同的调用链) 的对等节点形成总体执行 路径得到一个事务的执行图, 所述对等节点是指两个节点 α和 β满足以下条件:  An execution map of a transaction is obtained by merging a peer node of each call chain of a transaction (ie, the same call chain of the first node), the peer node being that the two nodes α and β satisfy the following conditions :
两个节点 α和 β表示同一个入口, 且  Two nodes α and β represent the same entry, and
或者 α的父节点和 β的父节点是对等节点, 且父节点到 α和 β的请求类型相同; 或者 α = β且 α和 β的父节点为空。 Or the parent node of α and the parent node of β are peer nodes, and the request type of the parent node to α and β is the same; Or α = β and the parent nodes of α and β are empty.
其中, 用户的一次 HTTP请求为一个事务。  Among them, the user's HTTP request is a transaction.
通过分析执行轨迹上各组件所在服务器的 IP地址, 获得所述组件部署状态数据。  The component deployment status data is obtained by analyzing the IP address of the server where each component on the execution track is located.
采用 Kalman滤波方式计算每个组件提供服务的执行时间得到所述服务时间。  The Kalman filtering method is used to calculate the execution time of each component providing service to obtain the service time.
Kalman滤波提供了一个在离散时间点估算不可观测状态 X的通用方法。第 k时刻状态 可以定义为一个线性随机差分方程: Kalman filtering provides a general method for estimating the unobservable state X at discrete points in time. The k-th time state can be defined as a linear stochastic difference equation:
¾ = Ίι + + w -i (L a) 第 k时刻观察值总 CPU利用率 ^定义为: - ff¾■!■ ¾ (1. b) 其中 A是从 k-1时刻到 k时刻状态转换矩阵, -i是可选的控制参数, B是与控制相关的矩 阵, Mfe为测量误差,其协方差矩阵为 QM。 ^是 到 的转换矩阵, ι¾是测量误差,其协方 差矩阵为 Rk。 将公式(1. a)和(1. b)做如下映射后可以得到 k时刻各组件服务的服务时间: xk = Xk-i + wfc- 1 (2. a)
Figure imgf000006_0001
其中 = xl -.. 1 ,表示 k时刻各组件服务的服务时间, a为总 CPU利用率, t为各服 务的吞吐率。根据 CPU利用率法则,有公式 (2. b),即总 CPU利用率等于各服务吞吐率与服务时 间乘积的累加和。
3⁄4 = Ίι + + w -i (L a) The total CPU utilization observed at time k is defined as: - ff3⁄4■!■ 3⁄4 (1. b) where A is the state transition matrix from k-1 to k , -i is an optional control parameter, B is a matrix related to control, Mfe is a measurement error, and its covariance matrix is Q M . ^ is the conversion matrix to, ι3⁄4 is the measurement error, and its covariance matrix is Rk. By mapping the formulas (1. a) and (1. b) as follows, the service time of each component service at time k can be obtained: xk = Xk-i + w fc- 1 (2. a)
Figure imgf000006_0001
Where = xl -.. 1 , which represents the service time of each component service at time k , a is the total CPU utilization, and t is the throughput rate of each service. According to the CPU utilization rule, there is a formula (2. b), that is, the total CPU utilization is equal to the cumulative sum of the product throughput and the service time product.
将上述两个公式进行迭代计算, 从而获得服务时间。  The above two formulas are iteratively calculated to obtain the service time.
将用户使用系统的轨迹数据转化为派生向量 的方法为:  The method for converting the user's use of the system's trajectory data into a derived vector is:
将公式  Formula
¾ =∑S ¾ X Vk,} i I = i,… " + Ϊ 转换为矩阵形式: 3⁄4 =∑S 3⁄4 X Vk, } i I = i,... " + Ϊ Convert to matrix form:
V - ί = ν ρ 其中 ¼为每个事务在一次请求中被访问到的次数, =ι ; ΐ = (ΐΑ…, 0) 求解矩阵形式公式对应的线性方程组, 获得派生向量 V。 V - ί = ν ρ where 1⁄4 is the number of times each transaction was accessed in a request, =ι ; ΐ = (ΐΑ..., 0) Solving the linear equations corresponding to the matrix form formula, and obtaining the derived vector V.
所述分层排队网性能模型的生成方法为:  The method for generating the hierarchical queuing network performance model is:
将单个执行图转换为初步分层排队网模型, 其中, 执行图的节点转换为 LQN 的入口 (Entry); 同一节点的服务合并为一个 LQN模型的任务 (Task), 生成单个服务的分层排队网模 型;  Converting a single execution graph into a preliminary hierarchical queuing network model, where the nodes performing the graph are converted into LQN entries (Entry); the services of the same node are merged into one LQN model task (Task), generating hierarchical queuing of individual services Net model
第二, 在模型上附加各个组件的部署状态数据;  Second, attach the deployment status data of each component to the model;
第三, 在模型上添加服务时间;  Third, add service time to the model;
第四,根据用户行为模式图的派生向量生成负载,将单个服务的分层排队网模型组合为完 整的分层排队网性能模型。 本发明的一个目的是提供一种 Web应用系统细粒度性能建模系统, 包括:  Fourth, the load is generated according to the derived vector of the user behavior pattern diagram, and the hierarchical queued network model of the single service is combined into a complete hierarchical queued network performance model. An object of the present invention is to provide a fine-grained performance modeling system for a web application system, including:
状态更新模块, 设定 Web应用系统中间件平台的更新周期, 依据每一更新周期内的 Web 应用系统的运行数据, 计算得到性能数据;  The status update module sets an update period of the web application middleware platform, and calculates performance data according to the operation data of the web application system in each update period;
日志载入模块, 提取每一更新周期内的运行数据并载入状态更新模块;  a log loading module, extracting running data in each update cycle and loading a status update module;
分析模块, 依据当前性能数据, 生成并显示 Web应用系统的分层排队网性能模型。 所述状态更新模块包括执行图分析器、部署分析器、服务时间分析器和用户行为简化器。 执行图分析器利用执行轨迹数据计算 Web应用系统完成一个事件的总体执行路径; 获得 所述执行图;  The analysis module generates and displays a hierarchical queuing network performance model of the web application system according to the current performance data. The status update module includes an execution graph analyzer, a deployment analyzer, a service time analyzer, and a user behavior simplifier. Executing the graph analyzer to calculate the overall execution path of an event by executing the trajectory data calculation web application system; obtaining the execution map;
部署分析器提取执行轨迹数据中的各组件在服务器上的位置数据, 获得所述组件部署状 态数据;  The deployment analyzer extracts location data of each component in the execution trajectory data on the server, and obtains the component deployment status data;
服务时间分析器计算 Web应用系统每个组件提供服务的执行时间, 获得所述服务时间; 用户行为简化器将用户使用系统的轨迹数据转化为用户行为模式图的派生向量。  The service time analyzer calculates the execution time of each component of the web application system to obtain the service time, and the user behavior reducer converts the trajectory data of the user using the system into a derivative vector of the user behavior pattern diagram.
所述日志载入模块包括轨迹信息载入器、 CPU 利用率载入器和用户行为载入器, 轨迹信 息载入器载入执行轨迹数据; CPU利用率载入器载入系统服务器 CPU的总利用率; 用户行为 载入器载入用户从登录直到退出过程中使用系统的轨迹数据。  The log load module includes a track information loader, a CPU utilization loader, and a user behavior loader, and the track information loader loads execution track data; the CPU utilization loader loads the total of the system server CPU. Utilization; User Behavior Loader loads the trajectory data used by the user from login to exit.
上述性能建模方法会随着系统的运行而周期性的更新, 以保证性能模型的状态能随着系 统的变化而变化。 当维护人员期望预测系统未来性能时, 可触发预测步骤, 利用状态存储模 块中的执行图、 部署状态数据等性能数据获得未来的性能模型。 本研究的性能模型选用分层 排队网为基石出 (M. Woodside, "The Stochastic Rendezvous Network Model for Performance of Synchronous Cl ient-Server Like Distributed Software ", IEEE Transactions on Computers, Vol. 44, No. 1, January 1995, pp. 20-34), 这种模型的最大优点是可以层次化 的描述资源的使用情况, 符合细粒度性能分析的需求。 The above performance modeling methods are periodically updated as the system operates to ensure that the state of the performance model can change as the system changes. When the maintenance personnel expect to predict the future performance of the system, the prediction step can be triggered to obtain future performance models by using performance data such as execution maps and deployment state data in the state storage module. The performance model of this study is based on a hierarchical queuing network (M. Woodside, "The Stochastic Rendezvous Network Model for Performance of Synchronous Cl ient-Server Like Distributed Software", IEEE Transactions on Computers, Vol. 44, No. 1, January 1995, pp. 20-34), the biggest advantage of this model is that it can describe the use of resources hierarchically, in line with the needs of fine-grained performance analysis.
本发明提出了一种 Web应用平台的性能建模系统和方法, 其优点如下:  The invention provides a performance modeling system and method for a web application platform, the advantages of which are as follows:
1 ) 无需人工参与, 自动构造性能模型;  1) Automatically construct a performance model without human intervention;
2 )模型构造以 Web应用平台监测到的运行数据和统计方式为基础, 可自动随系统状态变 化而更新;  2) The model structure is based on the operational data and statistical methods monitored by the Web application platform, and can be automatically updated as the system status changes;
3 ) 模型粒度遵循标准的 Web应用组件模型, 使用多种 Web应用平台;  3) Model granularity follows the standard Web application component model, using a variety of Web application platforms;
4) 模型将用户行为 (即负载) 简化为分层排队网模型所能接受模式, 可真实的反应 Web 应用系统被使用的情况;  4) The model simplifies the user behavior (ie, load) into a model acceptable to the hierarchical queuing network model, which can truly reflect the use of the Web application system;
5 )对 Web应用系统的未来性能可提供软件组件、服务器节点和集群等多个层次的性能数 据。 附图说明  5) The performance of the future of the Web application system can provide multiple levels of performance data such as software components, server nodes and clusters. DRAWINGS
图 1 为本发明实施例中的性能建模方法的流程框图。  FIG. 1 is a flow chart of a performance modeling method in an embodiment of the present invention.
图 2 为本发明实施例中性能建模系统的结构框图。  FIG. 2 is a structural block diagram of a performance modeling system according to an embodiment of the present invention.
图 3 为本发明实施例中使用的调用链示例。  FIG. 3 is an example of a call chain used in an embodiment of the present invention.
图 4 是图 3的调用链通过本发明的方法和系统生成的执行图。  4 is an execution diagram of the call chain of FIG. 3 generated by the method and system of the present invention.
图 5是本发明实施例中由图 4的执行图生成的分层排队网模型图。  Figure 5 is a diagram of a hierarchical queuing network model generated by the execution map of Figure 4 in an embodiment of the present invention.
图 6 是在图 5中附加了部署状态数据后的分层排队网模型图。  Figure 6 is a hierarchical queued network model diagram with the deployment state data appended to Figure 5.
图 7是在图 6中添加了服务时间后的分层排队网模型图。  Figure 7 is a diagram of a hierarchical queuing network model after adding service time in Figure 6.
图 8 是本发明实施例中的用户行为模式图的派生向量生成的负载图。  FIG. 8 is a load diagram of a derived vector generation of a user behavior pattern diagram in an embodiment of the present invention.
图 9 是实施例中一个完整的分层排队网模型图。 具体实施方式  Figure 9 is a complete hierarchical queued network model diagram of the embodiment. detailed description
下面结合附图及具体实施例说明本发明的技术方案。  The technical solution of the present invention will be described below with reference to the accompanying drawings and specific embodiments.
本发明以 Web应用中间件所支持的标准组件模型为基础(如 Servlet、 EJB、 SQL等), 通 过监测到的运行数据和统计方法自动计算性能数据, 并最终生成性能模型。 主要监测数据包 括调用链, CPU 总的利用率和用户使用系统的轨迹。 本发明主要涉及两个模块, 一个是用于 监测和处理数据的状态更新模块, 一个是分析模块, 能够利用检测到的运行数据建立性能模 型, 并预测 Web应用的未来性能状态, 是用户与维护人员交互的。  The present invention is based on a standard component model supported by Web application middleware (such as Servlet, EJB, SQL, etc.), automatically calculates performance data through monitored operational data and statistical methods, and finally generates a performance model. The main monitoring data includes the call chain, the total CPU utilization and the trajectory of the user's use of the system. The invention mainly relates to two modules, one is a state update module for monitoring and processing data, and the other is an analysis module, which can build a performance model by using the detected operational data, and predict the future performance state of the web application, which is user and maintenance. People interacting.
状态更新模块主要负责监测 Web应用的执行, 通过分析日志信息, 获得运行数据, 实现 构造执行图、 获得部署状态数据, 计算服务时间和简化用户行为这几项功能。 另一方面, 分 析模块则在接受到维护人员的命令之后, 通过载入最新的性能数据, 构造出一个符合系统最 新状态的性能模型, 然后再计算分析出系统未来的性能。 The status update module is mainly responsible for monitoring the execution of the web application, and obtaining the running data by analyzing the log information. Constructs execution diagrams, gets deployment state data, calculates service time, and simplifies user behavior. On the other hand, the analysis module, after receiving the command from the maintenance personnel, constructs a performance model that conforms to the latest state of the system by loading the latest performance data, and then calculates and analyzes the future performance of the system.
本发明利用 Web应用系统中间件平台监测到的运行数据, 获得性能数据并构建性能模型 的总体方法为;  The overall method for obtaining performance data and constructing a performance model by using the Web application system middleware platform to monitor operational data;
1 ) 设定 Web应用系统中间件平台的更新周期;  1) setting the update period of the web application middleware platform;
2 ) 获取一个更新周期内的 Web应用系统中间件平台的运行数据;  2) Obtaining the running data of the web application middleware platform in an update cycle;
3 ) 根据运行数据计算 Web应用系统中间件平台的性能数据;  3) calculating performance data of the web application middleware platform according to the running data;
4 ) 根据当前性能数据生成并显示 Web应用系统的分层排队网性能模型。  4) Generate and display a hierarchical queuing network performance model of the web application system based on current performance data.
本发明的具体实施流程参见图 1所示。 其中的性能数据是联系数据处理与性能分析的纽 带。 当运行数据处理完之后, 会作为性能数据保存起来, 而当需要分析性能时, 则会从中提 取出来作为分析依据。  The specific implementation process of the present invention is shown in FIG. The performance data is the link between data processing and performance analysis. When the running data is processed, it is saved as performance data, and when performance needs to be analyzed, it is extracted from it for analysis.
具体的运行数据为执行轨迹数据、 CPU 总的利用率和用户使用系统的轨迹数据。 性能数 据包括执行图、 部署状态数据、 服务时间和用户行为模式图的派生向量。 每个性能数据的获 得在下文中结合本发明的系统详细说明。  The specific operational data is the execution trajectory data, the total utilization of the CPU, and the trajectory data of the user using the system. Performance data includes derived vectors for execution graphs, deployment state data, service time, and user behavior pattern diagrams. The acquisition of each performance data is described in detail below in connection with the system of the present invention.
为实现以上流程, 本发明的系统至少应包括  In order to achieve the above process, the system of the present invention should at least include
状态更新模块, 设定 Web应用系统中间件平台的更新周期, 依据每一更新周期内的 Web 应用系统的运行数据, 计算得到性能数据;  The status update module sets an update period of the web application middleware platform, and calculates performance data according to the operation data of the web application system in each update period;
日志载入模块, 提取每一更新周期内的运行数据并载入状态更新模块;  a log loading module, extracting running data in each update cycle and loading a status update module;
分析模块, 依据当前性能数据, 生成并显示 Web应用系统的分层排队网性能模型。  The analysis module generates and displays a hierarchical queuing network performance model of the web application system according to the current performance data.
但为了获得更好的发明效果, 本实施例采用了如图 2所示的总体结构。 主要模块有初始 模块、 日志载入模块、 状态更新模块、 状态存储模块、 分析模块五个部分。 其中, 状态更新 模块是整个算法的核心, 负责生产预测所需的关键数据。 图中的小箭头表示从箭头的方向获 取数据, 如用户行为简化器从用户行为载入器获取数据。 大箭头则表示执行的顺序。  However, in order to obtain a better invention effect, the present embodiment employs the overall structure as shown in FIG. The main module has five parts: initial module, log load module, status update module, state storage module and analysis module. Among them, the status update module is the core of the entire algorithm, responsible for the key data required for production forecasting. The small arrows in the figure indicate that data is taken from the direction of the arrow, such as the user behavior simplifier getting data from the user behavior loader. Large arrows indicate the order of execution.
首先, 初始模块主要负责确定待定监测的 Web应用中间件平台。 确定待定中间件平台的 目的是为了便于日志载入模块正常工作, 因为不同的中间件平台会存在些许差异, 其上的监 测工具也会有一定的差别, 为了能获得所需的运行数据, 需要针对性的做一点调整。 但是这 些方案的基本原理是一致的, 而且如前所述不论是开源、 商业, 还是研究领域都有不少成果 出现, 所以这里并不具体介绍监测的方法。 而所需的监测数据格式在日志载入模块中具体介 绍。  First, the initial module is primarily responsible for determining the web application middleware platform to be monitored. The purpose of determining the pending middleware platform is to facilitate the normal operation of the log load module. Because there are some differences in the different middleware platforms, the monitoring tools on them will have some differences. In order to obtain the required operational data, it is necessary. Make a little adjustment to the specificity. However, the basic principles of these schemes are consistent, and as mentioned above, there are many achievements in the fields of open source, commerce, and research. Therefore, the method of monitoring is not specifically described here. The required monitoring data format is described in the log load module.
第二, 日志载入模块主要负责将中间件监测到的运行数据载入到该发明的系统中, 组织 成本发明所需的格式, 为状态更新模块提供数据。 该模块包括了三个子模块: 轨迹信息载入 器、 CPU利用率载入器、 用户行为载入器。 Second, the log load module is mainly responsible for loading the operational data monitored by the middleware into the system of the invention, organizing The format required by the cost invention provides data for the status update module. The module includes three sub-modules: Trace Information Loader, CPU Utilization Loader, User Behavior Loader.
轨迹信息载入器主要负载载入调用链相关的数据, 将其组织为本研究所需的格式。 图 3 给出了本发明具体使用的一个事务的不同调用链结构。 节点代表一个组件, 边代表了组件之 间的调用关系, 实线表示同步请求, 虚线表示异步请求,编号表示调用的次数。 比如 CO表示 了处理事务的起始组件, r0表示用户请求数, r0_l表示 CO组件调用 C1组件的次数。例如图 3中的 301表示用户请求了组件 CO提供的服务, 而组件 CO又调用了组件 Cl, 组件 C1又先后 调用了组件 C2和 C3 ; 304则表示用户请求了组件 CO提供的服务, 而组件 CO又异步调用了组 件 C4, 组件 C1又调用了组件 Cl。 另外, 轨迹中包含了各个组件所在服务器的 IP信息。  The trace information loader loads the data associated with the call chain and organizes it into the format required for the study. Figure 3 shows the different call chain structures for a transaction specifically used by the present invention. A node represents a component, an edge represents a call relationship between components, a solid line represents a synchronization request, a dashed line represents an asynchronous request, and a number represents the number of calls. For example, CO represents the starting component of the transaction, r0 represents the number of user requests, and r0_l represents the number of times the CO component calls the C1 component. For example, 301 in FIG. 3 indicates that the user requests the service provided by the component CO, and the component CO calls the component C1, and the component C1 calls the components C2 and C3 successively; 304 indicates that the user requests the service provided by the component CO, and the component The CO calls component C4 asynchronously, and component C1 calls component Cl again. In addition, the track contains the IP information of the server where each component is located.
CPU利用率载入器主要负责周期性载入服务器 CPU的总利用率, 本研究以秒为单位进行 收集。 每条记录的格式为: time : [V。〜Vn]。 每条记录首先由记录的时间开始, 后面接一个记 录各个核对应的 CPU利用率。 如果是传统的单核 CPU, 则数据元素个数为一, 而如果是多核 CPU, 则数据元素个数与核数相同。 The CPU utilization loader is mainly responsible for the total utilization of the server CPU periodically loaded. This study collects in seconds. The format of each record is: time : [ V . ~ Vn ]. Each record begins with the time of recording, followed by a record of the CPU utilization of each core. If it is a traditional single-core CPU, the number of data elements is one, and if it is a multi-core CPU, the number of data elements is the same as the number of cores.
用户行为载入器主要负责载入用户从登录直到退出过程中使用系统的轨迹。 可以描述为 用户行为模式图 (D. Menasce, V. Almeida, A Methodology for Workload Characterization of E-commerce Sites, Proceedings of ACM E-Commerce 1999 (pp. 119 - 128) , 即可表不 为一个矩阵 P=[p,/J的肩的矩阵。 表示一个会话 (一个用户的登录周期) 中, 事务 i之 后出现事务 J的概率, o≤W≤ + i。 其中, 事多 标识会话开始, 事 / 标识会话终止。 事务对应于一个暴露给用户的服务, 通常是一个 Web页面。  The user behavior loader is primarily responsible for loading the user's trajectory from the login to the exit process. Can be described as a user behavior pattern diagram (D. Menasce, V. Almeida, A Methodology for Workload Characterization of E-commerce Sites, Proceedings of ACM E-Commerce 1999 (pp. 119 - 128), which can be expressed as a matrix P =[p, the matrix of the shoulder of the J. Indicates the probability of a transaction J after a transaction i in a session (a login period of a user), o ≤ W ≤ + i. where, multi-identity session start, event / identification The session is terminated. The transaction corresponds to a service exposed to the user, usually a web page.
第三, 状态更新模块是本发明的关键, 负责从载入的日志信息中统计分析出性能建模直 接需要的数据。 另外, 状态更新模块确定状态更新周期的长短, 确定之后按指定的周期更新 状态。 周期的长短可根据系统更新频繁度而定, 比平均更新周期短即可。 一般而言, 将周期 设为 10-30分钟即可。 状态更新模块由执行图分析器、 部署分析器、 服务时间分析器和用户 行为简化器组成。  Third, the status update module is the key to the present invention and is responsible for statistically analyzing the data directly required for performance modeling from the loaded log information. In addition, the status update module determines the length of the status update period, and then updates the status by the specified period after the determination. The length of the cycle can be determined according to the frequency of system updates, which is shorter than the average update cycle. In general, set the period to 10-30 minutes. The status update module consists of an execution graph analyzer, a deployment analyzer, a service time analyzer, and a user behavior simplifier.
执行图分析器负责从调用链 (从轨迹信息载入器中读取) 中分析出一个事务在总体上的 执行路径, 而不是某一次调用特定的调用链。 因此, 执行图分析器是通过合并一个事务的各 调用链的对等节点从而形成总体执行路径, 即一个事务的执行图。 因为如果只是简单的按节 点合并图中组件, 则会导致结构上的不一致。 图 3所示的调用链, 如果只是简单的按节点合 并则会出现 C0->C4->C1->C3的路径,即组件 C0调用了 C4, C4调用了 Cl,而 C1又调用了 C3。 但实际并不存在该路径, 导致不一致的原因在于 C4->C1与 C0->C1并不对等, 如果合并过程 中不做区分, 则会出现实际并不存在的路径。 The execution graph parser is responsible for parsing the execution path of a transaction from the call chain (read from the trace information loader) rather than calling a specific call chain one time. Therefore, the execution graph analyzer forms the overall execution path by merging the peer nodes of each call chain of a transaction, that is, the execution graph of a transaction. Because if you simply merge the components in the graph by node, it will lead to structural inconsistency. In the call chain shown in Figure 3, if you just merge by node, the path of C0->C4->C1->C3 will appear, that is, component C0 calls C4, C4 calls Cl, and C1 calls C3. However, the path does not exist, and the cause of the inconsistency is that C4->C1 is not equal to C0->C1, if the merge process If there is no distinction, there will be a path that does not actually exist.
为解决这个问题, 本文定义了对等节点的概念。 如果节点 α和 β是对等的, 需要满足一 下条件:  To solve this problem, this paper defines the concept of peer nodes. If the nodes α and β are equal, one condition needs to be met:
α和 β表示同一个入口, 且  α and β represent the same entry, and
或者 α的父节点和 β的父节点是对等节点, 且父节点到 α和 β的请求类型相同; 或者 α = β且 α和 β的父节点为空。  Or the parent node of α and the parent node of β are peer nodes, and the parent node has the same request type to α and β; or α = β and the parent nodes of α and β are empty.
对等节点的合并具体来说: 用 Ε (χ)表示节点 X的对等类, 如果两个对等的节点在调用链 中有 α -〉 β, 那么在合并后的事务执行图上有 Ε ( α ) -> Ε ( β )。  The merging of peer nodes is as follows: Use Ε (χ) to represent the peer class of node X. If two peer nodes have α -> β in the call chain, then there is a flaw in the merged transaction execution graph. ( α ) -> Ε ( β ).
图 4描述了图 3的调用链合并后的事务执行图, 其中保留了 C0->C1->C3和 C0->C4->C1 的调用关系, 所以不会导致不一致。  Figure 4 depicts the transaction execution diagram of the merged call chain of Figure 3, in which the call relationship of C0->C1->C3 and C0->C4->C1 is preserved, so no inconsistency is caused.
部署分析器主要分析调用链 (从轨迹信息载入器中读取) 中各组件的部署位置, 即某个 组件是部署在哪台服务器上的。 这部分的信息仍然从轨迹监测信息中提取, 通过分析轨迹上 各个组件所在的物理设备的 IP, 从而获得组件的部署信息。  The deployment analyzer primarily analyzes the deployment location of components in the call chain (read from the trace information loader), which server a component is deployed on. This part of the information is still extracted from the trajectory monitoring information, and the deployment information of the component is obtained by analyzing the IP of the physical device where each component on the trajectory is located.
服务时间分析器主要用于计算组件的服务时间, 依赖于 CPU利用率载入器、 部署分析器 和执行图分析器产出的数据。 因为组件的服务时间很难精确的通过监测获得, 因此只能通过 其它可监测的数据计算出组件的服务时间。服务时间指组件向外提供服务的某个功能服务(比 如函数), 实际需要的执行时间, 不包含等待时间。 本发明采用 Kalman滤波的方式进行计算 ( R. E. Kalman, A New Approach to Linear Fi ltering and Prediction Problems, Transactions of the ASME-Journal of Basic Engineering, I960)。  The Service Time Analyzer is primarily used to calculate the component's service time, depending on the CPU utilization loader, the deployment analyzer, and the data generated by the execution graph analyzer. Because the service time of the component is difficult to accurately obtain through monitoring, the service time of the component can only be calculated from other monitorable data. Service time refers to a functional service (such as a function) that the component provides to the outside, the actual execution time, and no waiting time. The present invention uses Kalman filtering to perform calculations (R. E. Kalman, A New Approach to Linear Filtering and Prediction Problems, Transactions of the ASME-Journal of Basic Engineering, I960).
计算时需要使用到执行图和部署状态数据, 用于确定各个服务器上的组件, 以及这些组 件的调用频率(即吞吐率, 可由调用次数除以状态更新周期获得, 以秒为单位)。 同时, 也会 使用到 CPU利用率的监测数据。 下文将介绍一台服务器上的组件的服务时间的计算方法。  The execution graph and deployment status data are used in the calculation to determine the components on each server and the frequency of calls to these components (that is, the throughput rate, which can be obtained by dividing the number of calls divided by the status update period, in seconds). At the same time, monitoring data for CPU utilization is also used. The calculation of the service time of components on a server is described below.
Kalman滤波提供了一个在离散时间点,估算不可观测状态 X的通用方法。 第 k时刻状态 可以定义为一个线性随机差分方程:
Figure imgf000011_0001
第 k时刻观察值 CPU总的利用率 ^定义为:
Kalman filtering provides a general method for estimating the unobservable state X at discrete points in time. The k-th moment state can be defined as a linear stochastic difference equation:
Figure imgf000011_0001
The total utilization rate of the CPU at the kth time is defined as:
¾ = ϋ . . (L b) 其中 A是从 k-1时刻到 k时刻状态转换矩阵, -i是可选的控制参数, B是与控制相关的矩 阵, Mfe为测量误差,其协方差矩阵为 QM。 ^是 到 的转换矩阵, ι¾是测量误差,其协方 差矩阵为 ¾。 3⁄4 = ϋ . . (L b) where A is the state transition matrix from k-1 to k, -i is an optional control parameter, B is the matrix associated with the control, Mfe is the measurement error, and its covariance matrix For Q M. ^ is the conversion matrix to, ι3⁄4 is the measurement error, its co-party The difference matrix is 3⁄4.
本发明将公式(1. a)和(1. b)做如下映射:  The present invention maps equations (1. a) and (1. b) as follows:
¾ ― ¾-1 + wk-i (2. a)3⁄4 ― 3⁄4-1 + w ki (2. a)
¾ =∑ί= ί , xt + vk (2. b) 其中 = xl -.. 1 ,表示 k时刻各组件服务的服务时间, a为总 CPU利用率, t为各服 务的吞吐率(组件的调用频率即吞吐率,可由调用次数除以状态更新周期获得, 以秒为单位)。 根据 CPU利用率法则,有公式 (2. b),即总 CPU利用率等于各服务吞吐率与服务时间乘积的累加 和。 所以 H可以定义如下: 3⁄4 =∑ί= ί , x t + v k (2. b) where = xl -.. 1 , which represents the service time of each component service at time k , a is the total CPU utilization, and t is the throughput of each service ( The frequency at which the component is called, the throughput rate, is obtained by dividing the number of calls by the status update period, in seconds. According to the CPU utilization rule, there is a formula (2. b), that is, the total CPU utilization is equal to the cumulative sum of the product throughput and the service time product. So H can be defined as follows:
¾ = i f2 - f«] (2. c)3⁄4 = i f 2 - f «] (2. c )
Kalman算法还需要一个初始值 和 Rj, 其迭代过程如下: The Kalman algorithm also requires an initial value and Rj. The iterative process is as follows:
1. 使用 M=0更新 X的状态: 1. Update the status of X with M =0:
2. 更新协方差矩阵^: 2. Update the covariance matrix ^:
3. 计算 Kalman增益: 3. Calculate the Kalman gain:
4. 修正 X的状态: = + (¾― - ) 4. Fix the state of X: = + (3⁄4― - )
5. 修正协方差矩阵] ¾: 5. Correct the covariance matrix] 3⁄4 :
¾ = (./― Kk Hk}Pk 初始值 和 1¾对 Kalman滤波计算影响很小,可以设置为任何有理由的值。 本文根据排队 论的定义将初始值设置为: = ^(1 - 〕 (王伟,张文博,魏峻,钟华,黄涛.一种资源敏感 的 Web应用性能诊断方法,软件学报, 2010年 21卷 2期, pp. 194-208), 为服务 i的响应时间, 即服务时间的等于响应时间乘以 CPU空闲率; 而 = rf i¾?(i f)2,( 2>〜d¾2), 由于各组 件服务的服务时间是独立的, 所以是对角矩阵。 3⁄4 = (./― K k H k }P k initial value and 13⁄4 have little effect on Kalman filter calculation and can be set to any reasonable value. This paper sets the initial value to: = ^(1) according to the definition of queuing theory. - 〕 (Wang Wei, Zhang Wenbo, Wei Jun, Zhong Hua, Huang Tao. A resource-sensitive Web application performance diagnosis method, Journal of Software, 2010, Vol. 21, No. 2, pp. 194-208), response time for service i That is, the service time is equal to the response time multiplied by the CPU idle rate; and = rf i3⁄4?(if) 2 , ( 2 >~d3⁄4 2 ), because the service time of each component service is independent, it is a diagonal matrix.
每次迭代必须确定 i¾ Q^P ¾这三个矩阵。 Ht可以通过调用链信息直接获得, 即各个服 务的吞吐率(一个采样周期内, 服务被调用的总次数除以采样周期长度)。 表示每一次迭代 中 X变化的协方差矩阵, 对于在线的系统通常无法获得, 只能估计变化范围。 但如果 太大 将导致估算结果抖动过大, 太小又会使结果变化细微, 体现不出服务时间的波动。 一个策略 是将 设置为对角矩阵, 且对角线元素为一个迭代过程中 X 变化的最大值的平方 The three matrices i3⁄4 Q^P 3⁄4 must be determined for each iteration. H t can be obtained directly by calling the chain information, that is, each service The throughput rate (the total number of times the service is called divided by the length of the sample period in one sample period). The covariance matrix representing the X change in each iteration is usually not available for online systems, and only the range of variation can be estimated. However, if it is too large, the estimation result will be too large. If it is too small, the result will be subtle and the fluctuation of service time will not be reflected. One strategy is to set the diagonal matrix, and the diagonal element is the square of the maximum value of the X change during an iteration.
¾ = άία8 ξι> ξ2, , 其中 {(χί - )为每一次测量值的误差, 即 CPU总的利 用率的测量误差。本文认为 CPU总的利用率的测量值误差很小, 足以值得信赖, 因此设 ¾=0 迭代过程中,第 4 步修正 X 的状态是服务时间估算的关键,该公式可以简化为 X = ΚΰΜ + Κ - 的形式,即利用 Kalman增益和误差 e修正 XM的值.也就是说, 随着新数据 的不断收集, 服务时间 X可以在迭代计算的过程中不断的被更新, 从而保证估算出的服务时 间与实际服务时间的吻合。 3⁄4 = άία 8 ξι> ξ2, , where {( χ ί - ) is the error of each measurement, that is, the measurement error of the total utilization of the CPU. This paper considers that the measured value of the total utilization of the CPU is small enough to be reliable. Therefore, in the iteration process of 3⁄4=0, the state of the modified X in step 4 is the key to the estimation of the service time. The formula can be simplified to X = Κ ΰΜ The form of + Κ - corrects the value of X M using Kalman gain and error e. That is, as new data is continuously collected, service time X can be continuously updated during the iterative calculation to ensure estimation The service time is consistent with the actual service time.
用户行为简化器主要负责将实际的用户行为(从用户行为载入器中读取)转化为分层排队 网所能接受的形式。 为了简化用户行为模式图, 本发明引入了用户行为模式图的派生向量用 其描述用户行为模式图的基本特征, 即各事务在一个会话中被平均访问的次数, 它与用户行 为模式图中各事务被访问次数在概率上是相等的。  The User Behavior Reducer is primarily responsible for translating the actual user behavior (read from the User Behavior Loader) into a form acceptable to the hierarchical queuing network. In order to simplify the user behavior pattern diagram, the present invention introduces a derivative vector of the user behavior pattern diagram, which describes the basic characteristics of the user behavior pattern diagram, that is, the number of times each transaction is averaged in one session, and the user behavior pattern diagram The number of times a transaction is accessed is equal in probability.
设 V表示用户行为模式图的派生向量, 表示每个事务在一次会话中被访问到的次数。如 果假设 ι¾的次数是 1, 即事务开始的次数为 1, 那么各个事务被访问的次数可定义为公式 (3) 的形式, 即各事务被访问的次数等于其前驱节点被访问次数与访问该节点概率的乘积。  Let V denote the derived vector of the user behavior pattern, indicating the number of times each transaction was accessed in a session. If the number of times of ι3⁄4 is 1, that is, the number of times the transaction starts is 1, then the number of times each transaction is accessed can be defined as the form of formula (3), that is, the number of times each transaction is accessed is equal to the number of times its precursor node is accessed and accessed. The product of the node probabilities.
¾ =∑S? ΐ¾ P^ i = 1, , + 1 (3) 公式 3可以写为矩阵形式: 3⁄4 =∑S? ΐ3⁄4 P^ i = 1, , + 1 (3) Equation 3 can be written as a matrix:
I? ~ T = P X P (4) 其中 Ϊ = (1,0., .., ,0), Ρη÷ 1 = 0 ^ = 0. ..■' "■ + 1且 Vn+1=l, 因为开始和结束事务必然存在, 且 结束事务不会再访问其它事务。 求解公式 (4)对应的线性方程组, 即可获得派生向量 V I? ~ T = PXP (4) where Ϊ = (1,0., .., ,0), Ρη ÷ 1 = 0 ^ = 0. ..■'"■ + 1 and Vn+1 =l, because The start and end transactions must exist, and the end of the transaction will not access other transactions. Solving the linear equations corresponding to equation (4), you can get the derived vector V
状态更新模块会以状态更新周期为间隔,周期性的执行, 以更新性能数据。每次更新之后, 性能数据都会保存在状态存储模块中, 以便分析模块使用。  The status update module periodically executes at the interval of the status update period to update the performance data. After each update, the performance data is saved in the state storage module for analysis by the module.
第四, 状态存储模块主要负责存储状态更新模块生成的最新状态, 包括: 执行图、 部署状 态数据、 服务时间和用户行为, 对应于状态更新模块相应子模块生成的结果。 比如用户行为 则是用户行为简化模块生成的用户行为模式图的派生向量。 分析模块在收到维护人员的命令 之后, 会从该模块提取数据进行预测。 Fourth, the state storage module is mainly responsible for storing the latest state generated by the state update module, including: execution map, deployment state data, service time, and user behavior, corresponding to the results generated by the corresponding sub-modules of the state update module. Such as user behavior It is the derived vector of the user behavior pattern graph generated by the user behavior simplification module. After receiving the maintenance personnel's command, the analysis module extracts data from the module for prediction.
最后, 分析模块则负责根据状态信息生成性能模型, 并调用其工具分析出未来的性能。该 模块主要由性能模型构造器、 性能分析模块、 和显示模块组成。 当发现状态存储模块存在性 能数据时且被启动时, 分析模块会调用各个子模块工作, 将性能分析结果呈现给维护人员。 否则, 此时尚未完成一个采集周期, 并未收集到运行数据, 等待维护人员再次启动分析模块。  Finally, the analysis module is responsible for generating performance models based on state information and invoking its tools to analyze future performance. The module consists primarily of a performance model builder, a performance analysis module, and a display module. When the status storage module finds that the performance data exists and is started, the analysis module calls each sub-module to work, and presents the performance analysis result to the maintenance personnel. Otherwise, an acquisition cycle has not been completed at this time, and no operational data is collected, waiting for the maintenance personnel to start the analysis module again.
性能模型构造器负责根据性能数据生成分层排队网性能模型, 具体包括四个步骤: 第一, 根据单个执行图生成单个服务分层排队网模型; 第二, 附加上部署状态数据, 确定各个组件 的部署状态; 第三, 根据服务时间在性能模型的结构中填入服务时间这一参数; 第四, 根据 用户行为模式图的派生向量生成负载, 将单个服务的分层排队网组合为一个完整的分层排队 网性能模型。  The performance model constructor is responsible for generating the hierarchical queuing network performance model based on the performance data, and specifically includes four steps: First, generating a single service hierarchical queuing network model according to a single execution graph; Second, attaching deployment state data to determine each component The deployment state; third, the service time is filled in the structure of the performance model according to the service time; fourth, the load is generated according to the derived vector of the user behavior pattern diagram, and the hierarchical queue network of the individual service is combined into one complete The hierarchical queuing network performance model.
经过执行图分析器分析之后, 会以事务为单元, 生成各个事务的执行图。该执行图反映了 事务在统计特征上的总体特征, 可以直接转换为分层排队网模型 (LQN)。 转换规则是执行图 中的节点 (组件服务)转换为 LQN的入口(Entry) , 同时将同一个组件的服务合并为一个 LQN 模型的任务 (Task)。 图 4为由执行图分析器处理图 3所示的一个事务的不同调用链经合并对 等节点后得到的执行图, 转换成 LQN模型如图 5所示。  After performing the graph analyzer analysis, the execution graph of each transaction is generated in units of transactions. The execution map reflects the overall characteristics of the transaction in terms of statistical characteristics and can be directly converted to a hierarchical queuing network model (LQN). The conversion rule is an entry (Entry) in which the node (component service) in the execution graph is converted to LQN, and the service of the same component is merged into a task (Task) of the LQN model. Figure 4 is an execution diagram obtained by the execution graph analyzer processing the different call chains of a transaction shown in Figure 3 after merging the peer nodes, and converted into an LQN model as shown in Figure 5.
附加部署状态数据的操作比较直接,只需在模型中将同一个硬件资源上的任务部署在同一 个描述硬件资源的 LQN模型上即可。 图 6给出了附加部署状态数据的一个例子。 如果部署分 析器分析出 CO部署在 ServerO服务器上, C1和 C2部署在 Serverl服务器上, 而 C3和 C4部 署在 Serverf服务器上, 则图 5则会转化为图 6所示结构。  The operation of attaching the deployment state data is relatively straightforward, and it is only necessary to deploy the tasks on the same hardware resource in the same LQN model describing the hardware resources in the model. Figure 6 shows an example of additional deployment state data. If the deployment analyzer analyzes that the CO is deployed on the ServerO server, C1 and C2 are deployed on the Server1 server, and C3 and C4 are deployed on the Serverf server, Figure 5 is converted to the structure shown in Figure 6.
服务时间是分层排队网的一个关键参数。每个组件服务, 即分层排队网的每个入口都有这 一参数, 表示该组件自身执行实际所需的时间, 不包括自身和调用其它组件的等待时间。 服 务时间的估算由服务时间分析器完成。 计算过程中, 同一组件的不同服务, 即 LQN模型中不 同任务的不同入口的服务时间将分别计算。 但同一服务的不对等节点并不做区分, 因为此时 并不用关心组件之间的调用关系, 只需要关心每个服务的服务时间即可。 图 7给出了一个添 加了服务时间参数的 LQN模型的示例。 图中 C1和 C3任务具有两个入口, 但是它们是同一服 务的两个不对等节点, 所以服务时间是一样的。  Service time is a key parameter of a hierarchical queuing network. Each component service, that is, each entry in the hierarchical queuing network, has this parameter, indicating that the component itself is actually executing the required time, excluding itself and the wait time for calling other components. The estimation of the service time is done by the service time analyzer. During the calculation process, different services of the same component, that is, different service times of different entries in the LQN model, will be calculated separately. However, the unequal nodes of the same service do not distinguish between them, because it is not necessary to care about the calling relationship between components at this time, and only need to care about the service time of each service. Figure 7 shows an example of an LQN model with service time parameters added. The C1 and C3 tasks in the figure have two entries, but they are two non-equivalent nodes of the same service, so the service time is the same.
用户行为模式图的派生向量不存在环, 因此可以用 LQN建模。 图 8给出了用户行为模式图 的派生向量的 LQN模板。 任务 模拟了一个用户, 对应于 LQN模型中模拟用户的特殊任务, 可以采用开放和封闭两种方式生成负载 (Franks, G. , Hubbard, A. , Majumdar, S., Petriu, D. C. , Rol ia, J. , Woodside, C. M: A toolset for Performance Engineering and Software Design of Cl ient-Server Systems. Performance Evaluation, Vol. 24, Nb. 1-2 (1995) 117 - 135)。 以派生向量 V中的数值访问各个任务(从 T1到 Tn)。 这些任务是由执行图生 成的 LQN模型, 但并不存在 1¾和1¾+1这两个的事务, 因为它们只是开始和结束的标志。 另 外, 如果同一任务分布在不同的事务执行图中, 它们最后会合并为一个任务, 但是入口并不 合并, 否则也会引起如何并调用链中所述的不一致问题。 图中的每个事务, 对应于一个类似 于图 8所示的执行图, 但是相同的硬件资源最终会合并为一个。 The derived vector of the user behavior pattern diagram does not have a loop, so it can be modeled with LQN. Figure 8 shows the LQN template for the derived vector of the user behavior pattern diagram. The task simulates a user, corresponding to the special task of simulating the user in the LQN model, and can generate loads in both open and closed ways (Franks, G., Hubbard, A., Majumdar, S., Petriu, DC, Rol ia, J. , Woodside, C. M: A toolset for Performance Engineering and Software Design of Cl ient-Server Systems. Performance Evaluation, Vol. 24, Nb. 1-2 (1995) 117-135). Each task (from T1 to Tn) is accessed with the value in the derived vector V. These tasks are generated by the LQN model generated by the graph, but there are no transactions for both the 13⁄4 and the 13⁄4+1 because they are just the beginning and end flags. In addition, if the same task is distributed in different transaction execution diagrams, they will eventually be merged into one task, but the entries are not merged, otherwise it will cause inconsistencies in how to call the chain. Each transaction in the figure corresponds to an execution diagram similar to that shown in Figure 8, but the same hardware resources are eventually merged into one.
图 9给出了一个简单的例子, 描述了一个完整的 LQN模型的样式。顶层任务 ΕΒ代表用户, 它会向应用服务器发出不同类型的请求。 它的服务时间比较特殊, 统计的是用户平均思考时 间, 而不是服务时间, 因为用户操作的间隔是思考时间, 而不是实际执行的服务时间。 当用 户请求到达负载均衡器后会按不同的比例转发给异构的应用服务器。 应用服务器收到请求后 会调用不同的数据库查询操作。 当数据库查询完成后, 再逐层释放嵌套等待, 直到用户释放 等待, 一次请求结束。  Figure 9 shows a simple example that describes the style of a complete LQN model. The top-level task ΕΒ represents the user, which issues different types of requests to the application server. Its service time is quite special. The statistics are the average thinking time of the user, not the service time, because the user operation interval is the thinking time, not the actual running time. When the user requests to reach the load balancer, it will be forwarded to the heterogeneous application server in different proportions. After the application server receives the request, it will invoke different database query operations. When the database query is completed, the nested wait is released layer by layer until the user releases the wait and the request ends.
性能分析模块是一个求解分层排队网工具的计算器,可以通过分析工具 LQNS和模拟工具 LQNSim 进行求角军 ( M. Woodside and G. Franks, " Tutorial Introduction to Layered Model ing of Software Perf romance ", http : //www. see. carleton. ca/rads/lqns/lqn_documentatior 。该工具的输入是一个分层排 队网模型的性能模型, 输出则是性能预测的结果。 结果包含了系统总的响应时间、 吞吐率、 处理器利用率和单个组件的使用率、 总执行时间等数据。 依据这些数据, 设计人员可以清晰 地了解不同负载下系统的性能状况, 再参照最终系统的需求说明, 便可判断当前设计是否满 足需求。 特别是在有若干备选方案的情况下, 通过比较预测结果, 可以从中选择相对最优的 方案。  The Performance Analysis Module is a calculator for solving the hierarchical queuing network tool. It can be used by the analysis tool LQNS and the simulation tool LQNSim (M. Woodside and G. Franks, "Tutorial Introduction to Layered Model ing of Software Perf romance", Http : //www. see. carleton. ca/rads/lqns/lqn_documentatior. The input to the tool is a performance model of a hierarchical queuing network model, and the output is the result of performance prediction. The results contain the total response time of the system, Data such as throughput, processor utilization, individual component usage, total execution time, etc. Based on this data, designers can clearly understand the performance of the system under different loads, and then refer to the requirements description of the final system to determine the current Whether the design meets the requirements. Especially in the case of several alternatives, by comparing the prediction results, a relatively optimal solution can be selected.
显示模块主要负责将预测的结果展示给维护人员, 以图表的方式供维护人员以不同的形 式分析比较系统的性能。 图表显示主要负责将预测出的性能数据用折线图的方式显示响应时 间、 吞吐率、 处理器利用率和单个组件的使用率和总执行时间等。 横坐标为时间, 纵坐标为 上述各个性能数据, 每种数据用一个直线图表示。  The display module is mainly responsible for presenting the predicted results to the maintenance personnel, and graphically providing maintenance personnel with different forms to analyze and compare the performance of the system. The chart display is primarily responsible for displaying the predicted performance data in a line graph showing response time, throughput, processor utilization, individual component usage, and total execution time. The abscissa is time, and the ordinate is the above various performance data, and each data is represented by a line graph.
总之, 本发明以监测和统计的方式, 为 Web应用自动构造能适应系统变化的性能模型, 从而预测出系统未来的性能表现。 预测结果可以体现出系统不同层次和粒度的性能特征, 比 如表征出集群, 集群中的节点, 以及节点上的组件等几个层次上不同粒度的性能数据。 为负 载均衡策略调整, 节点的供给与回收, 瓶颈检测与定位, 以及差异性的服务质量保障等控制 技术提供量化依据。  In summary, the present invention automatically constructs a performance model that adapts to system changes for Web applications in a monitoring and statistical manner, thereby predicting future performance of the system. The prediction results can reflect the performance characteristics of different levels and granularities of the system, such as performance data of different levels at different levels, such as clusters, nodes in the cluster, and components on the nodes. It provides quantitative basis for control technologies such as load balancing strategy adjustment, node supply and recovery, bottleneck detection and location, and differentiated service quality assurance.

Claims

权利 要求 书 Claim
1、 一种 Web应用系统细粒度性能建模方法, 包括如下步骤:  1. A fine-grained performance modeling method for a Web application system, comprising the following steps:
1 ) 设定 Web应用系统中间件平台的更新周期;  1) setting the update period of the web application middleware platform;
2 ) 提取一个更新周期内的 Web应用系统中间件平台的运行数据;  2) extracting the running data of the web application middleware platform in an update cycle;
3 ) 根据运行数据得出 Web应用系统中间件平台的性能数据;  3) obtaining performance data of the web application middleware platform according to the running data;
4) 根据当前性能数据生成并显示 Web应用系统的分层排队网性能模型。  4) Generate and display a hierarchical queuing network performance model of the web application system based on current performance data.
2、根据权利要求 1所述的 Web应用系统细粒度性能建模方法, 其特征在于所述运行数据包括 执行轨迹数据、 CPU总的利用率和用户使用系统的轨迹数据。  2. The fine-grained performance modeling method of a web application system according to claim 1, wherein the running data comprises execution trajectory data, total utilization of the CPU, and trajectory data of the user using the system.
3、根据权利要求 2所述的 Web应用系统细粒度性能建模方法, 其特征在于所述性能数据包括 执行图、 组件部署状态数据、 服务时间和用户行为模式图的派生向量。  3. The fine-grained performance modeling method of a web application system according to claim 2, wherein the performance data comprises a derivative vector of an execution map, component deployment state data, a service time, and a user behavior pattern diagram.
4、根据权利要求 3所述的 Web应用系统细粒度性能建模方法, 其特征在于所述执行轨迹数据 用调用链表示, 其中节点为组件, 边为组件之间的调用关系, 实线表示同步请求, 虚线表示 异步请求,编号表示调用的次数。  The fine-grained performance modeling method of the web application system according to claim 3, wherein the execution trajectory data is represented by a call chain, wherein the node is a component, the edge is a calling relationship between components, and the solid line indicates synchronization. Request, the dotted line represents the asynchronous request, and the number indicates the number of calls.
5、根据权利要求 4所述的 Web应用系统细粒度性能建模方法, 其特征在于通过合并一个事务 的各调用链的对等节点得到一个事务的执行图, 所述对等节点是指两个节点 α和 β满足以下 条件:  5. The fine-grained performance modeling method for a web application system according to claim 4, wherein an execution map of a transaction is obtained by merging peer nodes of each call chain of a transaction, wherein the peer node refers to two The nodes α and β satisfy the following conditions:
两个节点 α和 β表示同一个入口, 且  Two nodes α and β represent the same entry, and
或者 α的父节点和 β的父节点是对等节点, 且父节点到 α和 β的请求类型相同; 或者 α = β且 α和 β的父节点为空。  Or the parent node of α and the parent node of β are peer nodes, and the parent node has the same request type to α and β; or α = β and the parent nodes of α and β are empty.
6、根据权利要求 3所述的 Web应用系统细粒度性能建模方法, 其特征在于通过分析执行轨迹 上各组件所在服务器的 IP地址, 获得所述组件部署状态数据。  The fine-grained performance modeling method for a web application system according to claim 3, wherein the component deployment state data is obtained by analyzing an IP address of a server where each component on the execution track is located.
7、根据权利要求 3所述的 Web应用系统细粒度性能建模方法, 其特征在于采用下述两个公式 进行迭代计算得到所述服务时间:  7. The fine-grained performance modeling method for a web application system according to claim 3, characterized in that the service time is obtained by iteratively calculating using the following two formulas:
Xk — ¾ -ι + wk-i
Figure imgf000016_0001
其中, = ^ 〜x^ ,表示 时刻各组件服务的服务时间, ^为 CPU总的利用率, ί为 各服务的吞吐率, wk-i为测量误差,其协方差矩阵为 Qk-i, 是测量误差,其协方差矩阵为
Xk — 3⁄4 -ι + w ki
Figure imgf000016_0001
Where = ^ ~ x^ , indicating the service time of each component service at the moment, ^ is the total utilization of the CPU, ί is the throughput of each service, wk-i is the measurement error, and the covariance matrix is Qk-i, Measurement error, the covariance matrix is
Rk。 Rk.
8、根据权利要求 3所述的 Web应用系统细粒度性能建模方法, 其特征在于将用户使用系统的 轨迹数据转化为派生向量 的方法为: 8. The fine-grained performance modeling method for a web application system according to claim 3, wherein the user uses the system The method for converting trajectory data into derived vectors is:
将公式 = ■ X ¾ . : + I 转换为矩阵形式:  Convert the formula = ■ X 3⁄4 . : + I into a matrix form:
V - ϊ = ν ρ 其中 ¼ 为每个事务在一次请求中被访问到的次数, ¾ =ι ; ΐ = (ΐΑ ...,ο) = ° V = ?i. i且 v¾+尸 ; 求解矩阵形式公式对应的线性方程组, 获得派生向量 V - ϊ = ν ρ where 1⁄4 is the number of times each transaction is accessed in one request, 3⁄4 =ι ; ΐ = (ΐΑ ..., ο) = ° V = ?i .i and v3⁄4+ corp ; The linear equations corresponding to the matrix form formula, obtain the derived vector
9、根据权利要求 3所述的 Web应用系统细粒度性能建模方法, 其特征在于所述分层排队网性 能模型的生成方法为: 首先, 将单个执行图转换为单个服务的分层排队网模型, 其中, 执行图的节点转换为模型 的入口; 同一节点的服务合并为一个模型的任务; 第二, 在模型上附加各个组件的部署状态数据; 第三, 在模型上添加服务时间; 第四,根据用户行为模式图的派生向量生成负载,将单个服务的分层排队网模型组合为完 整的性能模型。  9. The fine-grained performance modeling method for a web application system according to claim 3, wherein the hierarchical queuing network performance model is generated by: first, converting a single execution graph into a hierarchical queue network of a single service a model, wherein a node performing the graph is converted into an entry of the model; a service of the same node is merged into a task of the model; second, a deployment state data of each component is attached to the model; and third, a service time is added to the model; Fourth, according to the derived vector generation load of the user behavior pattern diagram, the hierarchical service queuing network model of a single service is combined into a complete performance model.
10、 一种 Web应用细粒度性能建模系统, 其特征在于包括: 10. A fine-grained performance modeling system for web applications, comprising:
状态更新模块, 设定 Web应用系统中间件平台的更新周期, 依据每一更新周期内的 Web 应用系统的运行数据, 计算得到性能数据;  The status update module sets an update period of the web application middleware platform, and calculates performance data according to the operation data of the web application system in each update period;
日志载入模块, 提取每一更新周期内的运行数据并载入状态更新模块;  a log loading module, extracting running data in each update cycle and loading a status update module;
分析模块, 依据当前性能数据, 生成并显示 Web应用系统的分层排队网性能模型。  The analysis module generates and displays a hierarchical queuing network performance model of the web application system according to the current performance data.
11、根据权利要求 10所述的 Web应用细粒度性能建模系统, 其特征在于所述状态更新模块包 括执行图分析器、 部署分析器、 服务时间分析器和用户行为简化器,  11. The Web application fine-grained performance modeling system of claim 10, wherein the status update module comprises an execution graph analyzer, a deployment analyzer, a service time analyzer, and a user behavior simplifier.
执行图分析器利用执行轨迹数据计算 Web应用系统完成一个事务的总体执行路径; 获得 所述执行图;  Executing the graph analyzer to calculate the overall execution path of the transaction by using the execution trajectory data calculation web application system; obtaining the execution map;
部署分析器提取执行轨迹数据中的各组件在服务器上的位置数据, 获得所述组件部署状 态数据; 服务时间分析器计算 Web应用系统每个组件提供服务的执行时间, 获得所述服务时间; 用户行为简化器将用户使用系统的轨迹数据转化为用户行为模式图的派生向量。 The deployment analyzer extracts location data of each component in the execution trajectory data on the server, and obtains the component deployment state data; The service time analyzer calculates the execution time of each component of the web application system to provide the service time, and obtains the service time; the user behavior simplifier converts the trajectory data of the user using the system into a derivative vector of the user behavior pattern diagram.
12、根据权利要求 10所述的 Web应用细粒度性能建模系统, 其特征在于所述日志载入模块包 括轨迹信息载入器、 CPU利用率载入器和用户行为载入器,  12. The web application fine-grained performance modeling system of claim 10, wherein the log load module comprises a trace information loader, a CPU utilization loader, and a user behavior loader.
轨迹信息载入器载入执行轨迹数据;  The track information loader loads the execution track data;
CPU利用率载入器载入系统服务器 CPU的总利用率;  The CPU utilization loader loads the total utilization of the system server CPU;
用户行为载入器载入用户从登录直到退出过程中使用系统的轨迹数据。  The user behavior loader loads the trajectory data of the user using the system from login to exit.
PCT/CN2010/078104 2010-09-07 2010-10-26 Fine-grained performance modeling method for web application and system thereof WO2012031419A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN 201010275216 CN101916321B (en) 2010-09-07 2010-09-07 Web application fine-grained performance modelling method and system thereof
CN201010275216.0 2010-09-07

Publications (1)

Publication Number Publication Date
WO2012031419A1 true WO2012031419A1 (en) 2012-03-15

Family

ID=43323833

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2010/078104 WO2012031419A1 (en) 2010-09-07 2010-10-26 Fine-grained performance modeling method for web application and system thereof

Country Status (2)

Country Link
CN (1) CN101916321B (en)
WO (1) WO2012031419A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104067258A (en) * 2012-04-26 2014-09-24 惠普发展公司,有限责任合伙企业 Platform runtime abstraction
CN104778114A (en) * 2015-04-30 2015-07-15 北京奇虎科技有限公司 Method, device and terminal for analyzing application response performance

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10044786B2 (en) 2014-11-16 2018-08-07 International Business Machines Corporation Predicting performance by analytically solving a queueing network model
US9984044B2 (en) 2014-11-16 2018-05-29 International Business Machines Corporation Predicting performance regression of a computer system with a complex queuing network model
CN110832463A (en) 2017-06-30 2020-02-21 Oppo广东移动通信有限公司 Coefficient calculation method, component calling method, device, medium, server and terminal
CN107360026B (en) * 2017-07-07 2020-05-19 西安电子科技大学 Distributed message middleware performance prediction and modeling method
CN107943579B (en) * 2017-11-08 2022-01-11 深圳前海微众银行股份有限公司 Resource bottleneck prediction method, device, system and readable storage medium
CN109189547A (en) * 2018-08-01 2019-01-11 上海工程技术大学 The analogy method of Web service under a kind of evolution scene

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101373432A (en) * 2008-09-26 2009-02-25 中国科学院软件研究所 Method and system for predicting component system performance based on intermediate part
CN101515347A (en) * 2009-04-03 2009-08-26 许珂 Patent technology width real time analysis system and method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101505243B (en) * 2009-03-10 2011-01-05 中国科学院软件研究所 Performance exception detecting method for Web application

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101373432A (en) * 2008-09-26 2009-02-25 中国科学院软件研究所 Method and system for predicting component system performance based on intermediate part
CN101515347A (en) * 2009-04-03 2009-08-26 许珂 Patent technology width real time analysis system and method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHENC, XIANG: "Research on Performance Analysis Solution of Web Application System based on LQN Models", CHINESE MASTER'S THESES FULL-TEXT DATABASE, INFORMATION SCIENCE AND TECHNOLOGY, no. 11, November 2009 (2009-11-01), pages 27, 34 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104067258A (en) * 2012-04-26 2014-09-24 惠普发展公司,有限责任合伙企业 Platform runtime abstraction
US9507748B2 (en) 2012-04-26 2016-11-29 Hewlett Packard Enterprise Development Lp Platform runtime abstraction
CN104778114A (en) * 2015-04-30 2015-07-15 北京奇虎科技有限公司 Method, device and terminal for analyzing application response performance

Also Published As

Publication number Publication date
CN101916321B (en) 2013-02-06
CN101916321A (en) 2010-12-15

Similar Documents

Publication Publication Date Title
WO2012031419A1 (en) Fine-grained performance modeling method for web application and system thereof
CN109478045B (en) Controlling a target system using prediction
Wolski Experiences with predicting resource performance on-line in computational grid settings
US20080228459A1 (en) Method and Apparatus for Performing Capacity Planning and Resource Optimization in a Distributed System
Brevik et al. Automatic methods for predicting machine availability in desktop grid and peer-to-peer systems
Cohen et al. Correlating Instrumentation Data to System States: A Building Block for Automated Diagnosis and Control.
US7546222B2 (en) System for performance and scalability analysis and methods thereof
US20080262822A1 (en) Simulation using resource models
US20080262824A1 (en) Creation of resource models
US7974827B2 (en) Resource model training
WO2008134143A1 (en) Resource model training
JP2011086295A (en) Estimating service resource consumption based on response time
CN109254865A (en) A kind of cloud data center based on statistical analysis services abnormal root because of localization method
Jha et al. Live forensics for HPC systems: A case study on distributed storage systems
Jenq et al. A queueing network model for a distributed database testbed system
Zhang et al. QoS prediction in cloud and service computing: approaches and applications
Malik et al. Using load tests to automatically compare the subsystems of a large enterprise system
Zhang et al. Real-time performance prediction for cloud components
Liang et al. Mystique: Enabling Accurate and Scalable Generation of Production AI Benchmarks
Begy et al. Forecasting network throughput of remote data access in computing grids
US20060025981A1 (en) Automatic configuration of transaction-based performance models
Ghezzi et al. Predicting performance properties for open systems with KAMI
Aries et al. Capacity and performance analysis of distributed enterprise systems
Wolski et al. Performance information services for computational grids
Woodside The relationship of performance models to data

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10856881

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10856881

Country of ref document: EP

Kind code of ref document: A1