Determining application impact on system performance

By generating health waveforms on the computing system and calculating the influence factors between applications, resource allocation is dynamically adjusted, solving the problem of difficulty in real-time evaluation of application impact on system performance in existing technologies, and realizing dynamic optimization of system performance and improvement of fault diagnosis efficiency.

CN116194889BActive Publication Date: 2026-07-21INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
INTERNATIONAL BUSINESS MACHINE CORPORATION
Filing Date
2021-10-08
Publication Date
2026-07-21

AI Technical Summary

Technical Problem

Existing computing system monitoring systems are typically reactive, making it difficult to assess the impact of applications on system performance in real time and to dynamically adjust resource allocation to optimize system performance.

Method used

By collecting instrumentation data on the computing system, generating health waveforms, and using the Pearson correlation coefficient to calculate the influence factors between applications, resource allocation is dynamically adjusted to optimize system performance.

Benefits of technology

It enables dynamic monitoring and resource optimization of computing system performance issues, improves system flexibility and efficiency, and reduces fault diagnosis time and data storage volume.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116194889B_ABST
    Figure CN116194889B_ABST
Patent Text Reader

Abstract

A computer-implemented method for determining an application's impact on system performance includes collecting, by a processor, for a number of applications executing on a computing system, respective instrumentation data during a plurality of time periods. The method further includes, for each application of the number of applications, determining, based on the respective instrumentation data, a performance value and a robustness value for each time period of the plurality of time periods. Further, using the performance value and the robustness value for each time period, a plurality of health waveforms is generated, wherein a health waveform is generated for each respective application. The method also includes determining, by the processor, an impact factor of a first application on a second application, the first application and the second application executing on the computing system. The method also includes adjusting, by the processor, an allocation of computer resources based on the impact factor by releasing computer resources from the first application and allocating the computer resources to the second application.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates generally to computing systems, and more specifically to dynamically quantifying the impact of an application on the performance of a computing system executing the application. Background Technology

[0002] Conventional monitoring systems that monitor parameters captured for real-time analysis of the system can evaluate real-time or near-real-time data and compare that data against thresholds, limits, or other metrics to determine if errors or alarm conditions may exist. Captured parameters can include real-time analysis of machine-generated instrumentation data. When an alarm is triggered, some communication can be made with a human administrator who can take corrective action. Such systems tend to be reactive and capable of detecting when a problem has occurred. Summary of the Invention

[0003] According to an aspect of the present invention, a computer-implemented method for determining the impact of applications on system performance includes: for a plurality of applications executing on a computing system, a processor collecting corresponding instrumentation data during a plurality of time periods. The method further includes: for each of the plurality of applications, the processor determining a performance value and a robustness value for each of the plurality of time periods based on the corresponding instrumentation data. The method further includes the processor generating a health waveform for each corresponding application being executed using the performance value and robustness value for each time period. The method further includes the processor determining an impact factor of a first application on a second application, the first application and the second application being those applications being executed. The method further includes the processor adjusting the allocation of computer resources based on the impact factor by releasing computer resources from the first application and allocating the computer resources to the second application.

[0004] In one or more embodiments of the present invention, generating a health waveform includes: the processor converting the performance value and robustness value of each time period into polar coordinates, and the processor transforming the polar coordinates of each of the plurality of applications into a corresponding health waveform.

[0005] In one or more embodiments of the present invention, the influencing factor is determined by calculating the Pearson correlation coefficient between the first health waveform of the first application and the second health waveform of the second application.

[0006] In one or more embodiments of the present invention, determining the influence factor further includes identifying peak points on each of the first healthy waveform and the second healthy waveform.

[0007] In one or more embodiments of the present invention, the influence factor is calculated as follows: Where E is the covariance of f1 and f2, f1 is the first healthy waveform, and f2 is the second healthy waveform. It is the mean of f1. It is the mean of f2. It is the standard deviation of f1, and It is the standard deviation of f2.

[0008] In one or more embodiments of the present invention, the method further includes: storing execution records associated with the first application in response to detecting a system failure during the execution of the second application, storing execution records associated with the first application in response to the influence factor exceeding a threshold, and not storing the execution records of the first application in response to the influence factor falling below the threshold.

[0009] In one or more embodiments of the present invention, the method further includes: in response to detecting a system failure during the execution of the second application, analyzing only the execution records associated with the first application from the execution records of the plurality of applications based on the impact factor exceeding a threshold.

[0010] According to another aspect of the invention, a system includes a memory device and one or more processing units coupled to the memory. The one or more processing units perform a method for determining the impact of an application on system performance.

[0011] According to another aspect of the invention, a computer program product includes a storage device and one or more computer-executable instructions stored in the storage device, the one or more computer-executable instructions causing the one or more processing units, when executed by the one or more processing units, to perform a method for determining the impact of an application on system performance.

[0012] According to one or more embodiments of the present invention, a computer-implemented method includes: for a plurality of applications executing on a computing system, a processor collecting corresponding instrumentation data during a plurality of time periods. The method further includes: for each of the plurality of applications, the processor determining a performance value and a robustness value for each of the plurality of time periods based on the corresponding instrumentation data. The method further includes: the processor generating a health waveform for each corresponding application executing using the performance value and robustness value for each time period. The method further includes: the processor determining an influence factor of a first application executing on a second application. The method further includes: in response to a system failure detected during the execution of the second application, the processor analyzing only the execution records associated with the first application from the execution records of the plurality of applications based on the influence factor exceeding a threshold.

[0013] According to another aspect of the present invention, a computer-implemented method includes: for a plurality of applications executing on a computing system, a processor collecting corresponding instrumentation data during a plurality of time periods. The method further includes: for each of the plurality of applications, the processor determining a performance value and a robustness value for each of the plurality of time periods based on the corresponding instrumentation data. The method further includes: the processor generating a health waveform for each corresponding application from those health waveforms being executed, using the performance value and robustness value for each time period. The method further includes the processor determining an impact factor of a first application on a second application. The method further includes: in response to detecting a system failure during the execution of the second application, the processor storing an execution record associated with the first application in response to the impact factor exceeding a threshold, and not storing the execution record of the first application in response to the impact factor falling below the threshold.

[0014] Additional features and advantages are achieved through the techniques described herein. Other embodiments and aspects are described in detail herein. For a better understanding, refer to the specification and accompanying drawings. Attached Figure Description

[0015] The subject matter considered to be the invention is specifically pointed out and clearly claimed in the claims at the end of the specification. The foregoing and other features and advantages will become apparent from the following detailed description taken in conjunction with the accompanying drawings, wherein:

[0016] Figure 1 A block diagram of a system according to one or more embodiments of the present invention is depicted;

[0017] Figure 2 A flowchart is depicted for a method for dynamically determining the impact of an application on system performance according to one or more embodiments of the present invention;

[0018] Figure 3 Example reproductions of performance-robustness data for multiple applications according to one or more embodiments of the present invention are depicted;

[0019] Figure 4 A graph depicting the performance-robustness curves in polar coordinates (r, θ) according to one or more embodiments of the present invention;

[0020] Figure 5 Health waveforms for various applications according to one or more embodiments of the present invention are depicted;

[0021] Figure 6 A flowchart is depicted for a method of comparing two health waveforms according to one or more embodiments of the present invention;

[0022] Figure 7The health waveforms described according to one or more embodiments of the present invention are relative to Figure 5 A visual depiction of the comparison of curves in the graph;

[0023] Figure 8 The influence factors calculated between application pairs according to one or more embodiments of the present invention are described;

[0024] Figure 9 A flowchart is depicted for a method of diagnosing system faults according to one or more embodiments of the present invention;

[0025] Figure 10 A computer system according to an embodiment is described;

[0026] Figure 11 A cloud computing environment according to one or more embodiments of the present invention is described; and

[0027] Figure 12 An abstract model layer according to one or more embodiments of the present invention is described.

[0028] It should be noted that the accompanying drawings may not be to scale. In the following detailed description of the drawings and the disclosed embodiments, the various elements shown in the drawings are provided with two, three, or four-digit reference numerals. In most cases, the leftmost digit of each reference numeral corresponds to the drawing in which its element is first shown. Detailed Implementation

[0029] Embodiments of the present invention facilitate the quantitative analysis and measurement of the interactive effects of incremental performance changes on one or more performance parameters of a computing system on applications running within that computing system. Performance parameters may include instrumentation data that quantifies the operation of the computing system. For example, the System Management Facility (SMF) is used by IBM for mainframe computers. The SMF is a component that provides a standardized method for writing records of activity to files or datasets. SMF provides instrumentation for baseline activities running on IBM mainframe operating systems, including activities such as input / output (I / O), network activity, software usage, error conditions, and processor utilization. SMF forms the basis of many monitoring and automation tools. It should be understood that embodiments of the invention are not limited to SMF or... Instead, any technique can be used to capture execution records containing performance parameters of the computing system, and those performance parameters can be analyzed as described herein to improve the performance of the computing system. In one or more embodiments of the invention, execution records can be analyzed in real time. Alternatively or additionally, one or more embodiments of the invention help determine which execution records will be stored (and / or which records will not be stored) to reduce the amount of data stored, and to reduce the time and other resources required to analyze such data. Furthermore, in one or more embodiments of the invention, execution records are analyzed offline after they have been stored.

[0030] Technical challenges associated with analyzing performance data from computing systems (particularly in real time) include analyzing large volumes of such performance data. For example, for each application running, performance data may include parameters such as memory usage, storage usage, paging, processor usage percentage, processor usage time, input / output metrics, network usage, interrupt usage, and any other such instrumentation-related data indicating the application's use of computing resources. Furthermore, performance data also includes performance parameters of several applications (e.g., software programs, processes, daemons, etc.) running concurrently on the computing system. Therefore, determining the relationships between applications is also a technical challenge. Additionally, performance data can be captured over several time periods at a predetermined frequency (e.g., one minute after 10 minutes, or 10 seconds after 15 minutes, or any other such frequency). Alternatively or additionally, performance data may be captured based on events, such as when an application is started or when an application completes execution, or any other such event related to the execution of one or more applications.

[0031] Embodiments of the present invention address this technical challenge by quantifying the impact of one application on the performance of other applications running concurrently in a computing system. Furthermore, embodiments of the present invention help provide improved techniques for pinpointing the root causes of performance problems in computing systems. For example, when analyzing performance problems, analysts can use impact-related data to begin analyzing system performance from the highest-impacting application (the leader) during the period in which the performance problem was encountered / identified. Further, embodiments of the present invention help predict the future performance of affected applications. For example, performance trends of the impacting application (the leader) can be used to predict performance trends of affected applications (followers). Moreover, embodiments of the present invention facilitate more flexible and efficient monitoring and prediction of system health. For example, by facilitating the assessment of application impact over a time period, system management rules do not need to be predefined by analysts or system programmers. Instead, system management can be performed dynamically, thereby increasing flexibility. Moreover, key performance indicators (KPIs) of the system can be dynamically measured over a time period based on impact-related data. Observing only the impactors is more effective than observing all applications to determine system health.

[0032] The various embodiments of the present invention facilitate the assessment of the impact between applications running on a computer system, and also facilitate the analysis of the extent of such impact based on incremental system health changes over different time periods, in order to quantify the various health curves of the system caused by each application.

[0033] Figure 1 A block diagram of a system 100 according to one or more embodiments of the present invention is depicted. System 100 includes a computer system 101, which is monitored and analyzed by a system analyzer 110 for any performance-related issues. It should be noted that although the system analyzer 110 is depicted as a separate block from the computer system 101, in one or more embodiments of the invention, the system analyzer 110 may be part of the computer system 101 itself. In other embodiments, the system analyzer 110 may be a separate device from the computer system 101.

[0034] System analyzer 110 performs one or more methods described herein and facilitates the determination of the impact of one or more applications on system performance and on other applications running in computer system 101. In one or more embodiments of the invention, system analyzer 110 may adjust the allocation of one or more resources of computer system 101 among applications 106. System analyzer 110 may also determine which of the applications running in computer system 101 can store execution records. Furthermore, in one or more embodiments of the invention, system analyzer 110 determines execution records for analyzing the performance of computing system 101. In one or more embodiments of the invention, system analyzer 110 uses execution records to diagnose one or more problems with computer system 101.

[0035] Computer system 101 can be any type of computing device, such as a mainframe computer, server computer, desktop computer, laptop computer, tablet computer, telephone, modem, router, or any other computing system including hardware and software. Computer system 101 includes one or more hardware resources 102, such as processors, memory devices, disks, communication hardware, graphics processors, digital signal processors, input / output devices, cache memory devices, etc. Computer system 101 includes one or more software resources 104, such as hypervisors, virtual machines, operating systems, database systems, e-commerce systems, communication systems, artificial intelligence resources, etc. In one or more embodiments, hardware resources 102 and software resources 104 are accessed by one or more applications 106 executing on computer system 101. Hardware resources 102 and software resources 104 are accessed via corresponding application programming interfaces provided by computer system 101.

[0036] Application 106 may include, but is not limited to, web servers, database access servers, web browsers, games, media streaming applications, spreadsheet applications, word processing applications, mathematical applications, simulation applications, enterprise software applications, or any other type of software application. Such software applications can be used in any field, such as, but not limited to, mathematical simulation, healthcare, scientific / engineering research, retail, finance, commerce, etc. Figure 1 Four applications are depicted executing simultaneously on computer system 101: application-A 106A, application-B 106B, application-C 106C, and application-D 106D. However, it should be understood that in other embodiments, any other number of applications may execute simultaneously on computer system 101. Embodiments of the invention are described herein using examples involving the four applications described above; however, the invention is not limited to these examples.

[0037] Figure 2 A flowchart illustrating a method 200 for dynamically determining the impact of an application on system performance according to one or more embodiments of the present invention is provided. Method 200 includes, at block 202, collecting instrumented data X = {x1, x2, x3, ..., x...} for each application in application 106 during a time period. n The instrumentation data X includes one or more system parameter measurement data x. i Such as processor usage, memory usage, disk storage usage, network usage, operating system usage, virtual machine usage, hypervisor usage, and any other parameters indicating the use of any hardware resource 102 and / or software resource 104.

[0038] The time period can be a predetermined duration or point in time for capturing performance data. For example, the collected performance data (X) can be data observed at a specific point in time (such as 10:00 AM, or 11:30 AM, or any other such time). This can be a predetermined point in time for collecting performance data.

[0039] Alternatively, the collected instrumentation data (X) can be an aggregation of performance data observed over a specific duration (e.g., from a start point (e.g., 10:00 AM) to an end point (e.g., 11:00 AM)). The start and end points can be dynamically predetermined or determined based on the operation of system 100. The aggregation can be a sum, average, geometric mean, median, maximum, minimum, weighted average, or any other such statistical function or combination thereof. In other words, instrumentation data for each application 106 is captured from the start point to the end point, one or more statistical operations are performed on the captured data, and the results are then stored as performance data. In the example scenarios of applications 106A to 106D, four sets of instrumentation data X corresponding to applications 106A to 106D are collected, respectively. A X BX C and X D .

[0040] At box 204, performance and robustness (PR) values ​​are predicted for each of the collected instrumentation data X. In a multivariate system, the predicted PR values ​​quantify the impact of uncertainty and thus facilitate informed decision-making. PR prediction also reduces the gap between predicted performance and operational performance. The predicted PR values ​​identify the uncertainty-affecting parameters that influence the performance of computer system 101. The predicted PR values ​​facilitate the identification of the most influential sources of uncertainty from the collected instrumentation data (X).

[0041] Various PR modeling and prediction techniques are known, and embodiments of the present invention can use any known PR modeling and prediction technique. For example, in embodiments of the present invention, a neural network that receives instrumentation data X for each application in application 106 is used to determine the PR value. In an embodiment, a radial basis function (RBF) is used to train the neural network to provide a corresponding PR value for each application in the application. Thus, PR values ​​are obtained for each of applications 106A, 106B, 106C, and 106D, and for each time period during which instrumentation data X is captured.

[0042] Figure 3 An exemplary reproduction of PR data for multiple applications according to one or more embodiments of the present invention is depicted. In the depicted graph 300, performance is plotted along the Y-axis 302 and robustness is plotted along the X-axis 304. Graph 300 includes four curves 306A-306D, respectively corresponding to applications 106A-106D. Each curve 306A, 306B, 306C, and 306D depicts the PR value of applications 106A, 106B, 106C, and 106D corresponding to a respective time period. Each time period is represented as... Figure 3 Arrows (vectors) in the text. Figure 3 The diagram shows four time periods for each application; however, in other embodiments of the invention, a different number of time periods may be analyzed.

[0043] Refer again Figure 2 In the flowchart, at box 206, method 200 includes mapping the PR value to polar coordinates (r, θ). Figure 4 A graph 400 depicts the corresponding curves PR-A306A, PR-B 306B, PR-C 306C, and PR-D 306D in polar coordinates (r, θ) according to one or more embodiments of the present invention. The polar coordinates can be calculated from Cartesian coordinates (P, R), such as:

[0044] r = (x 2 +y2 ) 1 / 2 (1)

[0045] Where r = distance from the origin to the point, x = performance, y = robustness; and

[0046] θ = atan(y / x)

[0047] =tan -1 (y / x) (2)

[0048] Where θ = the angle (degrees) relative to the zero axis.

[0049] Further, in step 208, the polar coordinates of each application in application 106 are converted into a corresponding health waveform. The health waveform represents the system performance during the execution of application 106. System performance is related to resource utilization. Therefore, the health waveform represents the use of resources (102, 104) of computing system 101 during the execution of application 106, with each waveform representing the usage of the corresponding application. Figure 5 Health waveforms for various applications according to one or more embodiments of the present invention are depicted. Health waveforms 506A, 506B, 506C, and 506D are shown on graph 500 in Cartesian coordinates with a Y-axis 502 and an X-axis 504. The polar coordinates of each PR curve 406A-406D are transformed into Cartesian coordinates of the corresponding health waveforms 506A-506D using a dimension reduction function.

[0050] f(r,θ)=r t sin(θ t +θ0)+a0 (3)

[0051] Where t represents time, and (a0, θ0) is the starting point of each vector in the PR curves 406A-406D.

[0052] like Figure 5 As shown, curve 500 is obtained from curve 400, and curve 400 is obtained from curve 300. The health waveforms 506A-506D correspond to PR curves 306A-306D, respectively.

[0053] refer to Figure 2 The flowchart in the diagram, method 200 further includes, at block 210, comparing a pair of health waveforms to detect which health waveform is leading and which are following.

[0054] Figure 6 A flowchart is depicted for a method 600 for comparing two health waveforms according to one or more embodiments of the present invention. Figure 7A visual description of the comparison is depicted using reference curve 500. The health waveform pairs being compared are HW-A506A and HW-B506B.

[0055] At box 602, for the first healthy waveform (HW-A506A), identify the first peak (t2) and the first trough (t1). The trough in the healthy waveform is identified by determining the time point (t1 702) (X-axis), which has a value f(t1 = f). t1 (r t1 ,θ t1 The value at point () and at that time point, a continuously decreasing value f for at least a threshold number of consecutive previous points, and a continuously increasing value f for at least a threshold number of subsequent points. Figure 7 In the context, t1 702 is the minimum point or trough point on HW-A506A.

[0056] The peak point in the healthy waveform is identified by determining the time point (t2 704) (X-axis), which has a value f (t2 = f). t2 (r t2 ,θ t2 The value at point () and at that point in time, a continuously increasing value f is found at at least a threshold number of consecutive previous points, and a continuously decreasing value f is found at at least a threshold number of subsequent points. Figure 7 In the context, t2 704 is the maximum point or peak point on HW-A 506A.

[0057] The number of threshold points used to determine trough and peak points can be a predetermined value. Alternatively or additionally, the number of threshold points can be dynamically configured based on the number of points in the healthy waveform. In one or more embodiments of the invention, the number of threshold points for a first healthy waveform (e.g., HW-A 506A) may differ from the number of threshold points for a second healthy waveform (e.g., HW-B 506B).

[0058] Furthermore, at box 604, troughs and peaks are detected for the second health waveform being compared. Figure 7 The image shows the trough point t3 706 and the crest point t4 708 on HW-B 506B.

[0059] At box 606, the correlation between two healthy waveforms being compared is determined based on trough and peak points. For example, if the difference between t1 and t2 is within a predetermined threshold of the difference between t3 and t4, the two healthy waveforms can be considered to have a leader-follower relationship. In other embodiments, the correlation can be determined based on other techniques.

[0060] exist Figure 7 In the example scenario depicted, HW A 306A leads HW D 306D, where the two health waveforms have very similar timing peaks and troughs. Similarly, HW C 306C closely follows the health waveform of HW B 306B.

[0061] At box 608, the influence between applications corresponding to the two health waveforms being compared is determined based on the trough and peak points. For example, the influence is determined by calculating a pair of influence factors between the two corresponding applications using the Pearson correlation coefficient (PCC).

[0062]

[0063] in, It is the mean of f1. It is the mean of f2. It is the standard deviation of f1, and It is the standard deviation of f2, and in In this case, E is the expected value of the random variable. In the formula above, the numerator E is the covariance of f1 and f2.

[0064] For example, the influence factor between Application 106A and Application 106B can be calculated using trough points t1 702, t3 706 and peak points t2 704, t4 708. It should be noted that the influence factor is directional; that is, the influence factor of Application 106A on Application 106B is different from the influence factor of Application 106B on Application 106A.

[0065] Figure 8 Influence factors calculated between application pairs according to one or more embodiments of the present invention are depicted. It should be understood that although influence factors between applications 106A, 106B, and 106C are depicted, influence factors between other possible combinations of applications 106 can be calculated. It should also be understood that the depicted influence factors are example values, and in other embodiments, the influence factor values ​​may vary.

[0066] Return to reference Figure 6The flowchart, at box 610, uses the calculated influence factors to determine whether a correlation exists between applications. For example, if at least one of the influence factors between two applications is below (or above) a predetermined threshold, it can be assumed that there is no leader-follower relationship between the two applications corresponding to the health waveforms being compared. In this case, the method further includes determining at box 612 whether there are additional troughs and peaks in the two health waveforms being compared. If additional troughs and peaks exist, the above operation can be repeated for the additional troughs and peaks. If no additional troughs and peaks exist, the two applications are marked as having no influence relationship at box 614, and other applications are analyzed using method 200.

[0067] Alternatively, in box 610, if a relationship is identified, the influence factor between the two applications can be stored in box 616.

[0068] In this way, the impact of a first application (e.g., 106A) on other applications running concurrently in computing system 101 is determined. Furthermore, the impact of each of the other applications on the first application is also determined. The impact of an application on a second application is represented by an impact factor of the first application on the second application. The relationship between the first and second applications is represented by a pair of impact factors between the two applications.

[0069] Return to reference Figure 2 The flowchart in section 212 uses an influence factor to adjust the allocation of hardware resources 102 and software resources 104 from computing system 101. For example, from... Figure 7 As can be seen, application 106A uses the maximum resource at t2 704 and the minimum resource at t1 702, while application 106B uses the maximum resource in this order at t4 708, t2 704, t1 702, and t4 708. Therefore, at least some of the resources being used by application 106A can be released (deallocated) after t2 704 and allocated to application 106B as expected at t4 708.

[0070] Alternatively or additionally, at approximately time t4 708, both application 106B and application 106C have their respective peak points. Therefore, both applications are essentially using maximum resources simultaneously. Consequently, resource allocation can be adjusted such that at least some of the resources from applications 106A and 106C are released and allocated to applications 106B and 106D. Other adjustments to resource allocation can also be performed.

[0071] The resources allocated and released may include, but are not limited to, memory, cache, processor, software license (API), and any other hardware resources 102 and / or software resources 104. Such resource allocation adjustments can be performed dynamically (i.e., at runtime) to improve the performance of application 106 and, consequently, the performance of computing system 101.

[0072] In addition, in the event of system failures (such as resource congestion, deadlock, or any other type of failure), impact factors can be used to perform diagnostics. Figure 9 A flowchart illustrating a method 900 for diagnosing system faults according to one or more embodiments of the present invention is provided. Consider a computing system 101 experiencing a fault during the execution of application 106D. Figure 9 As shown, method 900 includes, in block 902, identifying a set of leading applications that have experienced a failure, in this case application 106D. This set of leading applications includes only applications that have an impact factor value of at least a predetermined threshold for application 106D. Therefore, application 106A is in the set of leading applications for application 106D only if its impact factor on application 106D is at least the predetermined threshold.

[0073] In this embodiment, at block 903, only applications from the leading group of applications store their execution logs for such analysis. Execution logs may include system dumps, execution logs, or any other type of execution log provided by application 106. Thus, by reducing the number of applications storing their execution logs, the amount of time required for execution logs and the amount of storage space can be reduced, and therefore improved.

[0074] Furthermore, in box 904, only the execution records of applications from the leading applications in this group are analyzed. Even if all applications 106 store their execution records, instead of analyzing the execution of all concurrently executing applications 106, only the execution records of applications from the leading applications in this group are analyzed. Therefore, the efficiency of diagnosing fault events can be improved. This analysis can be performed manually or automatically.

[0075] Embodiments of the present invention provide practical applications for improving the performance of computing systems. Embodiments of the present invention facilitate improved diagnosis of the root causes of performance problems in computing systems by reducing the amount of data that must be stored and / or analyzed for such diagnostics. Embodiments of the present invention also facilitate prediction of the performance of one or more applications running on the system and, accordingly, further adjustments to the allocation of computing resources (hardware and / or software). Furthermore, embodiments of the present invention facilitate more agile and efficient monitoring and prediction of system health compared to existing technologies. Based on one or more influencing factors, embodiments of the present invention can help identify which applications should be monitored, rather than monitoring all applications. Furthermore, system KPIs can be dynamically measured over time periods based on influencing factors, and only KPIs associated with leading applications can be monitored, thereby reducing the amount of data to be monitored and improving efficiency.

[0076] Turn now Figure 10 The computer system 1000 is generally illustrated according to embodiments. The computer system 1000 may be a computing system 101 as described in one or more embodiments of the present invention. Alternatively or additionally, the computer system 1000 may be a system analyzer 110 as described in one or more embodiments of the present invention. The computer system 1000 may be an electronic computer framework including and / or employing any number and combination of computing devices and networks utilizing different communication technologies, as described herein. The computer system 1000 may be easily upgraded, scalable, and modular, with the ability to be changed to different services or to reconfigure certain features independently of other features. The computer system 1000 may be, for example, a server, desktop computer, laptop computer, tablet computer, or smartphone. In some examples, the computer system 1000 may be a cloud computing node. The computer system 1000 may be described in the general context of computer system executable instructions (such as program modules) executed by the computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc., that perform a specific task or implement a specific abstract data type. The computer system 1000 may be practiced in a distributed cloud computing environment, where tasks are performed by remote processing devices linked via a communication network. In a distributed cloud computing environment, program modules can reside in local and remote computer system storage media, including memory storage devices.

[0077] like Figure 10As shown, the computer system 1000 has one or more central processing units (CPUs) 1001a, 1001b, 1001c, etc. (collectively or generally referred to as (one or more) processors 1001). The processor 1001 can be a single-core processor, a multi-core processor, a computing cluster, or any number of other configurations. The processor 1001 (also referred to as processing circuitry) is coupled to system memory 1003 and various other components via system bus 1002. System memory 1003 may include read-only memory (ROM) 1004 and random access memory (RAM) 1005. ROM 1004 is coupled to system bus 1002 and may include a basic input / output system (BIOS) that controls certain basic functions of the computer system 1000. RAM is a read-write memory coupled to system bus 1002 for use by the processor 1001. System memory 1003 provides temporary memory space for the operation of the instructions during operation. System memory 1003 may include random access memory (RAM), read-only memory, flash memory, or any other suitable memory system.

[0078] Computer system 1000 includes an input / output (I / O) adapter 1006 and a communication adapter 1007 coupled to a system bus 1002. I / O adapter 1006 may be a Small Computer System Interface (SCSI) adapter that communicates with a hard disk 1008 and / or any other similar component. I / O adapter 1006 and hard disk 1008 are collectively referred to herein as mass storage device 1010.

[0079] Software 1011 executing on computer system 1000 may be stored in mass storage device 1010. Mass storage device 1010 is an example of a tangible storage medium readable by processor 1001, wherein software 1011 is stored as instructions for execution by processor 1001 to operate computer system 1000, as described below with reference to the various figures. Examples of computer program products and the execution of such instructions are discussed in more detail herein. Communication adapter 1007 interconnects system bus 1002 with network 1012, which may be an external network enabling computer system 1000 to communicate with other such systems. In one embodiment, system memory 1003 and a portion of mass storage device 1010 jointly store an operating system, which may be any suitable operating system, such as z / OS or AIX from IBM, for coordination. Figure 10 The functions of the different components shown.

[0080] Additional input / output devices are shown connected to the system bus 1002 via display adapter 1015 and interface adapter 1016. In one embodiment, adapters 1006, 1007, 1015, and 1016 may be connected to one or more I / O buses connected to the system bus 1002 via an intermediate bus bridge (not shown). A display 1019 (e.g., a screen or display monitor) is connected to the system bus 1002 via display adapter 1015, which may include a graphics controller and a video controller for improving performance in graphics-intensive applications. Keyboard 1021, mouse 1022, speaker 1023, etc., may be interconnected to the system bus 1002 via interface adapter 1016, which may include, for example, a super I / O chip integrating multiple device adapters into a single integrated circuit. Suitable I / O buses for connecting peripheral devices such as hard disk controllers, network adapters, and graphics adapters typically include common protocols such as Peripheral Component Interconnect (PCI). Therefore, as Figure 10 The computer system 1000 configured therein includes processing capabilities in the form of a processor 1001, storage capabilities including a system memory 1003 and a mass storage device 1010, input devices such as a keyboard 1021 and a mouse 1022, and output capabilities including a speaker 1023 and a display 1019.

[0081] In some embodiments, the communication adapter 1007 may use any suitable interface or protocol (such as an Internet Small Computer System Interface) to send data. The network 1012 may be a cellular network, radio network, wide area network (WAN), local area network (LAN), or the Internet. External computing devices may be connected to the computer system 1000 via the network 1012. In some examples, the external computing device may be an external web server or a cloud computing node.

[0082] It should be understood that Figure 10 The block diagram is not intended to indicate that computer system 1000 will include Figure 10 All components shown. Conversely, computer system 1000 may include... Figure 10 Any suitable fewer or additional components not shown herein (e.g., additional memory components, embedded controllers, modules, additional network interfaces, etc.). Furthermore, the embodiments described herein with respect to computer system 1000 can be implemented with any suitable logic, wherein in different embodiments, the logic as mentioned herein may include any suitable hardware (e.g., processor, embedded controller, or application-specific integrated circuit, etc.), software (e.g., applications, etc.), firmware, or any suitable combination of hardware, software, and firmware.

[0083] It should be understood that while this disclosure includes a detailed description of cloud computing, the implementation of the teachings cited herein is not limited to cloud computing environments. Rather, embodiments of the invention can be implemented in conjunction with any other type of computing environment now known or developed hereafter.

[0084] Cloud computing is a service delivery model that enables convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services), which can be rapidly provisioned and released with minimal management effort or interaction with the service provider. This cloud model may include at least five features, at least three service models, and at least four deployment models.

[0085] The features are as follows:

[0086] On-demand self-service: Cloud consumers can unilaterally and automatically provide computing power, such as server time and network storage, as needed, without requiring human interaction with the service provider.

[0087] Extensive network access: the capabilities available on the network and accessed through standard mechanisms that facilitate the use of heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

[0088] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated based on demand. In a sense, it is location-independent because consumers typically do not control or know the exact location of the resources offered, but can specify the location at a higher level of abstraction (e.g., country, state, or data center).

[0089] Rapid Flexibility: In some cases, the ability to scale outwards and inwards quickly and flexibly can be provided. For consumers, the available capacity often appears unlimited and can be purchased in any quantity at any time.

[0090] Measurement services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a level of abstraction appropriate to the service type (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the service providers and consumers.

[0091] The service model is as follows:

[0092] Software as a Service (SaaS): This provides consumers with the ability to use a provider's applications running on cloud infrastructure. Applications can be accessed from various client devices through thin client interfaces such as web browsers (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including the network, servers, operating system, storage, or even individual application capabilities, with possible exceptions such as limited user-specific application configuration settings.

[0093] Platform as a Service (PaaS): This provides consumers with the ability to deploy consumer-created or acquired applications onto cloud infrastructure using programming languages ​​and tools supported by the vendor. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but they have control over the deployed applications and the configuration of any application hosting environments.

[0094] Infrastructure as a Service (IaaS): This provides consumers with the capability to deliver processing, storage, networking, and other basic computing resources that enable them to deploy and run arbitrary software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but they do have control over the operating system, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).

[0095] The deployment model is as follows:

[0096] Private cloud: Cloud infrastructure operated solely by an organization. It can be managed by the organization or a third party and can exist inside or outside a building.

[0097] Community cloud: A cloud infrastructure shared by several organizations and supporting a specific community with shared concerns (e.g., tasks, security requirements, policies, and compliance considerations). It can be managed by an organization or a third party and can reside inside or outside a building.

[0098] Public cloud: Cloud infrastructure available to the general public or large industrial groups and owned by organizations that sell cloud services.

[0099] Hybrid cloud: A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain a single entity but are bound together by standardized or proprietary technologies that enable data and applications to be ported together (e.g., cloud bursting for load balancing between clouds).

[0100] Cloud computing environments are service-oriented, focusing on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is the infrastructure of a network of interconnected nodes.

[0101] See now Figure 11The diagram illustrates an illustrative cloud computing environment 50. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 to which local computing devices used by cloud consumers can communicate. These local computing devices include, for example, personal digital assistants (PDAs) or cellular phones 54A, desktop computers 54B, laptop computers 54C, and / or automotive computer systems 54N. The nodes 10 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as private clouds, community clouds, public clouds, or hybrid clouds, or combinations thereof, as described above. This allows the cloud computing environment 50 to provide infrastructure, platforms, and / or software as services that cloud consumers do not need to maintain on their local computing devices. It should be understood that... Figure 11 The types of computing devices 54A-N shown are intended to be illustrative only, and computing node 10 and cloud computing environment 50 can communicate with any type of computerized device via any type of network and / or network-addressable connection (e.g., using a web browser).

[0102] See now Figure 12 This demonstrates a cloud computing environment of 50 ( Figure 11 This provides a set of functional abstraction layers. It should be understood beforehand that... Figure 12 The components, layers, and functions shown are intended to be illustrative only, and embodiments of the invention are not limited thereto. As described, the following layers and corresponding functions are provided:

[0103] The hardware and software layer 60 includes hardware and software components. Examples of hardware components include a host 61; a server 62 based on a RISC (Reduced Instruction Set Computer) architecture; a server 63; a blade server 64; a storage device 65; and a network and network components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0104] The virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual server 71; virtual storage 72; virtual network 73, including virtual private network; virtual application and operating system 74; and virtual client 75.

[0105] In one example, management layer 80 may provide the following functionalities: Resource Provisioning 81 provides dynamic procurement of computing resources and other resources used to perform tasks within the cloud computing environment. Metering and Pricing 82 provides cost tracking as resources are utilized within the cloud computing environment and bills or invoices for the consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for data and other resources. User Portal 83 provides access to the cloud computing environment for consumers and system administrators. Service Level Management 84 provides cloud resource allocation and management to ensure that required service levels are met. Service Level Agreement (SLA) Planning and Fulfillment 85 provides pre-scheduling and procurement of cloud resources based on anticipated future needs according to the SLA.

[0106] The workload layer 90 provides examples of functionalities that can be leveraged in a cloud computing environment. Examples of workloads and functionalities that can be provided from this layer include mapping and navigation 91; software development and lifecycle management 92; virtual classroom education delivery 93; data analysis and processing 94; transaction processing 95; and system performance analysis 96.

[0107] In this specification, the terms "computer program medium," "computer-usable medium," "computer program product," and "computer-readable medium" are used to refer generally to media such as memory. A computer program (also called computer control logic) is stored in memory. Such a computer program, when run, enables a computer system to perform the features of the invention as discussed herein. Specifically, the computer program, when run, enables a controller to perform the features and operations described herein. Therefore, such a computer program can control the controller of a computer system.

[0108] Computer-readable storage media can be tangible means for retaining and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital universal disk (DVD), memory sticks, floppy disks, mechanical encoding devices such as punch cards, or protrusions in recesses having instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses passing through fiber optic cables), or electrical signals transmitted through wires.

[0109] Many of the functional units described in this specification have been labeled as modules. Embodiments of the invention are applicable to a wide variety of module implementations. For example, a module can be implemented as hardware circuitry including custom VLSI circuitry or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. Modules can also be implemented in programmable hardware devices such as field-programmable gate arrays, programmable array logic, programmable logic devices, etc.

[0110] Modules can also be implemented in software intended for execution by different types of processors. The identified executable code module may, for example, comprise one or more physical or logical blocks of computer instructions, which may be organized, for example, as objects, procedures, or functions. However, the executable files of the identified modules do not need to be physically located together, but may include different instructions stored in different locations that, when logically joined together, comprise the module and achieve the module's stated purpose.

[0111] The following definitions and abbreviations will be used to interpret the claims and description. As used herein, the terms “comprising,” “including,” “having,” “containing,” or “comprising,” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a composition, mixture, process, method, article, or apparatus that comprises a list of elements is not necessarily limited to those elements, but may include other elements not expressly listed or inherent to such composition, mixture, process, method, article, or apparatus.

[0112] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the invention. As used herein, unless the context clearly indicates otherwise, the singular forms “a,” “an,” and “the” are intended to also include the plural forms. It should also be understood that when the terms “comprises” and / or “comprising” are used in this specification, they specify the presence of the stated features, integrals, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integrals, steps, operations, elements, components, and / or combinations thereof.

[0113] Furthermore, the term "exemplary" and its variations are used herein to mean "serving as an example, illustration, or illustration." Any embodiment or design described herein as "exemplary" is not necessarily to be construed as superior to or better than other embodiments or designs. The terms "at least one," "one or more," and their variations can include any integer greater than or equal to 1, i.e., one, two, three, four, etc. The term "multiple" and its variations can include any integer greater than or equal to 2, i.e., 2, 3, 4, 5, etc. The term "connection" and its variations can include indirect "connection" and direct "connection."

[0114] The terms “about,” “substantially,” “roughly,” and their variations are intended to include the degree of error associated with a measurement based on a specific quantity of equipment available at the time of application submission. For example, “about” could include a range of ±8%, 5%, or 2% of a given value.

[0115] The phrases “in signal communication,” “communicating with,” “communicatingly coupled to,” and their variations are used interchangeably herein and can refer to any coupling, connection, or interaction using electrical signals to exchange information or data using any system, hardware, software, protocol, or format, regardless of whether the exchange occurs wirelessly or via a wired connection.

[0116] The present invention will now be described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0117] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. Each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than indicated in the figures. For example, depending on the functions involved, two consecutively shown blocks may actually be executed substantially simultaneously, or these blocks may sometimes be executed in reverse order. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or action or executes a combination of dedicated hardware and computer instructions.

[0118] All means or steps in the following claims, plus corresponding structures, materials, actions, and equivalents of the functional elements, are intended to include any structure, material, or action for performing the function in conjunction with other claimed elements as specifically claimed. The description of the invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the forms disclosed. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the invention. Embodiments were chosen and described in order to best explain the principles and practical application of the invention, and to enable others skilled in the art to understand various embodiments of the invention with various modifications suitable for the intended particular purpose.

[0119] It will be understood that those skilled in the art can now and in the future make various modifications and enhancements that fall within the scope of the appended claims.

Claims

1. A computer-implemented method for determining the impact of an application on system performance, the method comprising: For multiple applications running on the computing system, the processor collects the corresponding instrumentation data during multiple time periods; For each of the plurality of applications, the processor determines the performance value and robustness value for each of the plurality of time periods based on the corresponding instrumentation data; The processor generates multiple health waveforms using performance and robustness values ​​for each time period, the multiple health waveforms including health waveforms from each of the multiple applications; The processor determines the influence factor of the first application on the second application, wherein the first application and the second application are from the plurality of applications; as well as The processor adjusts the allocation of computer resources based on the influence factor by releasing computer resources from the first application and allocating the computer resources to the second application.

2. The computer-implemented method according to claim 1, wherein, Generating a healthy waveform includes: The processor converts the performance and robustness values ​​for each time period into polar coordinates; The processor transforms the polar coordinates of each of the plurality of applications into the corresponding health waveform.

3. The computer-implemented method according to claim 1 or claim 2, wherein, The influencing factor is determined by calculating the Pearson correlation coefficient between the first health waveform of the first application and the second health waveform of the second application.

4. The computer-implemented method according to claim 3, wherein, Determining the influencing factors further includes identifying peak points on each of the first and second healthy waveforms.

5. The computer-implemented method according to claim 3, wherein, The impact factor was calculated as follows: Where E is the covariance of f1 and f2, f1 is the first healthy waveform, and f2 is the second healthy waveform. It is the mean of f1. It is the mean of f2. It is the standard deviation of f1, and It is the standard deviation of f2.

6. The computer-implemented method according to any of the preceding claims, further comprising: In response to a system failure detected during the execution of the second application, in response to the impact factor exceeding a threshold, the execution record associated with the first application is stored, and in response to the impact factor falling below the threshold, the execution record of the first application is not stored.

7. The computer-implemented method according to any one of claims 1 to 5, further comprising: In response to a system failure detected during the execution of the second application, based on the impact factor exceeding a threshold, only the execution records associated with the first application are analyzed from the execution records of the plurality of applications.

8. A computer system, comprising: Memory devices; as well as One or more processing units coupled to memory, the one or more processing units being configured to perform a method for determining the impact of an application on system performance, the method comprising: For multiple applications running on the computing system, the processor collects the corresponding instrumentation data during multiple time periods; For each of the multiple applications, the performance value and robustness value of each of the multiple time periods are determined based on the corresponding instrumentation data; Multiple health waveforms are generated using performance and robustness values ​​for each time period, the multiple health waveforms including health waveforms from each of the multiple applications; Determine the influence factor of the first application on the second application, wherein the first application and the second application are derived from the plurality of applications; and Based on the influence factor, the allocation of computer resources is adjusted by releasing computer resources from the first application and allocating the computer resources to the second application.

9. The computer system according to claim 8, wherein, Generating a healthy waveform includes: Convert the performance and robustness values ​​for each time period to polar coordinates; Transform the polar coordinates of each of the multiple applications into the corresponding health waveform.

10. The computer system according to claim 8 or claim 9, wherein, The influencing factor is determined by calculating the Pearson correlation coefficient between the first health waveform of the first application and the second health waveform of the second application.

11. The computer system according to claim 10, wherein, Determining the influencing factors includes identifying the peak points on each of the first and second healthy waveforms.

12. The computer system according to claim 10, wherein, The impact factor was calculated as follows: Where E is the covariance of f1 and f2, f1 is the first healthy waveform, and f2 is the second healthy waveform. It is the mean of f1. It is the mean of f2. It is the standard deviation of f1, and It is the standard deviation of f2.

13. The computer system according to any one of claims 8 to 12, wherein, The method further includes: storing execution records associated with the first application in response to detecting a system failure during the execution of the second application, storing execution records associated with the first application in response to the impact factor exceeding a threshold, and not storing the execution records of the first application in response to the impact factor falling below the threshold.

14. The computer system according to any one of claims 8 to 12, wherein, The method further includes: in response to detecting a system failure during the execution of the second application, based on the impact factor exceeding a threshold, analyzing only the execution records associated with the first application from the execution records of the plurality of applications.

15. A computer program product comprising one or more computer-executable instructions, which, when executed by one or more processing units, cause the one or more processing units to perform a method for determining the impact of an application on system performance, the method comprising: For multiple applications running on the computing system, the processor collects the corresponding instrumentation data during multiple time periods; For each of the multiple applications, the performance value and robustness value of each of the multiple time periods are determined based on the corresponding instrumentation data; Multiple health waveforms are generated using performance and robustness values ​​for each time period, the multiple health waveforms including health waveforms from each of the multiple applications; Determine the influence factor of the first application on the second application, wherein the first application and the second application are derived from the plurality of applications; as well as Based on the influence factor, the allocation of computer resources is adjusted by releasing computer resources from the first application and allocating the computer resources to the second application.

16. The computer program product according to claim 15, wherein, Generating a healthy waveform includes: Convert the performance and robustness values ​​for each time period to polar coordinates; Transform the polar coordinates of each of the multiple applications into the corresponding health waveform.

17. The computer program product according to claim 15 or claim 16, wherein, The influencing factor is determined by calculating the Pearson correlation coefficient between the first health waveform of the first application and the second health waveform of the second application.

18. The computer program product according to claim 17, wherein, Determining the influencing factors includes identifying the peak points on each of the first and second healthy waveforms.

19. The computer program product according to claim 17, wherein, The impact factor was calculated as follows: Where E is the covariance of f1 and f2, f1 is the first healthy waveform, and f2 is the second healthy waveform. It is the mean of f1. It is the mean of f2. It is the standard deviation of f1, and It is the standard deviation of f2.

20. The computer program product according to any one of claims 15 to 19, wherein, The method further includes: storing execution records associated with the first application in response to detecting a system failure during the execution of the second application, storing execution records associated with the first application in response to the impact factor exceeding a threshold, and not storing the execution records of the first application in response to the impact factor falling below the threshold.

21. The computer program product according to any one of claims 15 to 19, wherein, The method further includes: in response to detecting a system failure during the execution of the second application, analyzing only the execution records associated with the first application from the execution records of the plurality of applications based on the impact factor exceeding a threshold.

22. A computer-implemented method, comprising: For multiple applications running on the computing system, the processor collects the corresponding instrumentation data during multiple time periods; For each of the plurality of applications, the processor determines the performance value and robustness value for each of the plurality of time periods based on the corresponding instrumentation data; The processor generates multiple health waveforms using performance and robustness values ​​for each time period, the multiple health waveforms including health waveforms from each of the multiple applications; The processor determines the influence factor of the first application on the second application, wherein the first application and the second application are from the plurality of applications; as well as In response to a system failure detected during the execution of the second application, the processor analyzes only the execution records associated with the first application from the execution records of the plurality of applications based on the impact factor exceeding a threshold.

23. The computer-implemented method according to claim 22, wherein, The impact factor was calculated as follows: Where E is the covariance of f1 and f2, f1 is the first healthy waveform, and f2 is the second healthy waveform. It is the mean of f1. It is the mean of f2. It is the standard deviation of f1, and It is the standard deviation of f2.

24. A computer-implemented method, comprising: For multiple applications running on the computing system, the processor collects the corresponding instrumentation data during multiple time periods; For each of the plurality of applications, the processor determines the performance value and robustness value for each of the plurality of time periods based on the corresponding instrumentation data; The processor generates multiple health waveforms using performance and robustness values ​​for each time period, the multiple health waveforms including health waveforms from each of the multiple applications; The processor determines the influence factor of the first application on the second application, wherein the first application and the second application are from the plurality of applications; as well as In response to a system failure detected during the execution of the second application, the processor stores the execution record associated with the first application in response to the influence factor exceeding a threshold, and does not store the execution record of the first application in response to the influence factor falling below the threshold.

25. The computer-implemented method according to claim 24, wherein, The impact factor was calculated as follows: Where E is the covariance of f1 and f2, f1 is the first healthy waveform, and f2 is the second healthy waveform. It is the mean of f1. It is the mean of f2. It is the standard deviation of f1, and It is the standard deviation of f2.