Method, computer program, and system for estimating computing resource consumption
By collecting hypervisor and local scan data to generate custom consumption metrics, the method addresses inaccuracies in estimating cloud resource usage, ensuring fair pricing and reducing administrative overhead.
Patent Information
- Application Number
- JP2021199306
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-12-21
- Filing Date
- 2021-12-08
- Publication Date
- 2026-01-14
- Estimated Expiration
- 2041-12-08
Smart Images

Figure 0007798439000001 
Figure 0007798439000002 
Figure 0007798439000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates generally to the field of computing resource consumption, and more particularly to estimating computing resource consumption. [Background technology]
[0002] Cloud computing environments typically employ virtual machines and hypervisors. By monitoring computing resource consumption, cloud service providers can measure efficiency and customers can determine whether to scale their cloud operations up or down. Summary of the Invention [Problem to be solved by the invention]
[0003] The present invention aims to provide an automated assessment of virtual machine computing capabilities. [Means for solving the problem]
[0004] Embodiments of the present disclosure include methods, computer programs, and systems for estimating computing resource consumption.
[0005] Deploying a set of virtual machines on a hypervisor; performing one or more local scans on each virtual machine to generate a set of computing resource consumption data; generating a stability factor in response to receiving the set of hypervisor resource consumption data; determining that a default consumption metric exceeds a threshold based on the set of resource consumption data, the set of hypervisor resource consumption data, and the stability factor; generating a custom consumption metric in response to the exceeding determination based on at least the set of computing resource consumption data; and notifying a user of the custom consumption metric.
[0006] The above summary is not intended to describe each exemplary embodiment or every implementation of the present disclosure.
[0007] The drawings included in this disclosure are incorporated in and constitute a part of this specification. These drawings illustrate embodiments of the present disclosure and, together with the description, serve to explain the principles of the present disclosure. The drawings are merely illustrative of representative embodiments and are not intended to limit the disclosure. [Brief explanation of the drawings]
[0008] [Figure 1] FIG. 1 illustrates an exemplary network environment for estimating computing resource consumption, according to an embodiment of the present disclosure. [Figure 2] FIG. 1 illustrates an exemplary method for estimating computing resource consumption, according to an embodiment of the present disclosure. [Figure 3] FIG. 1 illustrates a cloud computing environment according to one embodiment of the present disclosure. [Figure 4] FIG. 1 illustrates an abstraction model layer according to one embodiment of the present disclosure. [Figure 5] FIG. 1 illustrates a high-level block diagram of an exemplary computer system that can be used to implement embodiments of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0009] While the embodiments described herein are susceptible to various modifications and alternative forms, details of each are shown by way of example in the drawings and will be described in detail below. It is to be understood, however, that the particular embodiments described are not to be taken in a limiting sense. On the contrary, it is intended to cover all modifications, equivalents, and alternatives that are within the spirit and scope of the disclosure.
[0010] Aspects of the present disclosure relate generally to the field of computing resource consumption, and more particularly to estimating computing resource consumption. The present disclosure is not necessarily limited to such applications, and various aspects of the present disclosure are contemplated by the discussion of various examples using this background.
[0011] Cloud computing environments typically employ virtual machines and hypervisors. By monitoring computing resource consumption, cloud service providers can measure efficiency and customers can determine whether to scale their cloud operations up or down.
[0012] When licensing cloud computing resources to users, companies typically use application programming interfaces (APIs) to collect data, typically from the hypervisor on which the virtual machines are deployed. This collected data may be aggregated with data collected from scans of individual virtual machines. This aggregated data may include metrics related to, for example, processor, graphics processing unit (GPU), memory cache usage, network bandwidth, power consumption, number of operations performed, amount of time an application runs, priority of specific applications and / or virtual machines, encryption use, type of encryption, and storage space availability and consumption.
[0013] However, when a virtual machine is first deployed, little, if any, such data exists, and the data that does exist may be irregular and not representative of normal operating standards. For example, computing resource consumption may increase significantly while an application is installed and tested. Or, network bandwidth may be significantly reduced before the application is generally available. In such scenarios, it can be difficult to determine the appropriate licensing fees for use of a particular hypervisor or virtual machine and associated cloud computing resources. In some cases, default calculations based on expected / estimated usage are used to determine consumption, and therefore licensing fees. This may result in consumers being overcharged or undercharged.
[0014] Achieving a more accurate estimate of consumed computing resources typically requires coordination among teams of experts, including 1) a team responsible for virtual machine deployment, 2) a team managing license metrics tools (e.g., IBM® LICENSE METRIC TOOL), and 3) a team managing the virtual hosting environment (e.g., VMware). While the first team is directed by the consuming entity, the second and third teams may or may not be part of the same entity. Depending on the situation, coordinating three teams across three separate entities can consume significant work hours.
[0015] Embodiments of the present disclosure contemplate collecting data from the hypervisor (e.g., hypervisor resource consumption data) immediately after a client / consumer connection becomes operational, combining it with information obtained from local scans of virtual machines (e.g., computing resource consumption data), and adding a stability factor (e.g., a metric that reflects both historical licensed capacity consumption data and real-time consumption data from across the infrastructure). Default consumption values (e.g., default consumption metrics) that may exceed consumer expectations may be corrected as needed to more accurately reflect overall licensed resource consumption as reported to license administrators, consumers, and the like.
[0016] In some embodiments, data collected by local scans of virtual machines may be collected by a monitor and / or stored in a database. In embodiments, this local scan data may be matched against data retrieved from the hypervisor. However, in some embodiments, this match may be inaccurate or unavailable, in which case default values may be used in the consumption report and the data may be flagged. Once enough data has been collected to perform the match, the consumption calculation may be repeated with more accurate information and the consumption report may be updated.
[0017] As an example, assume that a local scan of a set of virtual machines was performed on the first day, but data from the hypervisor was not acquired or was unavailable. In such a situation, a default consumption baseline may be implemented to estimate overall consumption. Delays in acquiring hypervisor resource consumption data may include firewall misconfigurations, data processing schedules, errors, manual operation idiosyncrasies, etc.
[0018] Further assume that hypervisor resource consumption data is obtained on day 3. At this point, the overall consumption estimate may be revised. A local scan of the virtual machine may be used to determine if there have been any changes or unexpected differences in the local environment.
[0019] In embodiments, hypervisor resource consumption data may be used in conjunction with local scans to determine an environment stability factor, at which point it may be determined whether the actual overall consumption matches expectations / estimates, as well as whether the environment has been relatively consistent in stability (e.g., nominal overall consumption (but with periods of high traffic / high consumption) may be treated differently than nominal overall consumption with consistent traffic / consumption).
[0020] In some embodiments, if the overall consumption and / or stability factor indicates that the default consumption metric is no longer acceptable, a custom consumption metric may be generated based on the actual overall consumption and stability factor. In such embodiments, the administrator and / or user may be notified of the correction and a justification for why the custom consumption metric is being used.
[0021] Embodiments of the present disclosure may provide a way for both cloud software vendors and consumers to protect against unexpected / unwanted peaks and troughs at the beginning of a license monitoring cycle. In this way, poor cost / benefit scenarios for both vendors and consumers may be avoided, which may reduce support tickets and negative consumer service reports.
[0022] 1, which illustrates an exemplary network environment 100 for estimating computing resource consumption, according to an embodiment of the present disclosure. The exemplary network environment 100 may include, for example, a licensee device 140, a cloud 110, a hypervisor 120, and a license meter 130. In some embodiments, certain functionality of the licensee device 140, the hypervisor 120, and the license meter 130 may be implemented in different locations than illustrated.
[0023] According to an embodiment, licensee device 140, cloud 110, hypervisor 120, and licensing meter 130 may be configured as a computer system (e.g., may include the same or similar components as computer system 501). Licensee device 140, cloud 110, hypervisor 120, and licensing meter 130 may be configured to communicate with each other through an internal or external network interface (not shown). The network interface may be, for example, a modem, a wireless network adapter, an Ethernet adapter, etc. Licensee device 140, cloud 110, hypervisor 120, and licensing meter 130 may further include a display or monitor (not shown). Licensee device 140, cloud 110, hypervisor 120, and licensing meter 130 may also include optional input devices (e.g., keyboards, mice, scanners, etc.) and / or any commercially available or custom software (e.g., image processing software, object identification software, etc.). In some embodiments, licensee device 140, cloud 110, hypervisor 120, and licensing meter 130 may include additional servers, desktops, laptops, Internet of Things (IoT) devices, or handheld devices.
[0024] Licensee device 140, cloud 110, hypervisor 120, and license meter 130 may further include additional storage (e.g., storage interface 514). This storage may include, for example, a virtualized disk drive, a physical hard disk drive, a solid-state storage drive, or any other suitable storage medium. In some embodiments, workload data and metadata may be stored temporarily or permanently.
[0025] The licensee device 140, the cloud 110, the hypervisor 120, and the licensing meter 130 may be remote from one another or may communicate via a network (not shown). In an embodiment, the cloud 110 may be a central hub from which the licensee device 140, the hypervisor 120, and the licensing meter 130 can establish a communication connection, such as in a client-server networking model. In other embodiments, the licensing meter 130 may act as such a hub for the hypervisor 120 and the licensee device 140. In some embodiments, the licensee device 140, the cloud 110, the hypervisor 120, and the licensing meter 130 may be in any other suitable network relationship (e.g., peer-to-peer or using another network topology).
[0026] In embodiments, connections between components of the network environment 100 may be implemented using any number of suitable communication media. For example, a wide area network (WAN), a local area network (LAN), the Internet, or an intranet. In particular embodiments, the licensee device 140, the cloud 110, the hypervisor 120, and the licensing meter 130 may be local to one another and communicate via any suitable local communication media. For example, the licensee device 140, the cloud 110, the hypervisor 120, and the licensing meter 130 may communicate using a local area network (LAN), one or more hardwired connections, wireless links or routers, or an intranet. In some embodiments, the licensee device 140, the cloud 110, the hypervisor 120, the licensing meter 130, and any other devices may be communicatively coupled using one or more networks, one or more local connections, or a combination of both.
[0027] In some embodiments, the network environment 100 may be implemented within or as part of a cloud computing environment, as shown. Consistent with various embodiments, a cloud computing environment may include a network-based distributed data processing system that provides one or more cloud computing services. Additionally, a cloud computing environment may include many computers (e.g., hundreds or thousands or more computers) disposed in one or more data centers and configured to share resources over a network. Additional details regarding cloud computing are provided with respect to FIGS. 3 and 4.
[0028] According to an embodiment, licensee device 140 may include, for example, an enterprise server, a client device, or any other suitable device from which a consumer or other user may interact with licensed instrument 130 and from which such consumer / user may deploy virtual machines, such as virtual machines 125A-125C.
[0029] Cloud 110 may include, for example, hypervisor 120 and license meter 130. Hypervisor 120 may include a layer of hardware resources / components upon which virtual machines (e.g., virtual machines 125A-125C) may be established. Depending on the embodiment, hypervisor 120 may be a Type 1 hypervisor or a Type 2 hypervisor.
[0030] In some embodiments, hypervisor 120 may include virtual machines 125A-125C and virtual machine monitor 127. Virtual machines 125A-125C may be deployed, for example, by the owner of licensee device 140. Virtual machines 125A-125C may be custom designed to serve a specific purpose or may be generalized to serve multiple purposes. In some embodiments, virtual machines 125A-125C may represent any number of virtual machines.
[0031] According to embodiments, virtual machine monitor 127 may generate computing resource consumption data by performing local scans of virtual machines 125A-125C as described herein. In some embodiments, virtual machine monitor 127 may further monitor hypervisor 120 to generate or contribute to hypervisor resource consumption data.
[0032] The local scan of virtual machines 125A-125C may include determining the quantity of processor resources used, memory resources used, network traffic bandwidth used, in-memory computations performed, any hardware devices underlying the hypervisor that may be dedicated to a particular virtual machine, etc.
[0033] License meter 130 may include hypervisor monitor 135 and stability factor generator 137. As described herein, hypervisor monitor 135 may read / receive hypervisor resource consumption data from hypervisor 120.
[0034] Stability factor generator 137 may generate a stability factor based on historical and real-time hypervisor resource consumption data. In some embodiments, stability factor generator 137 may further consider a portion of computing resource consumption data from one or more of virtual machines 125A-125C. In some embodiments, stability factor generator 137 may further consider the general stability of cloud 110 outside of hypervisor 120 and license meter 130, both historical and real-time.
[0035] In some embodiments, license meter 130 may employ default consumption metrics when determining overall computing resource consumption, or may generate custom consumption metrics as needed, as discussed herein. In some embodiments, license meter 130 may be employed as a gateway between hypervisor 120 and licensee device 140. In other embodiments, license meter 130 may be integrated directly into licensee device 140, for example, as a condition of use of hypervisor 120 and / or establishment of virtual machines 125A-125C.
[0036] It should be noted that Figure 1 is intended to depict representative major components of exemplary network environment 100. However, in some embodiments, the individual components may be more complex or less complex than depicted in Figure 1. Components other than or in addition to those depicted in Figure 1 may be present, and the number, type, and configuration of such components may vary.
[0037] 2, which illustrates an example method 200 for estimating computing resource consumption according to an embodiment of the present disclosure. The example method 200 may begin at 205, where a set of virtual machines is deployed on a hypervisor (specifically, hypervisor 120) as discussed herein.
[0038] At 210, computing resource consumption data is generated. For example, virtual machine monitor 127 may perform a local scan of deployed virtual machines (e.g., virtual machines 125A-125C) to determine the amount and type of computing resources consumed.
[0039] At 215, a stability factor is generated. The stability factor may take into account the computing resource consumption data generated at 210 as well as hypervisor resource consumption data 240. The generation of the stability factor may weight components of the computing resource consumption data, the hypervisor resource consumption data, or both. For example, in embodiments capable of in-memory computing, a memory consumption criterion may be weighted because in-memory computing may reduce traditional processor consumption. In some embodiments, the stability factor may further reflect the amount of upscaling and downscaling performed for a particular virtual machine or group of virtual machines.
[0040] As described herein, the hypervisor resource consumption data and the computing resource consumption data may include both historical data and real-time data. In some embodiments, the real-time data may be weighted relative to the historical data. According to embodiments, the historical computing resource consumption data and the historical hypervisor resource consumption data may each reflect an average value. The average value may be obtained over the lifetime of the respective virtual machine and / or hypervisor, or may be obtained over a specific time frame (e.g., a period during which the historical average appears similar to the current real-time value).
[0041] At 220, it is determined whether the default consumption metric exceeds a threshold. In some embodiments, the default consumption metric may represent overall consumption expected from historical computing resource consumption data and historical hypervisor resource consumption data. According to embodiments, the threshold may include, for example, a ratio of a stability factor to the default consumption metric.
[0042] If it is determined at 220 that the default consumption metric does not exceed the threshold, for example, it may be assumed that the default consumption metric reflects overall consumption, and the user / administrator may be notified of the default consumption metric at 235. This notification may include, for example, a license consumption report.
[0043] However, if at 220 it is determined that the default consumption metric exceeds a threshold, then at 225 a custom consumption metric may be generated as described herein. In some embodiments, the custom consumption metric 225 may give greater weight to real-time consumption data collected from, for example, virtual machines and / or hypervisors. In some embodiments, the custom consumption metric may reflect an average overall resource consumption over a historical set of stabilized computing resource consumption data (e.g., the consumption metric reflects similar virtual machines for which the custom consumption metric was generated).
[0044] In step 230, the user and / or administrator may be notified of the custom consumption criteria, which in some embodiments may include, for example, a license consumption report, and may or may not address the justification for using the default and custom consumption criteria.
[0045] Although this disclosure includes detailed descriptions of cloud computing, it is to be understood that implementation of the teachings recited herein is not limited to a cloud computing environment. Rather, some embodiments of the present invention may be implemented in conjunction with any other type of computing environment now known or later developed.
[0046] 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) that can be rapidly provisioned and released with minimal administrative effort or interaction with a service provider. This cloud model can include at least five characteristics, at least three service models, and at least four deployment models.
[0047] The characteristics are as follows:
[0048] On-demand self-service: Cloud customers can unilaterally provision computing capacity, such as server time and network storage, automatically as needed, without the need for human interaction with the service provider.
[0049] Pervasive Network Access: Features are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous client platforms, both thin and thick (e.g., cell phones, laptops, and PDAs).
[0050] Resource Pooling: Using a multi-tenant model, a provider's computing resources are pooled to serve multiple consumers, dynamically allocating and reallocating various physical and virtual resources as demand dictates. Consumers generally have no control over or knowledge of the exact location of the resources provided, although a degree of location independence exists in that a higher level of abstraction may specify a location (e.g., country, state, or data center).
[0051] Rapid Elasticity: Capabilities can be rapidly and elastically provisioned, sometimes automatically, to rapidly scale out and rapidly released to rapidly scale in. To the consumer, the capabilities available for provisioning often appear unlimited, and can be purchased in any quantity at any time.
[0052] Service Metering: Cloud systems automatically control and optimize resource usage by utilizing metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Monitoring, controlling, and reporting resource usage can provide transparency to both providers and consumers of the services used.
[0053] The service model is as follows:
[0054] Software as a Service (SaaS): The functionality offered to the consumer is the use of the provider's applications running on a cloud infrastructure. These applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or individual application functions, except possibly for limited user-specific application configuration settings.
[0055] Platform as a Service (PaaS): The functionality offered to the consumer is the deployment of consumer-created or acquired applications, written using programming languages and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, such as the network, servers, operating systems, or storage. However, the consumer controls the deployed applications and, in some cases, the configuration of the application hosting environment.
[0056] Infrastructure as a Service (IaaS): The functionality provided to a customer provisions processing, storage, network, and other basic computing resources onto which the customer can deploy and run any software, which may include operating systems and applications. The customer does not manage or control the underlying cloud infrastructure, except for control of the operating systems, storage, deployed applications, and, in some cases, limited control over selected network components (e.g., host firewalls).
[0057] The deployment model is as follows:
[0058] Private Cloud: This cloud infrastructure is operated exclusively for an organization and is managed by that organization or a third party, and can exist on-premise or off-premise.
[0059] Community Cloud: This cloud infrastructure is shared by multiple organizations to support a specific community of shared concerns (e.g., mission, security requirements, policies, and compliance issues), and can exist on- or off-premises, managed by the organizations or a third party.
[0060] 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.
[0061] Hybrid cloud: This cloud infrastructure is a composite of two or more clouds (private, community, or public), each of which remains a unique entity but is joined by standard or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).
[0062] Cloud computing environments are service-oriented, focusing on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.
[0063] Referring now to FIG. 3, an exemplary cloud computing environment 50 is shown. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 that enable communication among local computing devices used by cloud users, such as, for example, a personal digital assistant (PDA) or mobile phone 54A, a desktop computer 54B, a laptop computer 54C, or an automotive computer system 54N, or a combination thereof. The nodes 10 may communicate with each other. They may be physically or virtually grouped in one or more networks (not shown), such as the private, community, public, or hybrid clouds described above, or a combination thereof. This enables the cloud computing environment 50 to provide infrastructure, platform, and / or software as a service without requiring the cloud user to maintain resources on their local computing device. It will be understood that the types of computing devices 54A-54N shown in FIG. 3 are intended to be illustrative only, and that computing node 10 and cloud computing environment 50 can communicate with any type of computer device over any type of network and / or network-addressable connection (e.g., by using a web browser).
[0064] Referring now to Figure 4, this figure illustrates a set of functional abstraction layers provided by cloud computing environment 50 (Figure 3). It should be understood that the components, layers, and functions illustrated in Figure 4 are intended to be illustrative only, and embodiments of the present invention are not limited thereto. As illustrated, the following layers and corresponding functions are provided:
[0065] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframe 61, RISC (reduced instruction set computer) architecture-based servers 62, servers 63, blade servers 64, storage devices 65, and network / networking components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0066] The virtualization layer 70 provides an abstraction layer, and examples of possible virtual entities include virtual servers 71, virtual storage 72, virtual networks 73 (including virtual private networks), virtual applications / operating systems 74, and virtual clients 75.
[0067] In one example, the management layer 80 may provide the following functions: Resource provisioning 81 provides dynamic procurement of resources, such as computing resources used to execute tasks in the cloud computing environment; Metering and pricing 82 provides cost tracking as resources are utilized in the cloud computing environment and billing or invoicing for the consumption of these resources; in one example, these resources may include application software licenses; Security provides identity verification of cloud users and tasks, as well as protection of data and other resources; User portal 83 provides users and system administrators with access to the cloud computing environment; Service level management 84 provides allocation and management of cloud computing resources to meet required service levels; and Service level agreement (SLA) planning and execution 85 provides advance provisioning and procurement of cloud computing resources to anticipate future requirements according to SLAs.
[0068] The Workload Layer 90 provides examples of functions that can utilize a cloud computing environment. Examples of workloads and functions that can be provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom / educational delivery 93, data analytics processing 94, transaction processing 95, and computing resource consumption estimation 96.
[0069] 5, which illustrates a high-level block diagram of an exemplary computer system 501 that may be configured to perform various aspects of the present disclosure, such as method 200 of FIG. 2. The exemplary computer system 501 may be used to implement one or more of the methods or modules described herein, and any associated functions or operations, according to embodiments of the present disclosure (e.g., using one or more processor circuits or computer processors of a computer). In some embodiments, exemplary components of the computer system 501 include one or more CPUs 502, a memory subsystem 504, a terminal interface 512, a storage interface 514, an I / O (input / output) device interface 516, and a network interface 518, all of which may be communicatively coupled, directly or indirectly, to enable communication between the components via a memory bus 503, an I / O bus 508, and an I / O bus interface unit 510.
[0070] Computer system 501 may include one or more general-purpose programmable central processing units (CPUs) 502A, 502B, 502C, and 502D, generally referred to herein as CPUs 502. In some embodiments, computer system 501 may include multiple processors typical of larger systems, although in other embodiments, computer system 501 may alternatively be a single-CPU system. Each CPU 502 may execute instructions stored in memory subsystem 504 and may include one or more levels of on-board cache. Memory subsystem 504 may include instructions 506 that, when executed by processor 502, cause processor 502 to perform some or all of the functions described above with respect to FIG. 2.
[0071] In some embodiments, memory subsystem 504 may comprise random-access semiconductor memory, storage devices, or storage media (volatile or non-volatile) for storing data and programs. In some embodiments, memory subsystem 504 may represent the entire virtual memory of computer system 501 and may also include virtual memory of other computer systems coupled to computer system 501 or connected via a network. While memory subsystem 504 may conceptually be a single, unified entity, in some embodiments it may be a more complex configuration, such as a hierarchy of memory devices, such as caches. For example, memory may exist in multiple levels of caches, and these caches may be further divided by function, such that some caches hold instructions while other caches hold non-instruction data used by one or more processors. Memory may be further distributed and associated with different CPUs or sets of CPUs, as known in any of various so-called non-uniform memory access (NUMA) computer architectures. In some embodiments, main memory or memory subsystem 504 may include elements for control and flow of memory used by CPU 502. This may include a memory controller 505 .
[0072] While memory bus 503 is depicted in FIG. 5 as a single bus structure providing a direct communication path between CPU 502, memory subsystem 504, and I / O bus interface 510, in some embodiments it may include multiple distinct buses or communication paths that may be arranged in any of a variety of configurations, such as hierarchical, star-, or web-shaped point-to-point links, multiple hierarchical buses, parallel or redundant paths, or any other suitable type of configuration. Furthermore, while I / O bus interface 510 and I / O bus 508 are depicted as single individual units, in some embodiments computer system 501 may include multiple I / O bus interface units 510, multiple I / O buses 508, or both. Furthermore, while multiple I / O interface units are depicted isolating I / O bus 508 from the various communication paths leading to the various I / O devices, in other embodiments some or all of the I / O devices may be directly connected to one or more system I / O buses.
[0073] In some embodiments, computer system 501 may be a multi-user mainframe computer system, a single-user system, a server computer or similar device that has little or no direct user interface but accepts requests from other computer systems (clients), etc. Furthermore, in some embodiments, computer system 501 may be implemented as a desktop computer, a portable computer, a laptop or notebook computer, a tablet computer, a pocket computer, a telephone, a smartphone, a mobile device, or any other suitable type of electronic device.
[0074] It should be noted that Figure 5 is intended to depict representative example components of an exemplary computer system 501. However, in some embodiments, the individual components may be more complex or less complex than depicted in Figure 5. Components other than or in addition to those depicted in Figure 5 may be present, and the number, type, and configuration of such components may vary.
[0075] The present invention may be a system, method, or computer program product, or combination thereof, at any conceivable level of technical detail integration. The computer program product may include one or more computer-readable storage media having computer-readable program instructions stored thereon that cause a processor to perform aspects of the present invention.
[0076] A computer-readable storage medium can be any tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium can be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes portable computer diskettes, 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 versatile disk (DVD), memory stick, floppy disk, mechanical coding devices such as punch cards or ridge structures in grooves with instructions recorded thereon, and any suitable combination thereof. In this specification, computer-readable storage media shall not be construed as ephemeral signals per se, such as freely propagating electromagnetic waves such as radio waves, electromagnetic waves propagating through a transmission medium such as a waveguide (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted over a wire.
[0077] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or storage device, for example, via the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may include copper cables, optical fibers, wireless networks, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions for storage on a computer-readable storage medium within each computing / processing device.
[0078] The computer-readable program instructions for carrying out the operations of the present invention may be source or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or object code written in one or more programming languages, including object-oriented programming languages such as Smalltalk®, C++, and the like, as well as conventional procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, such as a local area network (LAN) or wide area network (WAN), or may be connected to the external computer (e.g., through the Internet using an Internet service provider). In some embodiments, state information of the computer-readable program instructions may be used to customize electronic circuitry, including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), to execute the computer-readable program instructions, to carry out aspects of the present invention.
[0079] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will 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.
[0080] These 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 configure a machine, such that, when executed by the processor of the programmable data processing apparatus, such as a computer, the instructions generate means for implementing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer-readable program instructions may also be stored on a computer-readable storage medium, such that the computer-readable storage medium on which the instructions are stored comprises an article of manufacture containing instructions that implement aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams, and may direct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner.
[0081] Furthermore, the computer-readable program instructions may be loaded into a computer, other programmable data processing apparatus, or other device to configure a computer-implemented process, causing a series of operational steps to be performed on the computer, other programmable apparatus, or other device, such that the instructions, which execute on the computer, other programmable apparatus, or other device, implement the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.
[0082] The flowcharts and block diagrams in the figures 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 the flowcharts or block diagrams may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a particular logical function. In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially simultaneously or in the reverse order, depending on the functionality involved. It should also be noted that each block in the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may also be implemented by a dedicated hardware-based system that performs particular functions or operations or executes a combination of dedicated hardware and computer instructions.
[0083] The above descriptions of various embodiments of the present invention have been presented for illustrative purposes, but they are not intended to be exhaustive or to be limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the above embodiments. The terminology used in this specification has been chosen to best explain the principles of the embodiments, practical applications, or technical improvements of the technology found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein. [Explanation of symbols]
[0084] 10 cloud computing nodes 50 Cloud Computing Environments 54A Personal Digital Assistant (PDA) or Mobile Phone 54B Desktop Computer 54C Laptop Computer 54N Automotive Computer System 60 Hardware and Software Layers 61 Mainframe 62 RISC architecture-based servers 63 servers 64 Blade Servers 65 Storage Devices 66 Network / Networking Components 67 Network Application Server Software 68 Database Software 70 Virtualization Layer 71 Virtual Servers 72 Virtual Storage 73 Virtual Networks 74 Virtual Applications / Operating Systems 75 Virtual Clients 80 Management Layer 81 Resource Provisioning 82 Measurement and Pricing 83 User Portal 84 Service Level Management 85 Service Level Agreement (SLA) Planning and Execution 90 Workload Layers 91 Mapping and Navigation 92 Software Development & Lifecycle Management 93 Virtual Classroom / Educational Offerings 94 Data analysis processing 95 Transaction Processing 96 Computing Resource Consumption Estimates 100 Network Environment 110 Cloud 120 Hypervisor 125A Virtual Machine 125B Virtual Machine 125C Virtual Machine 127 Virtual Machine Monitor 130 Licensed Instruments 135 Hypervisor Monitor 137 Stability Coefficient Generator 140 Licensee Devices 501 Computer Systems 502 CPU 502A Central Processing Unit (CPU) 502B Central Processing Unit (CPU) 502C Central Processing Unit (CPU) 502D Central Processing Unit (CPU) 503 Memory Bus 504 Memory Subsystem 505 Memory Controller 506 Command 508 I / O bus 510 I / O Bus Interface Unit 512 Terminal Interface 514 Storage Interface 516 I / O (input / output) device interfaces 518 Network Interface
Claims
1. 1. A method for estimating computing resource consumption, comprising: placing a set of virtual machines on a hypervisor; generating a first set of computing resource consumption data by performing one or more local scans on each virtual machine; in response to receiving a first set of hypervisor resource consumption data from the hypervisor, generating a first stability factor based on the first set of computing resource consumption data and the first set of hypervisor resource consumption data; determining that the first set of computing resource consumption data, the first set of hypervisor resource consumption data, and the first stability factor indicate that a default consumption metric reflecting an average of a historical set of computing resource consumption data exceeds a threshold; generating, in response to the exceeding determination, a custom consumption metric reflecting an average of a historical set of stabilized computing resource consumption data based on at least the first set of computing resource consumption data; notifying a user of said custom consumption criteria; A method comprising:
2. The method of claim 1 , wherein the custom consumption criteria is further based on the first set of hypervisor resource consumption data.
3. The computer determining that a second set of computing resource consumption data, a second set of hypervisor resource consumption data, and a second stability factor indicate that the default consumption metric does not exceed the threshold; In response to the determination indicating no exceedance, notifying the user of the default consumption standard; The method of claim 1 , further comprising:
4. The method of claim 3 , wherein the second stability factors include a set of historical license capacity consumption criteria and a set of real-time license capacity consumption criteria.
5. 1. A computer program for estimating computing resource consumption, comprising: placing a set of virtual machines on a hypervisor; generating a first set of computing resource consumption data by performing one or more local scans on each virtual machine; in response to receiving a first set of hypervisor resource consumption data from the hypervisor, generating a first stability factor based on the first set of computing resource consumption data and the first set of hypervisor resource consumption data; determining that the first set of computing resource consumption data, the first set of hypervisor resource consumption data, and the first stability factor indicate that a default consumption metric reflecting an average of a historical set of computing resource consumption data exceeds a threshold; generating, in response to the exceeding determination, a custom consumption metric reflecting an average of a historical set of stabilized computing resource consumption data based on at least the first set of computing resource consumption data; notifying a user of said custom consumption criteria; A computer program that causes a computer to execute the following.
6. The computer program product of claim 5 , wherein the custom consumption criteria is further based on the first set of hypervisor resource consumption data.
7. determining that a second set of computing resource consumption data, a second set of hypervisor resource consumption data, and a second stability factor indicate that the default consumption metric does not exceed the threshold; In response to the determination indicating no exceedance, notifying the user of the default consumption standard; The computer program product of claim 5 , further causing the computer to perform the following:
8. 8. The computer program product of claim 7, wherein the second stability factors include a set of historical licensed capacity consumption criteria and a set of real-time licensed capacity consumption criteria.
9. 1. A system for estimating computing resource consumption, comprising: a memory subsystem containing program instructions; a processor in communication with the memory subsystem; Equipped with The program instructions: placing a set of virtual machines on a hypervisor; generating a first set of computing resource consumption data by performing one or more local scans on each virtual machine; in response to receiving a first set of hypervisor resource consumption data from the hypervisor, generating a first stability factor based on the first set of computing resource consumption data and the first set of hypervisor resource consumption data; determining that the first set of computing resource consumption data, the first set of hypervisor resource consumption data, and the first stability factor indicate that a default consumption metric reflecting an average of a historical set of computing resource consumption data exceeds a threshold; In response to the exceeding determination, generating a custom consumption metric based on at least the first set of computing resource consumption data, the custom consumption metric reflecting an average of a historical set of stabilized computing resource consumption data; notifying a user of said custom consumption criteria; The system causes the processor to perform the following:
10. The system of claim 9 , wherein the custom consumption criteria is further based on the first set of hypervisor resource consumption data.
11. The program instructions: determining that a second set of computing resource consumption data, a second set of hypervisor resource consumption data, and a second stability factor indicate that the default consumption metric does not exceed the threshold; In response to the determination indicating no exceedance, notifying the user of the default consumption standard; The system of claim 9 , further causing the processor to:
12. The system of claim 11 , wherein the second stability factors include a set of historical license capacity consumption criteria and a set of real-time license capacity consumption criteria.
Citation Information
Patent Citations
Computer resource assignment method, resource management server for executing it, and computer system
JP2004199561A
Resource allocation apparatus, method, and program
JP2016091109A
Resource management system and resource management method
JP2016192086A
Calculating virtual machine resource utilization information
US8806487B2
Estimating virtual machine energy consumption
US9043172B2