Computer-Implemented Method, System, and Computer Program Product (Interpolating Performance Data)
By clustering performance data using machine learning and neural networks, the method adjusts interpolated values based on system states, addressing inaccuracies in existing interpolation techniques and enhancing the precision of performance predictions.
Patent Information
- Application Number
- JP2022146383
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-09-17
- Filing Date
- 2022-09-14
- Publication Date
- 2026-03-02
- Estimated Expiration
- 2042-09-14
AI Technical Summary
Existing interpolation techniques for computer system performance data, such as arithmetic averaging and linear regression, are inaccurate as they only consider sampled performance data and do not account for the varying state of the computing system, leading to inaccuracies in predicting performance metrics.
A method that incorporates the state of the computing system by clustering performance data using machine learning algorithms and neural networks to adjust interpolated values based on system data clusters, ensuring accuracy by considering various system states.
Improves the accuracy of performance data interpolation by accounting for the dynamic state of the computing system, providing more reliable predictions of performance metrics.
Smart Images

Figure 0007822285000002 
Figure 0007822285000003 
Figure 0007822285000004
Abstract
Description
[Technical Field]
[0001] The present invention relates generally to data management, and more particularly to an improved method for interpolating performance data in a computing system. [Background technology]
[0002] The performance of a computer system varies over the course of its execution. As a result, a system may perform well during some parts of its execution and poorly during others. To understand why a system behaves the way it does, performance analysts study its behavior over time. Most modern microprocessors support hardware performance monitors that can collect time-varying performance metrics while a computer system is running. However, although these processors can collect hundreds of performance metrics, they can only collect a limited number simultaneously and only during established sampling times. Due to these limitations in performance data collection, various interpolation techniques can be used to determine performance metrics for periods when no performance data was collected for a computer system. Modern approaches attempt to interpolate performance metrics using techniques such as arithmetic averaging or linear regression, but these techniques are often inaccurate, for example, because they only consider sampled performance data. Summary of the Invention [Problem to be solved by the invention]
[0003] A computer-implemented method, system and computer program product for interpolating performance data is provided. [Means for solving the problem]
[0004]
[0009] Embodiments of the present invention are directed to interpolating performance data in a computing system. A non-limiting exemplary computer-implemented method includes determining an event related to the computing system, the event occurring at a first time, obtaining system data related to the computing system, determining a system state of the computing system at the first time based on the system data, determining two or more system data clusters including clustered system data related to the system state of the computing system based on the system state, determining an interpolated data value for the first time based on the system data via an interpolation algorithm, and adjusting the interpolated data value based on a determination that the interpolated data value is outside the two or more system data clusters.
[0005]
[0006] Embodiments of the present invention are directed to interpolating performance data in a computing system. A non-limiting exemplary computer-implemented method includes determining system data associated with the computing system, the system data including a plurality of performance index values associated with the computing system acquired at a plurality of time slices, generating a performance robustness value for each of the plurality of performance index values using a neural network model, plotting the performance robustness value for each of the plurality of performance index values on an orthogonal plane, clustering the performance robustness values into at least one system state of the computing system, and generating a data cluster for each of the at least one system state, the data cluster being associated with the performance index of the computing system.
[0006] Other embodiments of the present invention implement features of the above-described methods in computer systems and computer program products.
[0007] Additional technical features and advantages are realized by the techniques of the present invention. Embodiments and aspects of the present invention are described in detail herein and are considered a part of the claimed subject matter. For a better understanding, please refer to the detailed description and drawings. [Brief explanation of the drawings]
[0008] [Figure 1] FIG. 1 illustrates an exemplary graph illustrating current interpolation techniques for estimating performance metrics in computing systems. [Figure 2] FIG. 1 illustrates a system for interpolating performance index values in a computing system in accordance with one or more embodiments of the present invention. [Figure 3] FIG. 2 illustrates exemplary performance metrics collected during various time slices in accordance with one or more embodiments of the present invention. [Figure 4] FIG. 1 illustrates exemplary clustering of performance data on an orthogonal plane in accordance with one or more embodiments of the present invention. [Figure 5] FIG. 10 illustrates exemplary clusters for each performance category, in accordance with one or more embodiments of the present invention. [Figure 6] FIG. 10 illustrates a plot of interpolated data values in a one-dimensional array with data clusters in accordance with one or more embodiments of the present invention. [Figure 7] FIG. 1 illustrates an example methodology for determining which data clusters to adjust an interpolated value for, according to one or more embodiments. [Figure 8] 1A-1C illustrate two scenarios for placement of interpolated values within a data cluster, in accordance with one or more embodiments of the present invention. [Figure 9] FIG. 9 illustrates a flow diagram of a method 900 for interpolating performance data in a computing system in accordance with one or more embodiments of the present invention. [Figure 10]FIG. 10 illustrates a flow diagram of a method 1000 for interpolating performance data in a computing system in accordance with one or more embodiments of the present invention. [Figure 11] FIG. 1 illustrates a cloud computing environment in accordance with one or more embodiments of the present invention. [Figure 12] FIG. 2 illustrates an abstraction model layer in accordance with one or more embodiments of the present invention. [Figure 13] FIG. 1 is a diagram that schematically illustrates a computer system, according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0009] The particular subject matter of the exclusive rights claimed herein is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other features and advantages of embodiments of the present invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings.
[0010] The diagrams depicted herein are exemplary. There may be many variations to the diagrams or the operations described therein without departing from the spirit of the invention. For example, operations may be performed in a different order, or operations may be added, deleted, or modified. Additionally, the term "coupled" and variations thereof describe having a communication path between two elements, and do not imply a direct connection with no intervening elements / connections between the elements. All of these variations are considered part of this specification.
[0011] One or more embodiments of the present invention provide systems and methods for improving the interpolation of computing system data by incorporating the state of the computing system as the interpolation is performed. Because the performance of a computer system varies over the course of its execution, it is necessary to collect performance data that tracks performance metrics needed to address problems. Performance data collection is typically performed with hardware registers that sample data according to a defined sampling rate. However, while these processors are capable of collecting hundreds of performance metrics, they can only collect a limited number simultaneously and only between established sampling rates. Due to these limitations in performance data collection, various interpolation techniques are utilized to determine performance metrics for periods when computing system performance data was not collected.
[0012] FIG. 1 shows exemplary graphs illustrating current interpolation techniques for estimating performance metrics in a computing system. A first graph 102 illustrates how performance metric data is sampled, plotting performance metric values on the Y-axis and time on the X-axis. As shown in graph 102, this performance metric sampling occurs every five minutes. Occasionally, an event occurs in the computing system for which there is no sampled performance metric value, and a computing engineer may wish to determine the performance metric value. In the illustrated example, an event occurs at 1:02 AM for which two data points were collected: 1:00 AM and 1:05 AM. A second graph 104 illustrates two interpolation techniques (arithmetic mean and linear regression) used to interpolate the performance metric value at 1:02 AM. As shown in graph 104, the two interpolation techniques produce inaccurate results because the two results are much higher than the actual performance data results.
[0013] As mentioned above, current interpolation techniques include arithmetic averaging, linear regression, or a combination of both. Arithmetic averaging uses two performance index values for processing. Linear regression uses four or more performance indexes for processing. However, these methods only use performance index data that belong to the same category (same performance index). For example, when predicting network input / output (IO) bandwidth, only past IO bandwidth data is used for interpolation. When implemented in real-world scenarios, network IO bandwidth can be affected by various factors, including, but not limited to, CPU utilization, work priority, disk IO status, number of TCP connections, or other factors, or a combination thereof. Analyzing data from these other categories can improve the interpolation of performance data.
[0014] Turning now to an overview of aspects of the present invention, one or more embodiments of the present invention address the aforementioned shortcomings of the prior art by providing an interpolation methodology that considers the state of a computing system when performing interpolation. The state of a computing system may include, but is not limited to, balanced resources, memory exhaustion, high CPU, memory, and IO utilization, network IO contention, storage IO contention, etc. Using historical performance indicator data and clustering techniques, various data clusters can be determined for system states in a computing system. Thus, when interpolating performance indicator values, the state of the computing system can be determined and these data clusters can be used to confirm and / or adjust the interpolated performance indicator values to improve accuracy.
[0015] FIG. 2 illustrates a system for interpolating performance index values in a computing system in accordance with one or more embodiments of the present invention. The system 200 includes a controller 202 configured to receive sampled performance data 204 for the computing system. The system 200 also includes a clustering engine 206 that can be utilized by the controller 202 to process the sampled performance data 204, enabling the controller 202 to output an enhanced interpolated value 212 for the performance data 204. In one or more embodiments of the present invention, the sampled performance data 204 can be received by the controller 202. The controller 202 can utilize an interpolation algorithm to generate an interpolated value for a particular time. The interpolation algorithm can be, for example, an arithmetic mean or a linear regression algorithm, or both. The particular time for the interpolated value can be determined based on an event occurring in the computing system for which performance data is being collected. The event can be, for example, a performance issue that occurred at a certain time. Addressing the performance issue requires a snapshot of the performance index at that time, and for this snapshot, the performance index value at the time of the event must be interpolated. As described above, rather than using only an interpolation algorithm, the controller 202 analyzes the state of the computing system to further adjust / enhance the interpolated value. By establishing the state of the computing system, the controller 202 can examine past performance data values for a particular performance indicator when determining whether to adjust the interpolated value. The past performance data values can be arranged into data clusters using the clustering engine 206. These data clusters allow for comparison indicators to determine whether the interpolated performance value is accurate or needs to be adjusted. For example, if the interpolated performance value is within the data cluster for the system state, the interpolation is accurate and would not need to be adjusted. However, if the interpolated performance value is outside the data cluster, the interpolated performance value would need to be adjusted.In this case, the value can be moved into the data cluster and returned by the controller as the enhanced interpolated value 212 .
[0016] In one or more embodiments of the present invention, the clustering engine 206 utilizes one or more machine learning algorithms and / or neural networks to cluster performance data. Performance data for all available performance categories (metrics) of the target system can be collected and utilized to train a machine learning model to quantify the system state of the computing system. FIG. 3 illustrates exemplary performance metrics collected during various time slices in accordance with one or more embodiments of the present invention. In the illustrated example, the collected performance metrics include, but are not limited to, CPU utilization, memory utilization, system disk read / write bytes per second, network bandwidth (intranet in), and network bandwidth (intranet out). These performance metric data can be mapped to specific system states and recorded for use in the interpolation methods described herein. A data mass cluster can be generated for each performance category for each determined system state.
[0017] In one or more embodiments of the present invention, performance data for all time slices can be clustered into performance states on a Cartesian coordinate system. FIG. 4 illustrates exemplary clustering of performance data on a Cartesian plane in accordance with one or more embodiments of the present invention. Cartesian plane 400 can have, for example, a Y-axis representing the performance of a computing system and an X-axis representing the robustness of the computing system. These plotted performance index values can be weighted to create a performance robustness value using a neural network model. The performance and robustness of the input performance values can be calculated using a radial basis function (RBF) model. An RBF network is a feedforward network that includes an input layer, a hidden layer, and an output layer. The RBF network generates values within a range of values that indicate how low or high the impact each system's data points have on both performance and robustness. For example, a data point for one system may have a low impact on performance but a high impact on robustness. Meanwhile, a data point for another system may have a high impact on performance but a low impact on robustness. Performance and robustness data are plotted on these Cartesian coordinates and clustered into performance (system) states (S1-S6) using a mean-shift algorithm. Some example performance states include: S1: High CPU, memory, and IO utilization; S2: Balanced resources; S3: Memory exhaustion; S3: CPU contention; S5: Network IO contention; and S6: Storage IO contention. These descriptors are exemplary and are not intended to limit the types of performance states. Also, states may vary on different computing systems.
[0018] In one or more embodiments of the present invention, a performance data mass cluster is created for each performance category for each performance state. Once the mapping for raw performance data and performance robustness data in an orthogonal plane is recorded, historical performance data can be obtained for a particular system state (e.g., S1). For S1, a collection of CPU utilization is obtained and placed into a one-dimensional array. A mean shift algorithm is used to cluster the original data values. This technique is a non-parametric clustering technique that does not require prior knowledge of the number of clusters. Figure 5 illustrates an exemplary cluster for each performance category in one or more embodiments of the present invention. For each system state S k For each category, the performance values are processed to create mass data clusters as shown in Figure 5. For each cluster, a centroid value is calculated and used to determine whether and how to adjust the interpolated performance data values.
[0019] In one or more embodiments of the present invention, the controller 202 first interpolates a performance index value using available data for the computing system at a first time slice. The system state for the computing system is determined, and data clusters associated with the system state are obtained as described above. At this point, a decision is made as to whether to adjust the interpolated performance value based on these data clusters for the system state at the first time. FIG. 6 illustrates a plot of interpolated data values in a one-dimensional array with data clusters, in accordance with one or more embodiments of the present invention. The one-dimensional array shows two cases. Case 602 illustrates an example where the interpolated value is within a data cluster (cluster 3) and does not need to be adjusted. This indicates that the interpolation returned an accurate value based on the system state and the historical data used to create these clusters. Case 604 illustrates an example of an interpolated value that needs to be adjusted because the interpolated value is outside of a data cluster in the array. If it is determined that the interpolated value is outside of a data cluster for the system state, the interpolated value is adjusted based on the existing data clusters. FIG. 7 illustrates an example methodology for determining which data clusters to adjust an interpolated value, in accordance with one or more embodiments. The array includes cluster 2 and cluster 3, where the interpolated value falls between these two data clusters. An exemplary calculation includes a gravity calculation that includes equation [1]. TIFF0007822285000001.tif9134
[0020] In formula [1], F Gravity_cluster is the gravity from the cluster, N clusteris the number of points in the cluster, and Dis_cluster is the distance between the cluster centroid and the interpolant. In FIG. 7, the initial interpolant is located between cluster 2 and cluster 3, and a gravity value is calculated, for example, using equation [1]. As a result of the calculation, the gravity of cluster 3 is greater than the gravity of cluster 2, representing the interpolant being pulled into cluster 3 as shown. This represents a determination of which cluster to pull the interpolant into, sometimes referred to as the "closest" cluster, based on a gravity calculation using the centroid of the data cluster. Once the "closest" cluster is determined, the next decision would be where within the "closest" cluster to place the interpolant. FIG. 8 illustrates two scenarios for the placement of an interpolant within a data cluster in one or more embodiments of the present invention. In scenario 802, the midpoint between the interpolant and the cluster centroid is calculated. Since the midpoint is within the data cluster (cluster 3), the interpolant is adjusted / corrected to be the value of the midpoint and returned as the enhanced interpolant. In scenario 804, the midpoint is still outside the data cluster. In this scenario, the interpolated value is adjusted / modified to be the boundary value of the cluster, and the boundary value is returned as the enhanced interpolated value.
[0021] In one or more embodiments of the present invention, controller 202 and any of the components on system 200 may be implemented on processing system 1300 shown in FIG. 13. Additionally, cloud computing system 50 may be in wired or wireless electronic communication with one or all of the elements of system 200. Cloud 50 may supplement, support, or replace some or all of the functionality of the elements of system 200. Additionally, some or all of the functionality of the elements of system 200 may be implemented as nodes 10 (shown in FIGS. 11 and 12) of cloud 50. Cloud computing node 10 is merely one example of a suitable cloud computing node and is not intended to suggest any limitation regarding the scope of use or functionality of the embodiments of the present invention described herein.
[0022] FIG. 9 illustrates a flow diagram of a method 900 for interpolating performance data in a computing system in accordance with one or more embodiments of the present invention. At least a portion of method 900 can be performed by, for example, one or more processors 1301 from FIG. 13. Method 900 includes determining an event associated with the computing system, the event occurring at a first time, as shown in block 902. At block 904, method 900 includes obtaining system data associated with the computing system. Determining the system data includes, at block 906, determining a system state of the computing system at the first time. At block 908, method 900 also includes determining, based on the system state, two or more system data clusters including clustered system data associated with the system state of the computing system. Method 900 also includes determining, via an interpolation algorithm, an interpolated data value for the first time based on the system data, as shown in block 910. And, at block 912, method 900 includes adjusting the interpolated value based on a determination that the interpolated data value is outside of the two or more system data clusters.
[0023] 9 are exemplary, and it should be understood that other steps may be added, and existing steps may be deleted, modified, or rearranged, without departing from the scope and spirit of the present disclosure.
[0024] FIG. 10 illustrates a flow diagram of a method 1000 for interpolating performance data in a computing system in accordance with one or more embodiments of the present invention. At least a portion of method 1000 can be performed by, for example, one or more processors 1301 from FIG. 13. As shown in block 1002, method 1000 includes determining system data associated with the computing system, the system data including a plurality of performance index values associated with the computing system acquired at a plurality of time slices. At block 1004, method 1000 includes generating a performance robustness value for each of the plurality of performance index values using a neural network model. Also, at block 1006, method 1000 includes plotting the performance robustness value for each of the plurality of performance index values on an orthogonal plane. At block 1008, method 1000 includes clustering the performance robustness values to at least one system state of the computing system. And, at block 1010, method 1000 includes generating a data cluster for each of the at least one system state, the data cluster associated with a performance index of the computing system.
[0025] 10 are exemplary, and it should be understood that other steps may be added, and existing steps may be deleted, modified, or rearranged, without departing from the scope and spirit of the present disclosure.
[0026] Although this disclosure includes detailed descriptions of cloud computing, it should be understood that implementation of the teachings described herein is not limited to cloud computing environments. Rather, embodiments of the present invention may be practiced in conjunction with any other type of computing environment now known or later developed.
[0027] Cloud computing is a service delivery model for enabling 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) that can be rapidly provisioned and released with minimal management effort or interaction with the service provider. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
[0028] The characteristics are as follows:
[0029] On-Demand Self-Service: Cloud consumers can unilaterally provision computing capacity, such as server time or network storage, automatically as needed, without the need for human interaction with the service provider.
[0030] Broad network access: Computing power is available over the network and can be accessed through standard mechanisms, facilitating use by heterogeneous thin or thick client platforms (e.g., cell phones, laptops, PDAs).
[0031] Resource Pooling: Computing resources from a provider are pooled and offered to multiple consumers using a multi-tenant model. Various physical and virtual resources are dynamically allocated and reallocated based on demand. Consumers generally have no control or knowledge of the exact location of the resources they are provided with, resulting in a sense of location independence. However, consumers may be able to determine location at a higher level of abstraction (e.g., country, state, data center).
[0032] Rapid Elasticity: Computing capacity can be provisioned quickly and elastically, sometimes automatically, to instantly scale out and quickly release to instantly scale in. To the consumer, the computing power available for provisioning often appears unlimited, and can be purchased at any time and in any quantity.
[0033] Metered Services: Cloud systems leverage measurement capabilities at a level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, active user accounts) to automatically control and optimize resource usage. Resource usage can be monitored, controlled, and reported to provide transparency to both providers and consumers of utilized services.
[0034] The service model is as follows:
[0035] Software as a Service (SaaS): The functionality offered to the consumer is the availability of a provider's applications running on a cloud infrastructure that can be accessed from a variety of client devices through a thin client interface such as a web browser (e.g., webmail). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application functionality, except for limited user-specific application configuration settings.
[0036] Platform as a Service (PaaS): The capability offered to consumers is to deploy applications they create or acquire using programming languages and tools supported by the provider onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does have control over the deployed applications and, in some cases, the configuration of their hosting environment.
[0037] Infrastructure as a Service (IaaS): The functionality offered to consumers is the provisioning of processors, storage, networking, and other basic computing resources on which they can deploy and run any software, including operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but has control over the operating system, storage, and deployed applications, and in some cases partial control over some network components (e.g., host firewalls).
[0038] The deployment model is as follows:
[0039] Private Cloud: This cloud infrastructure is dedicated to a specific organization and can be managed by that organization or a third party, and can exist on-premise or off-premise.
[0040] Community Cloud: This cloud infrastructure is shared by multiple organizations to support a specific community with common concerns (e.g., mission, security requirements, policies, and compliance). This cloud infrastructure can be managed by those organizations or a third party and can exist on-premises or off-premises.
[0041] Public cloud: This cloud infrastructure is available to the general public or large industry organizations and is owned by an organization that sells cloud services.
[0042] Hybrid cloud: This cloud infrastructure combines two or more cloud models (private, community, or public), each of which retains its inherent nuances but is bound by standards or specific technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).
[0043] A cloud computing environment is a service-oriented environment that emphasizes statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing is an infrastructure that includes a network of interconnected nodes.
[0044] FIG. 11 illustrates an exemplary cloud computing environment 50. As illustrated, the cloud computing environment 50 includes one or more cloud computing nodes 10, with which local computing devices used by cloud consumers (e.g., PDAs or cell phones 54A, desktop computers 54B, laptop computers 54C, or automobile computer systems 54N, or combinations thereof) can communicate. The nodes 10 can communicate with each other. The nodes 10 can be physically or virtually grouped (not shown) in one or more networks, such as the private, community, public, or hybrid clouds described above, or combinations thereof. This enables the cloud computing environment 50 to provide infrastructure, platform, or software as a service, or combinations thereof, for which cloud consumers are not required to maintain resources on their local computing devices. It should be understood that the types of computing devices 54A-N illustrated in FIG. 11 are merely exemplary, and that the computing nodes 10 and the cloud computing environment 50 can communicate with any type of electronic device via any type of network or network-addressable connection (e.g., using a web browser), or both.
[0045] A set of functional abstraction layers provided by the cloud computing environment 50 (FIG. 11) is shown in FIG. 12. It should be understood in advance that the components, layers, and functions shown in FIG. 12 are merely exemplary, and embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0046] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframe 61, reduced instruction set computer (RISC) architecture-based server 62, server 63, blade server 64, storage device 65, and network and network components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0047] The virtualization layer 70 provides an abstraction layer from which the following virtual entities can be provided, for example: virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75.
[0048] By way of example, the management layer 80 may provide the following functionality: Resource provisioning 81 enables dynamic procurement of computing and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 82 enables cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of these resources. By way of example, these resources may include application software licenses. Security enables identification and verification of cloud consumers and tasks, as well as protection for data and other resources. User portal 83 provides consumers and system administrators with access to the cloud computing environment. Service level management 84 enables allocation and management of cloud computing resources so that requested service levels are met. Service level agreement (SLA) planning and fulfillment 85 enables advance arrangement and procurement of anticipated future cloud computing resources required in accordance with SLAs.
[0049] The workload layer 90 provides examples of functionality available to a cloud computing environment. Examples of workloads and functionality that can be provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instruction delivery 93, data analytics processing 94, transaction processing 95, and computing system performance data interpolation 96.
[0050] Referring now to FIG. 13 , a computer system 1300 is generally illustrated in accordance with an embodiment. The computer system 1300 can be an electronic, computer framework that includes and / or utilizes any number and combination of computing devices and networks utilizing various communication technologies, as described herein. The computer system 1300 may be easily scalable, extensible, and modular, with the ability to adapt to different services or independently reconfigure certain functions. The computer system 1300 may be, for example, a server, a desktop computer, a laptop computer, a tablet computer, or a smartphone. In some examples, the computer system 1300 may be a cloud computing node. The computer system 1300 may be described in the general context of computer system-executable instructions, such as program modules, being executed by the computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc., that perform particular tasks or implement particular abstract data types. The computer system 1300 may also be implemented in a distributed cloud computing environment where tasks are performed by remote processing devices linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.
[0051] As shown in FIG. 13, computer system 1300 includes one or more central processing units (CPUs) 1301a, 1301b, 1301c, etc. (collectively or generally referred to as processors 1301). Processor 1301 may be a single-core processor, a multi-core processor, a computing cluster, or any number of other configurations. Processor 1301, also referred to as a processing circuit, is coupled to system memory 1303 and various other components via system bus 1302. System memory 1303 may include read-only memory (ROM) 1304 and random access memory (RAM) 1305. ROM 1304 is coupled to system bus 1302 and may include a basic input / output system (BIOS) that controls certain basic functions of computer system 1300. RAM is read-write memory coupled to system bus 1302 for use by processor 1301. System memory 1303 provides temporary memory space for the execution of instructions during operation. The system memory 1303 may include random access memory (RAM), read-only memory, flash memory, or any other suitable memory system.
[0052] Computer system 1300 comprises an input / output (I / O) adapter 1306 and a communications adapter 1307 coupled to a system bus 1302. I / O adapter 1306 may be a small computer system interface (SCSI) adapter that communicates with a hard disk 1308 or any other similar component or combination thereof. I / O adapter 1306 and hard disk 1308 are collectively referred to herein as mass storage 1310.
[0053] Software 1311 for execution on computer system 1300 may be stored on mass storage 1310. Mass storage 1310 is an example of a tangible storage medium readable by processor 1301, with software 1311 stored as instructions for execution by processor 1301 to operate computer system 1300, such as those described below with respect to various figures. Examples of computer program products and the execution of such instructions are described in more detail herein. Communications adapter 1307 interconnects system bus 1302 with network 1312, which may be an external network, enabling computer system 1300 to communicate with other such systems. In one embodiment, a portion of system memory 1303 and mass storage 1310 collectively store an operating system, such as any suitable operating system, such as the z / OS or AIX operating systems from IBM Corporation, for coordinating the functions of the various components shown in FIG. 13 .
[0054] Additional input / output devices are shown connected to the system bus 1302 via a display adapter 1315 and an interface adapter 1316. In one embodiment, adapters 1306, 1307, 1315, and 1316 may be connected to one or more I / O buses that are connected to the system bus 1302 via an intermediate bus bridge (not shown). A display 1319 (e.g., a screen or display monitor) is connected to the system bus 1302 by the display adapter 1315, which may include a graphics controller and a video controller to improve performance of graphics-intensive applications. A keyboard 1321, a mouse 1322, speakers 1323, and the like may be interconnected to the system bus 1302 via the interface adapter 1316, which may include, for example, a super I / O chip that integrates 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 a common protocol such as Peripheral Component Interconnect (PCI). Thus, as configured in FIG. 13, computer system 1300 includes processing capabilities in the form of processor 1301, storage capabilities including system memory 1303 and mass storage 1310, input means such as keyboard 1321 and mouse 1322, and output capabilities including speakers 1323 and display 1319.
[0055] In some embodiments, communications adapter 1307 can transmit data using any suitable interface or protocol, such as an Internet Small Computer System Interface, among others. Network 1312 may be a cellular network, a wireless network, a wide area network (WAN), a local area network (LAN), or the Internet, among others. External computing devices may connect to computer system 1300 via network 1312. In some examples, the external computing device may be an external web server or a cloud computing node.
[0056] It should be understood that the block diagram of Figure 13 is not intended to indicate that computer system 1300 includes all of the components shown in Figure 13. Rather, computer system 1300 may include any suitable fewer or additional components (e.g., additional memory components, embedded controllers, modules, additional network interfaces, etc.) not shown in Figure 13. Furthermore, the embodiments described herein with respect to computer system 1300 may be implemented with any suitable logic, and logic referred to herein, in various embodiments, can include any suitable hardware (e.g., a processor, embedded controller, or application-specific integrated circuit, etc.), software (e.g., an application, etc.), firmware, or any suitable combination of hardware, software, and firmware.
[0057] Various embodiments of the present invention are described herein with reference to the associated drawings. Alternate embodiments of the present invention may be devised without departing from the scope of the present invention. In the following description and in the drawings, various connections and relationships (e.g., above, below, adjacent, etc.) between elements are shown. These connections and / or relationships may be direct or indirect unless otherwise specified, and the present invention is not intended to be limited in this respect. Thus, coupling of entities may refer to either direct or indirect coupling, and relationships between entities may be direct or indirect. Furthermore, various tasks and process steps described herein may be combined into a more comprehensive procedure or process having additional steps or functions not specifically described herein.
[0058] One or more of the methods described herein can be implemented with any one or combination of the following technologies known in the art: discreet logic circuits having logic gates for implementing logical functions on data signals, application specific integrated circuits (ASICs) having appropriate combinations of logic gates, programmable gate arrays (PGAs), field programmable gate arrays (FPGAs), etc.
[0059] For the sake of brevity, conventional techniques related to making and using aspects of the present invention may or may not be described in detail herein. In particular, various aspects of computing systems and specific computer programs for implementing various technical features described herein are well known. Thus, for the sake of brevity, many conventional implementation details are only briefly mentioned herein or are omitted entirely without providing details of well-known systems and / or processes.
[0060] In some embodiments, various functions or operations may be performed at a given location, or in conjunction with the operation of one or more devices or systems, or both. In some embodiments, a portion of a given function or operation may be performed at a first device or location, and the remainder of the function or operation may be performed at one or more additional devices or locations.
[0061] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. As used herein, the term "comprises" and / or "comprising" specifies the presence of stated features, integers, steps, operations, elements, or components, or combinations thereof, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or groups or combinations thereof.
[0062] Corresponding structure, materials, acts, and equivalents of all means or step-plus-functions in the following claims are intended to include any structure, material, or acts for performing the function in combination with the elements of other claims as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the invention. The embodiments were chosen and described to best explain the principles and practical applications of the invention and to enable those skilled in the art to understand the invention in various embodiments with various modifications as suited to the particular uses contemplated.
[0063] The diagrams depicted herein are illustrative. There may be many variations to the diagrams or steps (or operations) described herein without departing from the spirit of the disclosure. For example, operations may be performed in a different order, or operations may be added, deleted, or modified. Also, the term "coupled" describes having a signal path between two elements, but does not imply a direct connection with no intervening elements / connections between the elements. All of these variations are considered part of the disclosure.
[0064] The following definitions and abbreviations will be used in interpreting the claims and the specification. As used herein, the terms "comprises," "comprising," "includes," "including," "has," "having," "contains," "containing," or any other variation thereof, are intended to be exclusive inclusions. For example, a composition, mixture, process, method, article, or device consisting of a list of elements is not necessarily limited to only those elements, but may include other elements not expressly listed in such composition, mixture, process, method, article, or device.
[0065] Additionally, the term "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments or designs. The terms "at least one" and "one or more" are understood to include one or more, i.e., any integer number such as 1, 2, 3, 4, etc. The term "plurality" is understood to include two or more, i.e., any integer number such as 2, 3, 4, 5, etc. The term "connected" can include both indirect and direct "connections."
[0066] The terms "about," "substantially," and "approximately," as well as variations thereof, are intended to include the degree of error associated with measurement of a particular quantity based on equipment available at the time of filing. For example, "about" can include a range of ±8%, 5%, or 2% of a particular value.
[0067] The present invention may be a system, method, or computer program product, or combination thereof, integrated at any possible level of technical detail. The computer program product may include a computer-readable storage medium having stored thereon computer-readable program instructions for causing a processor to carry out aspects of the present invention.
[0068] A computer-readable storage medium may be a tangible device capable of retaining and storing instructions for use by an instruction execution device. The computer-readable storage medium may be, by way of example, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or a suitable combination thereof. More specific examples of computer-readable storage media include portable computer diskettes, hard disks, RAM, ROM, EPROM (or flash memory), SRAM, CD-ROMs, DVDs, memory sticks, floppy disks, mechanically encoded devices having instructions recorded on punch cards or ridge-in-groove structures, or the like, and suitable combinations thereof. Computer-readable storage devices, as used herein, should not be construed as ephemeral signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted over wires.
[0069] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computer / processing device. Alternatively, they can be downloaded to an external computer or external storage device via a network (e.g., the Internet, a LAN, a WAN, or a wireless network, or a combination thereof). The network can include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface within each computer / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions to a computer-readable storage medium in the respective computer / processing device for storage.
[0070] The computer-readable program instructions for carrying out the operations of the present invention can be either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk and C++, and procedural programming languages such as the "C" programming language and similar programming languages. The computer-readable program instructions can execute entirely on the user's computer as a stand-alone software package, partially on the user's computer, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a LAN or WAN, or may be connected to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry, including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), programmable logic arrays (PLAs), can execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to customize the electronic circuitry for carrying out aspects of the present invention.
[0071] Embodiments of the present invention are described herein with reference to flowchart and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present invention. Each block of the flowchart and / or block diagrams, and combinations of blocks in the flowchart and / or block diagrams, can be implemented by computer-readable program instructions.
[0072] The computer-readable program instructions may be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine, whereby the instructions, executed by the processor of such computer or other programmable data processing apparatus, create means for performing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. The computer-readable program instructions may also be stored on a computer-readable storage medium that can instruct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner. The computer-readable storage medium having the instructions stored thereon thereby constitutes an article of manufacture including instructions for performing aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0073] Computer-readable program instructions may also be loaded into a computer, other programmable device, or other device and a series of operational steps executed on the computer, other programmable device, or other device to create a computer-implemented process, whereby the instructions executing on the computer, other programmable device, or other device perform the functions / operations identified in one or more blocks in the flowcharts and / or block diagrams.
[0074] The flowcharts and block diagrams in the figures of this disclosure illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for performing specific logical functions. In some implementations, the functions shown in the blocks may be executed in a different order than shown in the figures. For example, two blocks shown in succession may actually be executed substantially concurrently or in reverse order, depending on the functionality involved. Note that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a dedicated hardware-based system that performs specific functions or operations or executes a combination of dedicated hardware and computer instructions.
[0075] The description of various embodiments of the present invention is presented for purposes of illustration, but is not intended to be exhaustive or limited to the disclosed embodiments. It will be apparent to those skilled in the art that many modifications and variations are possible without departing from the scope and spirit of the described embodiments. The terms used herein have been selected to explain the principles of the embodiments, practical applications or technical improvements to technology found in the market, or to enable those skilled in the art to understand the embodiments herein. The present disclosure also discloses the following inventions. <Appendix 1> determining an event associated with a computing system, the event occurring at a first time; obtaining system data associated with the computing system; determining a system state of the computing system at the first time based on the system data; determining, based on the system state, two or more system data clusters including clustered system data related to the system state of the computing system; determining an interpolated data value for the first time based on the system data via an interpolation algorithm; adjusting the interpolated data value based on the interpolated data value being determined to be outside the two or more system data clusters. <Appendix 2> 10. The computer-implemented method of claim 1, further comprising: returning the interpolated data value based on determining that the interpolated data value is within at least one system data cluster of the two or more system data clusters. <Appendix 3> adjusting the interpolated data values determining a closest system data cluster among the two or more system data clusters; determining a data value midway between the interpolated data value and the centroid of the nearest system data cluster, the data value being within the nearest system data cluster; generating an adjusted interpolated data value comprising the data value midway between the interpolated data value and the centroid of the nearest data cluster. <Appendix 4> adjusting the interpolated data values determining a closest system data cluster among the two or more system data clusters; determining a data value midway between the interpolated data value and the centroid of the nearest system data cluster, the data value being outside the nearest system data cluster; and generating an adjusted interpolated data value that includes a cluster boundary value of the nearest data cluster, the cluster boundary value including a data value within the nearest data cluster that is closest to the interpolated data value. <Appendix 5> determining an interpolated data value for the first time based on the system data via an interpolation algorithm; determining a time segment including a period of time that includes the first time; determining a system data value within the time segment; and performing interpolation to determine the interpolated data value using the system data value within the time segment via the interpolation algorithm. <Appendix 6> Determining the two or more system data clusters based on the system state includes: analyzing historical system data including historical system data values and system state data; using a clustering algorithm to arrange the historical system data values into two or more system data clusters; and assigning a system state to each of the two or more system data clusters. <Appendix 7> 10. The computer-implemented method of claim 1, wherein the interpolation algorithm comprises a linear regression algorithm. <Appendix 8> a memory having computer readable instructions; one or more processors for executing the computer-readable instructions, the computer-readable instructions controlling the one or more processors to: determining an event associated with a computing system, the event occurring at a first time; obtaining system data associated with the computing system; determining a system state of the computing system at the first time based on the system data; determining, based on the system state, two or more system data clusters including clustered system data related to the system state of the computing system; determining an interpolated data value for the first time based on the system data via an interpolation algorithm; adjusting the interpolated data value based on the interpolated data value being determined to be outside the two or more system data clusters. <Appendix 9> The operation is 9. The system of claim 8, further comprising: returning the interpolated data value based on the interpolated data value being determined to be within at least one system data cluster of the two or more system data clusters. <Appendix 10> adjusting the interpolated data values determining a closest system data cluster among the two or more system data clusters; determining a data value midway between the interpolated data value and the centroid of the nearest system data cluster, the data value being within the nearest system data cluster; generating an adjusted interpolated data value comprising the data value midway between the interpolated data value and the centroid of the nearest data cluster. <Appendix 11> adjusting the interpolated data values determining a closest system data cluster among the two or more system data clusters; determining a data value midway between the interpolated data value and the centroid of the nearest system data cluster, the data value being outside the nearest system data cluster; and generating an adjusted interpolated system data value including a cluster boundary value of the nearest data cluster, the cluster boundary value including a data value within the nearest data cluster that is closest to the interpolated data value. <Appendix 12> determining an interpolated data value for the first time based on the system data via an interpolation algorithm; determining a time segment including a period of time that includes the first time; determining a system data value within the time segment; and performing interpolation to determine the interpolated data value using the system data value in the time segment via the interpolation algorithm. <Appendix 13> Determining the two or more system data clusters based on the system state includes: analyzing historical system data including historical system data values and system state data; using a clustering algorithm to arrange the historical system data values into two or more system data clusters; and assigning a system state to each of the two or more system data clusters. <Appendix 14> 9. The system of claim 8, wherein the interpolation algorithm comprises a linear regression algorithm. <Appendix 15> 1. A computer program product including a computer-readable storage medium having program instructions embodied thereon, the program instructions being executable by one or more processors and causing the one or more processors to: determining an event associated with a computing system, the event occurring at a first time; obtaining system data associated with the computing system; determining a system state of the computing system at the first time based on the system data; determining, based on the system state, two or more system data clusters including clustered system data related to the system state of the computing system; determining an interpolated data value for the first time based on the system data via an interpolation algorithm; adjusting the interpolated data value based on the interpolated data value being determined to be outside the two or more system data clusters. <Appendix 16> The operation is 16. The computer program product of claim 15, further comprising: returning the interpolated data value based on determining that the interpolated data value is within at least one system data cluster of the two or more system data clusters. <Appendix 17> adjusting the interpolated data values determining a closest system data cluster among the two or more system data clusters; determining a data value midway between the interpolated data value and the centroid of the nearest system data cluster, the data value being within the nearest system data cluster; generating an adjusted interpolated system data value comprising the data value intermediate the interpolated data value and the centroid of the nearest data cluster. <Appendix 18> adjusting the interpolated data values determining a closest system data cluster among the two or more system data clusters; determining a data value midway between the interpolated data value and the centroid of the nearest system data cluster, the data value being outside the nearest system data cluster; and generating an adjusted interpolated system data value comprising a cluster boundary value of the nearest data cluster, the cluster boundary value comprising a data value within the nearest data cluster that is closest to the interpolated data value. <Appendix 19> determining an interpolated data value for the first time based on the system data via an interpolation algorithm; determining a time segment including a period of time that includes the first time; determining a system data value within a time segment; and performing, via the interpolation algorithm, interpolation to determine the interpolated data value using the system data value within the time segment. <Appendix 20> Determining the two or more system data clusters based on the system state includes: analyzing historical system data including historical system data values and system state data; using a clustering algorithm to arrange the historical system data values into two or more system data clusters; and assigning a system state to each of the two or more system data clusters. <Appendix 21> determining system data associated with a computing system, the system data including a plurality of performance index values associated with the computing system obtained at a plurality of time slices; generating a performance robustness value for each of the plurality of performance index values using a neural network model; plotting the performance robustness value on an orthogonal plane for each of the plurality of performance index values; clustering the performance robustness values into at least one system state of the computing system; generating a data cluster for each of the at least one system state, the data cluster associated with a performance metric of the computing system. <Appendix 22> receiving a set of performance metrics for the computing system; interpolating a first performance index value from the set of performance index values; determining a system state of the computing system at the first time; 22. The computer-implemented method of claim 21, further comprising: adjusting the first performance index value based on a determination that the first performance index value is outside a first data cluster associated with the system state. <Appendix 23> 23. The computer-implemented method of claim 22, further comprising: returning the first performance index value based on a determination that the first performance index value is within a first data cluster associated with the system state. <Appendix 24> a memory having computer readable instructions; one or more processors for executing the computer-readable instructions, the computer-readable instructions controlling the one or more processors to: determining system data associated with a computing system, the system data including a plurality of performance index values associated with the computing system obtained at a plurality of time slices; generating a performance robustness value for each of the plurality of performance index values using a neural network model; plotting the performance robustness value on an orthogonal plane for each of the plurality of performance index values; clustering the performance robustness values into at least one system state of the computing system; generating a data cluster for each of the at least one system state, the data cluster being associated with a performance metric of the computing system. <Appendix 25> The operation is receiving a set of performance metrics for the computing system; interpolating a first performance index value from the set of performance index values; determining a system state of the computing system at the first time; adjusting the first performance index value based on a determination that the first performance index value is outside a first data cluster associated with the system state.
Claims
1. A computer, determining an event associated with a computing system, the event occurring at a first time; obtaining system data associated with the computing system; determining a system state of the computing system at the first time based on the system data; determining, based on the system state, two or more system data clusters comprising clustered system data related to the system state of the computing system; determining an interpolated data value for the first time based on the system data via an interpolation algorithm; adjusting the interpolated data value based on the interpolated data value being determined to be outside of the two or more system data clusters.
2. The computer:
2. The method of claim 1, further comprising: returning the interpolated data value based on the interpolated data value being determined to be within at least one system data cluster of the two or more system data clusters.
3. adjusting the interpolated data values determining a closest system data cluster among the two or more system data clusters; determining a data value midway between the interpolated data value and the centroid of the nearest system data cluster, the data value being within the nearest system data cluster; generating an adjusted interpolated data value comprising the data value midway between the interpolated data value and the centroid of the nearest system data cluster.
4. adjusting the interpolated data values determining a closest system data cluster among the two or more system data clusters; determining a data value midway between the interpolated data value and the centroid of the nearest system data cluster, the data value being outside the nearest system data cluster; and generating an adjusted interpolated data value that includes a cluster boundary value of the nearest system data cluster, the cluster boundary value including a data value within the nearest system data cluster that is closest to the interpolated data value.
5. determining an interpolated data value for the first time based on the system data via an interpolation algorithm; determining a time segment including a period of time that includes the first time; determining a system data value within the time segment; and performing, via the interpolation algorithm, an interpolation to determine the interpolated data value using the system data value within the time segment.
6. Determining the two or more system data clusters based on the system state includes: Arranging performance indicator data associated with the computing system acquired at a plurality of time slices into two or more system data clusters using a clustering algorithm; and assigning a system state to each of the two or more system data clusters.
7. The method of claim 1 , wherein the interpolation algorithm comprises a linear regression algorithm.
8. a memory having computer readable instructions; one or more processors for executing the computer-readable instructions, the computer-readable instructions controlling the one or more processors to: determining an event associated with a computing system, the event occurring at a first time; obtaining system data associated with the computing system; determining a system state of the computing system at the first time based on the system data; determining, based on the system state, two or more system data clusters comprising clustered system data related to the system state of the computing system; determining an interpolated data value for the first time based on the system data via an interpolation algorithm; adjusting the interpolated data value based on the interpolated data value being determined to be outside the two or more system data clusters.
9. The operation is 9. The system of claim 8, further comprising: returning the interpolated data value based on the interpolated data value being determined to be within at least one system data cluster of the two or more system data clusters.
10. adjusting the interpolated data values determining a closest system data cluster among the two or more system data clusters; determining a data value midway between the interpolated data value and the centroid of the nearest system data cluster, the data value being within the nearest system data cluster; generating an adjusted interpolated data value comprising the data value intermediate the interpolated data value and the centroid of the nearest system data cluster.
11. adjusting the interpolated data values determining a closest system data cluster among the two or more system data clusters; determining a data value midway between the interpolated data value and the centroid of the nearest system data cluster, the data value being outside the nearest system data cluster; and generating an adjusted interpolated system data value comprising a cluster boundary value of the nearest system data cluster, the cluster boundary value comprising a data value within the nearest system data cluster that is closest to the interpolated data value.
12. determining an interpolated data value for the first time based on the system data via an interpolation algorithm; determining a time segment including a period of time that includes the first time; determining a system data value within the time segment; and performing, via the interpolation algorithm, an interpolation to determine the interpolated data value using the system data value within the time segment.
13. Determining the two or more system data clusters based on the system state includes: Arranging performance indicator data associated with the computing system acquired at a plurality of time slices into two or more system data clusters using a clustering algorithm; and assigning a system state to each of the two or more system data clusters.
14. The system of claim 8 , wherein the interpolation algorithm comprises a linear regression algorithm.
15. A computer comprising: determining an event associated with a computing system, the event occurring at a first time; obtaining system data associated with the computing system; determining a system state of the computing system at the first time based on the system data; determining, based on the system state, two or more system data clusters comprising clustered system data related to the system state of the computing system; determining an interpolated data value for the first time based on the system data via an interpolation algorithm; adjusting the interpolated data value based on the interpolated data value being determined to be outside the two or more system data clusters.
16. The operation is 16. The computer program product of claim 15, further comprising: returning the interpolated data value based on the interpolated data value being determined to be within at least one system data cluster of the two or more system data clusters.
17. adjusting the interpolated data values determining a closest system data cluster among the two or more system data clusters; determining a data value midway between the interpolated data value and the centroid of the nearest system data cluster, the data value being within the nearest system data cluster; and generating an adjusted interpolated system data value comprising the data value intermediate the interpolated data value and the centroid of the nearest system data cluster.
18. adjusting the interpolated data values determining a closest system data cluster among the two or more system data clusters; determining a data value midway between the interpolated data value and the centroid of the nearest system data cluster, the data value being outside the nearest system data cluster; and generating an adjusted interpolated system data value that includes a cluster boundary value of the nearest system data cluster, the cluster boundary value including a data value within the nearest system data cluster that is closest to the interpolated data value.
19. determining an interpolated data value for the first time based on the system data via an interpolation algorithm; determining a time segment including a period of time that includes the first time; determining a system data value within a time segment; and performing, via the interpolation algorithm, an interpolation to determine the interpolated data value using the system data value within the time segment.
20. Determining the two or more system data clusters based on the system state includes: Arranging performance indicator data associated with the computing system acquired at a plurality of time slices into two or more system data clusters using a clustering algorithm; and assigning a system state to each of the two or more system data clusters.
Citation Information
Patent Citations
Power consumption measuring apparatus, power consumption measuring method, and program
JP2013065143A
Information processing device, information processing program, and information processing method
JP2019200596A
Information processing method, server device, and information processing program
JP2020190831A
Data interpolation method, and data interpolation program
JP2021114064A
Power consumption measuring apparatus, power consumption measuring method, and memory medium
US20130073880A1