EP1700217A2 - System and method for metering the performance of a data processing system - Google Patents
System and method for metering the performance of a data processing systemInfo
- Publication number
- EP1700217A2 EP1700217A2 EP04814637A EP04814637A EP1700217A2 EP 1700217 A2 EP1700217 A2 EP 1700217A2 EP 04814637 A EP04814637 A EP 04814637A EP 04814637 A EP04814637 A EP 04814637A EP 1700217 A2 EP1700217 A2 EP 1700217A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- performance
- performance level
- customer
- level
- partition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/87—Monitoring of transactions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/885—Monitoring specific for caches
Definitions
- the current invention relates generally to data processing systems, and more particularly to methods and apparatus for selectively controlling the performance of data processing systems.
- One way to address the foregoing challenges involves allowing for the temporary increase of resources only when those resources are required to achieve a desired performance level. This is accomplished by including additional resources such as processors and memory in the data processing system when it is provided to the customer. However, only the resources that are required to achieve the performance purchased by the customer are enabled for use during normal operation.
- the customer may purchase an authorization key to enable the use of additional hardware resources.
- the authorization key may, for example, identify which additional processing resources are being authorized for use, the maximum time the additional resources are authorized for use, and an expiration date. This authorization key thereby allows selective increases in performance level to accommodate unplanned increases in performance requirements. When peak demand has ended, the customer may return to average processing levels without incurring the cost burden associated with permanently upgrading a system or obtaining additional systems.
- Prior art systems such as that described above generally select a performance level by identifying the system resources that will be enabled. For example, authorization keys provided with the system specifically identify the processors that are enabled for use. If one of these identified processors encounters some type of hardware problem, the customer is not allowed to instead employ one of the other available processors that is not specified by the key. Thus, encountered hardware problems may result in degraded throughput.
- authorization keys specify the number of processors that may be enabled within the system, not the processing power actually available from those processors. However, the processing power that will be obtained from a predetermined number of processors varies based on architectural characteristics of the data processing system.
- a partition is a grouping of resources that are allocated to execute in a cooperative manner to perform one or more assigned tasks.
- a partition may be formed that includes one or more predetermined instruction processors and Input/Output Processors (IOPs), and a predetermined memory range within a shared main memory.
- IOPs Input/Output Processors
- a second partition may be created to include different processors, IOPs, and another memory range.
- Each of these partitions may operate independently from the other so that a number of tasks may be executed in parallel within the system.
- the partitions can be re-defined. For instance, if needed, all resources may be allocated to the same partition and assigned to execute a high-priority task.
- Partitionable keys are "partitionable", meaning these keys support the use of partitioning.
- Partitionable keys can be activated in a single partition, or in multiple partitions. For example, assume a partitionable key allows six identified processors to be enabled. These processors may be allocated to the same partition. Alternatively, two partitions may be created, each including three of the identified processors. When all six of the identified processors are in use, the operating system prevents the use of any more processors in any of the partitions.
- Prior art partitionable keys do not account for system characteristics. For example, assume in the above example that three of the six identified processors share a first cache, and the remaining three processors share another cache.
- a single partition containing all processors will deliver less processing power than two partitions that each include a cache and the respective processors. This is true because of the loss of throughput that occurs when data must be shared between two caches of the same partition. Because the partitionable keys do not take into account such architectural considerations, the customer may not always be obtaining peak performance from the enabled resources. Additionally, since one partitioning configuration may provide more processing power than another configuration, the keys are difficult to price fairly.
- the present invention provides an improved system and method for metering usage and scaling performance of a data processing system.
- an authorization key is purchased that specifies both a baseline performance level and a ceiling performance level. These performance levels may be specified using a metric that describes processing throughput, such as Millions of Instructions Per Second (MIPS).
- MIPS Millions of Instructions Per Second
- the cost of the baseline performance levels is included in the price of the key.
- the utilized performance of the data processing system is monitored and averaged over predetermined time periods.
- the customer is periodically issued an invoice that charges for any time period during which this averaged system utilized performance exceeds the baseline performance level. So long as the averaged system utilized performance remains below the pre-paid baseline performance level, the customer is not charged an additional amount. Performance of the data processing system is not allowed to exceed the ceiling level obtained with the authorization key.
- the customer may select a governed limit that may be used to limit the maximum performance of the data processing system to something below that specified by the ceiling performance level. If desired, the customer may set the governed limit to the baseline performance level so that no periodic charges will be incurred. If the governed limit is set to a level above the baseline performance level but below the ceiling performance level, "pay-as-you-go" charges will be limited by the governed limit. In one embodiment, the governed limit must be set to a level that is no greater than the ceiling performance level obtained with the authorization key. [0015] In one embodiment, the data processing system can be configured in any selected one of multiple configurations. Each configuration is associated with a maximum performance level.
- the utilized performance of the data processing system is calculated based on the time spent performing work by each processor within the selected configuration.
- the utilized performance is also based on the maximum performance level for the selected configuration.
- the customer may programmably change the ceiling level, and is charged accordingly on their invoice.
- the baseline level may be set to zero by the system provider such that all performance consumption is purchased by the customer as it is used.
- the ceiling level may be set to 100 percent so that system performance is not throttled.
- baseline and ceiling performance levels are specified without any restrictions on the hardware that may be used to achieve these levels.
- the customer may therefore select which resources within the data processing system will be enabled, as well as how those resources will be configured.
- the customer may create one or more processing partitions to include the one or more enabled IPs. For instance, all enabled IPs may be included in the same partition, or may be divided between multiple partitions. Characteristics associated with the system architecture will be taken into account when scaling the performance of each IP in a partition so that the system as a whole will provide up to the purchased ceiling performance level.
- performance of an IP may be scaled using a scaling factor that is derived using one or more lookup tables. These tables contain data indicating the peak performance level that will be provided by any allowable configuration of the data processing system. After the customer selects a configuration, the applicable scaling factor is calculated by dividing the purchased ceiling performance level by the peak performance level for the selected configuration. This scaling factor is then used to scale the processing power of each IP that is enabled within the configuration so that performance of the system does not exceed the ceiling level.
- a customer may select a configuration that includes multiple processmg partitions. Each partition is allocated a portion of the total ceiling performance level. A ceiling scaling factor is created for each partition by dividing the portion of the allocated ceiling performance level by the peak performance level for that partition. The ceiling scaling factor is then used to scale the performance level of each IP within the partition. [0022] In an embodiment wherein multiple processing partitions are utilized, the processing activities of each processor in each partition are monitored. The utilized performance of each of the partitions may then be calculated based on the portion of time spent by the processors in the partition performing work, as well as the maximum performance level that may be provided by the partition. The utilized performance of the system may then be derived by adding the utilized performance for each of the partitions.
- This system utilized performance is averaged over a predetermined averaging time period.
- the customer is billed based on this averaged system utilized performance.
- the customer is billed based on an amount this averaged system utilized performance exceeds the baseline performance level.
- the customer is billed for consumption, which is determined as a product of the averaged system utilized performance and the averaging period.
- the invention provides a method of metering performance of a data processing system. The method includes monitoring the performance of the data processing system, and charging a customer based on utilized performance that exceeds a baseline performance level.
- a report may be generated that includes system identification, a measure of processor utilization, and multiple periodic measurements of processor utilization. These measurements may be preferably provided in a format, such as a comma separated value format, that allows a customer to extract the data and use it to conduct performance analysis on processor utilization within the computer system.
- the report may be requested either by a customer at any time.
- the analysis performed on the data may be any that the customer chooses.
- a data processing system includes one or more processors, a memory coupled to the processors, and Software Controlled Performance Facility (SCPF) software stored within the memory to monitor performance of at least one of the processors, and to charge a customer based on the performance that is utilized.
- SCPF Software Controlled Performance Facility
- a system for charging for performance of a data processing system includes one or more processors, means for recording performance of the one or more processors, and means for determining system utilized performance of the data processing system from the recorded performance of the one or more processors.
- the system further includes means for charging a customer based on the system utilized performance of the data processing system.
- Figure 1 is a block diagram of an exemplary system that may employ the current invention.
- Figure 2 A is a diagram of an exemplary prior art authorization key.
- Figure 2B is a diagram of an exemplary prior art optional authorization key.
- Figure 3 A is a graph illustrating one embodiment of the invention.
- Figure 3B is a diagram of a performance-based authorization key.
- Figure 4A is a table illustrating the maximum performance delivered by various configurations of a system such as that shown in Figure 1.
- Figure 4B is a block diagram illustrating one embodiment of the inventive system wherein the Software Controlled Performance Facility is included within the kernel of the operation system.
- Figure 4C is a block diagram illustrating another embodiment of the current invention wherein the Software Controlled Performance Facility is a centralized entity.
- Figure 5 is a flow diagram illustrating one embodiment of a method according to the current invention.
- Figure 6 is a flow diagram illustrating one embodiment of a method of allocating the ceiling performance levels to one or more partitions in the manner discussed above.
- Figure 7A is a flow diagram of one embodiment of scaling and monitoring the performance levels of each IP in a partition according to the current invention.
- Figure 7B is a diagram illustrating one process for determining the utilization of a partition.
- Figure 8 is a flow diagram describing the derivation of utilization and consumption metrics for the partitions controlled by a partitionable metered key.
- Figure 9 is a flow diagram describing the manner in which consumption metrics may be reported to the customer and to a billing authority.
- Figure 10A and 10B depict an exemplary embodiment of a processor utilization report as an aspect of the invention.
- FIG. 1 is a block diagram of an exemplary system that may employ the current invention.
- This system includes a Memory Storage Unit (MSU) 10 (shown dashed) which provides the main memory facility for the system.
- MSU Memory Storage Unit
- the MSU includes one or more MSU devices individually shown as MSU 10 A and MSU 10B, which each contains a predetermined portion of the memory space of the system. Many more MSU devices may be included within a full configuration.
- the system further includes processing modules (PODs) 20A and 20B (shown dashed), which provides the processing capability for the system.
- PODs processing modules
- a greater or lesser number of PODs may be included in the system than are shown in Figure 1. In one embodiment, up to four PODs are included in a fully populated system.
- Each of the PODs is coupled to each of the MSU devices via a dedicated, point- to-point connection referred to as an MSU Interface (MI), individually shown as Mis 30A through 30D.
- MI 30A interfaces POD 20A to MSU device 10A
- MI 30B interfaces POD 20 A to MSU 10B device, and so on.
- Each POD includes two Sub-Processing modules (Sub-PODs) and a crossbar module (XBAR).
- POD 20A includes sub-PODs 50A and 50B and XBAR 60A, and so on.
- Each sub-POD is interconnected to the respective crossbar module (XBAR) through a dedicated point-to-point interface.
- the system of Figure 1 may further include Input/Output modules (I/Os) individually shown as I/Os 40A through 40D.
- the I/O modules provide the interface between various Input/Output devices or communications links and a respective one of the PODs 20.
- Each I/O module is coupled to a POD via the POD's XBAR.
- I/O 40 A is coupled to XBAR 60A, and so on.
- XBAR 60A both buffers data for the respective sub-PODs 50A and 50B and I/O modules 40A and 40B, and functions as a switch to route data between any of these sub-PODs and I/O modules to an addressed one of the MSU devices 10A and 10B.
- each sub-POD includes a shared cache and one or more Instruction Processors (IPs).
- IPs Instruction Processors
- sub-POD 50A includes shared cache 70A and IPs 80A - 80D.
- Other sub-PODs are similarly configured.
- a sub- POD 50 may include between one and four IPs 80.
- Each IP may include one or more dedicated caches and interface logic for coupling to the interface with the shared cache.
- the shared cache stores data for each of the IPs within its sub-POD.
- each IP includes a quantum timer shown as timer 81 A for IP 80A. This timer has many uses, including the facilitation of multitasking for the respective IP, as will be discussed below.
- the system of Figure 1 includes at least one instance of an Operating System
- OS 85 that is loaded into MSU 10 to control the system.
- OS 85 is shown generally occupying memory included within MSU 10, and it will be understood the selected memory range in which OS 85 resides will actually be provided by one of MSU devices 10A or 10B.
- Also shown residing with MSU 10 is at least one instance of a Software
- SCPF Controlled Performance Facility 90.
- the SCPF may be implemented in the kernel of OS 85 as shown in Figure 1, or implemented as a stand-alone entity. In either case, the SCPF controls the performance level of each of the IPs 80 within the system, as will be discussed further below.
- the system of Figure 1 includes a system console 95, which may be a workstation, personal computer, or some other processing system executing system control software 96.
- This system console is coupled to the other units in the system via a scan interface 97.
- the scan interface is shown coupled solely to MSU 10, it will be understood it is coupled to the other units in the system as well.
- System console provides all initialization, maintenance, and recovery operations for the system via the scan interface.
- system console may be employed by an operator to perform configuration activities in a manner to be discussed below.
- the data processing system is coupled to a billing authority system 98 via a network 100 such as the Internet, or any other suitable type of network capable of supporting secure data transfers.
- This billing authority system is a data processing system that will generally be located at a remote location as compared to the data processing system, and will execute billing software 99.
- the billing software 99 utilizes data obtained from SCPF 90 to generate invoices charging the customer for utilization of the data processing system. This will be discussed below in reference to the remaining drawings.
- Figure 2A is a diagram showing an illustrative prior art authorization key.
- This key is a "normal" authorization key that is intended for relatively long-term use.
- the illustrated key has a maximum time of use of five years. Instead of, or in addition to, this maximum time of use, the key may include an expiration date dictating the last day on which the key may be used.
- a system and method for utilizing authorization keys of the type shown in Figure 2A are disclosed in commonly-assigned U.S. patent application entitled “Authorization Key System for Selectively Controlling the Performance of a Data Processing System", Serial No. 09/676,162, filed September 29, 2000, which is incorporated herein by reference in its entirety.
- the exemplary key of Figure 2A authorizes use of two processors identified as
- This key further specifies the model and serial numbers of the target data processing system that will use the key.
- This data processing system may be similar to that shown in Figure 1, for instance.
- the model and serial numbers specified in the authorization key may be used to validate the authorization key when it is registered on the data processing system. For example, when the authorization key is registered, the model and serial numbers specified in the authorization key are compared with the model and serial number of the data processing system. If this data does not match, the authorization key may be rejected as invalid.
- the authorization key illustrated in Figure 2A is initially provided with a data processing system having two sub-PODs 50 and eight IPs 80.
- the authorization key specifies the maximum number of authorized IPs as two.
- the authorization key also uniquely identifies IPO and IPl as being the IPs that are available for use. As a result, six of the IPs in the system initially remain unused.
- a corresponding configuration file (not shown) is provided to map the identifiers "IPO" and "IPl" specified in the authorization key to specific hardware within the system.
- a configuration file may correlate the name "IPO” with IP 80A of sub- POD 50A by identifying a slot and chip location that is populated by IP 80A.
- SCPF 90 is a software utility that is provided to control which IPs are enabled, as well as the peak utilization rate that is allowable for each of the enabled IPs. If the customer attempts to enable, or "up", any of the processors other than IPO and IPl, SCPF will issue a warning message and prevent the enabling of the identified IP.
- the exemplary authorization key of Figure 2A allows each IP to run at 80% of its maximum utilization potential.
- the SCPF utility will cause IPO and IPl to enter a forced idle state for a specified percentage of time, which in this case is 20%. During this time, the IP is not performing useful work.
- This forced idle state is preferably achieved at the expense of non-critical system and user activities.
- the processing of critical system events such as interrupts, including pre- and post-processing of I/O interrupts, memory paging, and so on, are preferably not delayed during forced idle states.
- the forced idle state is enforced on an IP basis rather than a system wide basis.
- the forced idle state may be implemented using the multitasking capabilities of the system.
- a multitasking environment allows an IP to execute multiple tasks, with each task being executed during a predetermined quantum of time. After the time for execution of a given task expires, the OS causes the IP to begin executing another task for the next quantum of time, and so on.
- the OS must re-gain control of the IP at somewhat regular time intervals. This can be accomplished in a number of ways. Generally, a task that is executing on an IP periodically requests a service from the OS, thereby relinquishing control of the IP. This can be used as an opportunity to allow the OS to initiate execution of another task on the IP. Occasionally, however, a task may execute for long periods of time without relinquishing control to the OS. To prevent such execution from continuing for an extended period of time, the OS uses a quantum timer such as timer 81 A to regain control of the IP. If a task continues execution beyond its allocated quantum of time, the quantum timer will expire to interrupt task execution.
- a quantum timer such as timer 81 A
- Control is returned to the OS so that another task can begin execution.
- SCPF 90 may, if necessary, force the IP to execute in a looping construct in which no useful work is done.
- the amount of time spent in the forced idle loop will be adjusted as necessary to cause the partition to run at a predetermined performance level specified by the system authorization key.
- SCPF monitors a system clock to cause the IP to execute within the idle loop until the predetermined scaled performance level is achieved.
- the increments of time spent within a forced idle state are sufficiently small so as not to be discernable by a user.
- the IP may be directed to resume execution of the next scheduled processing task. This will be discussed further below.
- SCPF 90 will prevent a customer from attempting to increase the utilization of the available processors beyond the authorized maximum utilization percentage, which is also referred to as "the ceiling".
- Figure 2B is an exemplary prior art optional authorization key. Like the key shown in Figure 2 A, this key includes a model and serial number of the target data processing system, an IP identifier field indicating the IPs that are available for use, and the maximum performance utilization allowed for those authorized IPs. This key may increase the number of IPs authorized for use, and/or the maximum utilization percentage for the authorized IPs. For example, the key of Figure 2B indicates that any four IPs may be utilized at a processing rate of 100%.
- An optional key is generally adopted for relatively short-term use as compared to a normal authorization key.
- this type of key may include an expiration date and/or a maximum usage time.
- the key of Figure 2B is valid for a period often days, and expires on January 1, 2004.
- the optional authorization key can be used cumulatively for ten days, and need not be used for ten consecutive days.
- SCPF 90 automatically returns the data processing system to the original configuration, which may be governed by the use of a normal authorization key such as that shown in Figure 2A.
- SCPF provides one or more messages to the customer, warning the customer of the impending configuration change. This may give the customer the opportunity to purchase an additional optional authorization key before the data processing system is returned to the original configuration.
- an optional authorization key is particularly suited for a situation wherein a customer is experiencing a short-term workload increase. If it is anticipated that the increased workload will be sustained, the customer may purchase a normal authorization key that increases system performance for a longer time period.
- the prior art system and method discussed above provides a flexible approach to increasing system performance. Performance can be increased without disrupting normal operations. Moreover, the performance increase may be tailored to a customer's specific needs. The customer is only required to purchase the amount of additional processing power for the limited time that processing power is needed. While this provides significant advantages, the flexibility of the prior art system may be improved. For example, prior art normal authorization keys specifically identify the IPs that are available for use. As a result, the customer does not have the discretion to disable one IP and instead employ a different IP, as may be desirable if a failure occurs within one of the executing IPs.
- IPs 80 A - 80D within sub-POD 50A are employed, the user will obtain significantly better performance than if two IPs are utihzed in sub-POD 50A, and two IPs are enabled in sub-POD 50B. This is the result of performance benefits obtained when all IPs execute from the same shared cache 70 A.
- a given prior art authorization key may result in differing levels of performance based on the way in which the customer is using the key.
- This drawback may be addressed by specifically identifying the IPs that are available for use in a manner similar to that shown in Figure 2A. However, this restricts the user's ability to make hardware substitutions when faults are detected, as is discussed above.
- a partition is comprised of resources that are allocated to execute in a cooperative manner to perform one or more assigned tasks.
- a partition may be created that includes one or more predetermined IPs and I/O modules, and a predetermined memory range within MSU 10.
- a second partition may be defined to include different IPs, I/O modules and another memory range.
- Each of these partitions may operate independently to execute respectively assigned tasks in parallel with those tasks being executed by other partitions.
- Partitions may be re-defined as system requirements change.
- Some prior art keys are "partitionable", meaning these keys support the use of partitioning. Partitionable keys can be activated in a single partition, or in multiple partitions. For example, assume a partitionable key authorizes the use of six identified IPs. All of these IPs may be allocated to the same partition. Alternatively, two partitions may be created, each including three of the identified processors.
- Prior art partitionable keys do not take into account performance differences between various partitioning alternatives. For example, two partitions that each includes three IPs deliver considerably more processing power than a single partition that includes six IPs. Thus, it is difficult to price a partitionable key fairly.
- prior art keys are rated in terms of a maximum performance level. A customer must pay for this maximum level during the entire time the key is used on the system, even if system usage only approaches the maximum level infrequently during that time.
- the current invention provides an improved system and method for allowing the customer to pay for the processing power that is actually used, rather than requiring the customer to purchase an estimated maximum performance level ahead of time. In one embodiment, the inventive system measures processing power by specifying a performance level delivered by the system, rather than the number of processors that will deliver the processing power.
- FIG. 3 A is a graph illustrating an embodiment of the invention.
- an authorization key is associated with both a baseline and a ceiling level of "processing power" that is described in the metric Millions of Instructions Per Second (MIPS). Processing power could be described in other suitable units of measure in the alternative.
- MIPS ratings for a data processing system is generally established by measuring the execution times of various benchmark programs.
- benchmark programs are generally developed with a particular system architecture and operating system in mind, a given suite of benchmarks do not necessarily provide data that can be used to conduct a meaningful comparison between different system architectures. However, a given suite of benchmarks can provide meaningful comparison data when considering the performance of systems that are included within the same or related product families.
- the exemplary baseline rating is 200 MIPS, and the ceiling rating is 450 MIPS.
- the customer prepays for the amount of processing power specified by the baseline rating 300. That baseline performance level may be obtained using any combination of system resources selected by the customer. Unlike prior art authorization keys, the identity of the IPs that are available for use are not limited.
- the current invention monitors the amount of processing power that is used by the customer in a manner to be discussed below. Processing power is considered to be “used” when it is being used to execute tasks, manage tasks, or schedule tasks for execution. Processing power is not being “used “ when the processor is idle. The processor may be idle because there are no tasks in a state for execution (referred to herein as “natural idle"), or because performance of the processor is being scaled (referred to as "forced idle”). When the amount of utilized processing power exceeds the pre-paid baseline, the level of usage is recorded. The customer is periodically billed for this additional processing power. The customer's usage is not allowed to exceed the predetermined ceiling amount that is set based on pricing levels associated with the authorization key.
- the customer has pre-paid for a baseline performance level of 200 MIPS.
- the customer may utilize up to 200 MIPS on a continuous basis without being charged for additional processing power.
- the utilization of processing power is monitored to determine when the customer utilizes more than 200 MIPS over a predetermined monitored time increment, as will be discussed below.
- the customer is then charged for this additional processing power, which is measured in "MlPS-seconds".
- This additional processing power is represented by the areas 304 and 306 of the graph that are bounded by baseline 300 and, in the case of area 304, ceiling 302.
- the current system and method allows a customer to pre-pay for the minimum level of performance that is anticipated to support daily requirements. Any additional processing power that is needed is obtained on a "pay-as-you-go" basis. Processing power is not allowed to exceed a ceiling level that is associated with the prepaid baseline level.
- the ceiling 302 that is obtained with the licensed key dictates the maximum performance level that may be obtained from the system while the key is being used.
- the user is allowed to limit utilized performance to something less than the ceiling level. This can be accomplished using a governed limit 305 (shown dashed). This limit may be used to lower, or entirely eliminate, "pay- as-you-go" costs.
- a governed limit is selected by a user and registered with the system, system performance will be limited to a level specified by that limit. For example, the user may select a governed limit that is equal to the prepaid baseline so that system performance will not exceed the baseline level, and the user will not incur any "pay-as-you-go" charges.
- the customer may select a governed limit that is above the prepaid baseline 300, but lower than the ceiling 302. In this case, the customer will incur charges for utilized performance that exceeds the prepaid baseline. However, the incurred costs may be lower than if the ceiling were utilized to limit system performance. Thus, the customer may select any governed limit that is equal to, or lower than, the ceiling. In practice, this limit will be selected to be at least the level specified by the prepaid baseline 200.
- Figure 3B is an exemplary authorization key used in one embodiment of the current invention.
- this key includes a model and serial number of the target data processing system.
- the key may further include an expiration date and/or a maximum usage time.
- this key specifies a baseline performance level 300 of 200 MIPS, which is the level for which the customer prepays.
- a second ceiling performance level 302 of 450 MIPS is also specified. As discussed above, this level limits the customer's maximum performance usage. Maximum performance usage may be further limited using the governed limit 305, as previously described.
- a monitoring system and method is used to meter the performance level of the customer's system if that performance level exceeds the baseline. The customer is billed at periodic increments for this performance usage, as will be discussed below.
- Figure 4A is a table illustrating the performance level, rated in MIPS, that is delivered when various combinations of IPs are enabled at 100%> utilization within a system such as that illustrated in Figure 1. As discussed above, these ratings may be obtained by running a suite of standard benchmark programs on the system when it is configured in the designated manner. It will be understood that the listed MIPS ratings are not intended to reflect actual performance capabilities of any commercially available system, but are presented merely for discussion purposes.
- Figure 1 delivers 200 MIPS when executing at 100% utilization. Similarly, 500 MIPS are delivered by three IPs that are executing at 100%) within the same sub-POD 50.
- Four IPs residing within one sub-POD deliver 630 MIPS, whereas four IPs residing in two different sub- PODs provide 550 MIPS.
- Eight IPs executing in two sub-PODs deliver 900 MIPS. This is much less than the nominal 1600 MIPS that would be obtained from eight IPs executing at 200- MIPS because of the multiprocessor effects associated with the system's cache architecture and the benchmarking software's use of shared data.
- a table such as that shown in Figure 4A provides MIPS rating for processors within the same partition.
- MIPS rating of 900 MIPS for eight IPs refers to the maximum performance level obtained when all eight IPs are allocated to the same partition.
- processors need not be allocated to a single partition.
- eight IPs may instead be allocated to two partitions, each including four IPs running within the same sub-POD.
- the MIPS rating for each partition is obtained from the third table entry, which lists a single partition including four IPs as being rated at 630 MIPS.
- two partitions of four processors provide a total of 1260 MIPS, which is higher than the 900 MIPS obtained from the single-partition configuration.
- the table of Figure 4A may be used to scale the maximum system performance to a predetermined ceiling level as follows. Assume that a customer has a system similar to that shown in Figure 1, but which includes only two sub-PODs 50. Each sub-POD is populated by four IPs 80 for a total of eight IPs in the system. Further assume the ceiling level of an authorization key is set to 450-MIPS as discussed above in reference to Figure 3A. The customer is allowed to utilize as many of the available IPs as desired to perform day-to-day processing tasks, but the total performance will not be allowed to exceed the ceiling level of 450 MIPS.
- the maximum performance level of this "three-way" partition is 500 MIPS.
- the system performance will be scaled by a factor of 450/500, or 90 percent. Therefore, each IP will not be allowed to exceed a performance level of 90 percent. To accomplish this, the IP will be forced into an idle state 10 percent of the time.
- the remaining five IPs may be re-enabled to again provide the transaction-processing configuration that is more suitable for a multi-user environment. At that time, the ceiling level will again be set to 50 percent processing power for each of the IPs.
- processors are enabled and disabled individually, so the system's ceiling performance level changes incrementally as the transition from an 8-way to a 3 -way configuration occurs, and vice versa.
- the above example involves a ceiling level for a single partition. Similar considerations are employed when scaling the ceiling performance level in a scenario involving multiple partitions. For instance, assume that the customer of the current example wants to utilize the key having a 450 MIPS ceiling level for a system that is executing multiple partitions. Recall that the customer has a system similar to that of Figure 1 that includes two sub-PODs, each populated with four IPs. Further assume that in the system of Figure 1, partitions can only be created on sub-POD boundaries. Therefore, the customer may utilize a configuration having, at most, two partitions, each including a sub-POD populated by four IPs.
- the customer desires to run an important application in a first partition while the less critical applications execute in the other partition.
- the customer chooses to allocate 300 of the 450 MIPS to limit the ceiling of the first partition.
- this type of allocation may be performed by an operator using a predetermined operations or administration screen available on system console 95. This type of allocation may be subject to limits imposed by the system administrator. Alternatively, the allocation may occur when the OS is booted and reads performance data from a predetermined location in main memory, as discussed below.
- scaling factors may be calculated. For example, assume that all four IPs in the first partition are enabled.
- the maximum rated performance of the first partition is therefore 630 MIPS, as shown in the third entry of Figure 4A.
- SCPF 90 must scale the maximum performance level of each IP in the first partition by a factor of 300/630, or 48 percent. That is, IPs of the first partition are allowed to attain a maximum of a 48 percent performance level.
- the current system and method allows IP performance levels to vary between partitions.
- the IPs of the first partition may execute at up to 48 percent of their maximum performance level, whereas the IPs in the other partition may only execute up to 30 percent of their maximum capacity.
- the IPs of a given partition are operating on the same tasks and may be sharing and/or passing data through shared memory in MSU 10, processing power is generally most efficiently utilized by distributing it evenly between the IPs of the same partition. For this reason, in one embodiment, all IPs within the same partition are scaled by the same scaling factor.
- warning messages may be provided if a partition cannot achieve a desired performance level. For example, if a user or an automated process attempts to set a ceiling at 600 MIPS for a partition having 3 IPs in one sub- POD, a warning message will be provided indicating the maximum processing power that may be achieved by this partition is 500 MIPS. In such situations, SCPF 90 will allow each IP in the partition to execute at 100 percent, and all remaining MIPS will be available for allocation to a ceiling of one or more other partitions.
- a warning message will be issued if the performance level of an IP is scaled below a predetermined minimum value.
- This warning is provided because, in one embodiment, the forced idling mechanism does not operate in a predictable manner when an IP is scaled below a certain performance level.
- SCPF 90 will "down" one or more processors until the remaining processors are executing at, or above, the predetermined minimum processing level. For example, if the customer attempts to run eight IPs in a partition with a ceiling level of 20 MIPS, SCPF will continue downing IPs until the remaining IPs in the partition are running at a scaled performance level that is above the minimum level. This will allow the 20 MIPS to be predictably supported.
- FIG. 4B is a block diagram illustrating one embodiment of a system for assigning performance-based ceiling levels in the manner discussed above.
- An authorization key 400 is provided to the user on a tape, an email transmission, disk, or via some other medium. This key may be uniquely identified by a key identification field 402.
- the key may further include a system identification field 404 that stores a serial number or other identification data associating the key with the system on which it will be utilized.
- the key stores an available performance level 406, and any time limitations 408 associated with the key such as expiration date and maximum time of use.
- the authorization key is registered with the system using a software utility that tracks licensing data, shown as licensing registration software 410.
- This software verifies that the data stored within system id field 404 of the key matches identification data 412 provided with the system.
- system identification data may be stored within a read-only memory or some other storage device, may be hardwired on a back panel, manually or automatically selected using switches, or provided in any other suitable way.
- Key information may also be copied to memory available to system control software 96, as illustrated by key data 414, such as memory within system console 95 of Figure 1.
- system control software may retain information describing more than one authorization key. This may be desirable, for example, if a customer purchases both normal and optional keys that are both registered on the same data processing system.
- system control software 96 may be used to create one or more processing partitions. Specifically, an operator may employ maintenance screens provided by system control software to select the hardware that is to be added to a given partition. In response to this selection, system control software 96 employs scan interface 97 to enable and/or disable the appropriate hardware interfaces, including memory, cache, and processor interfaces.
- IPs that are included within a partition are enabled to communicate with their respective shared cache, whereas IPs that are not being used are electrically isolated from their respective shared cache and are not executing until such time as they are enabled.
- the hardware of Figure 1 must be partitioned on sub-POD boundaries. That is, hardware from the same sub-POD may not be included within two different partitions.
- system control software 96 configures hardware and allocates one or more memory ranges within MSU 10 to a partition such as partition A 420
- an instance of the OS 85 is booted within the allocated memory range(s).
- OS A, 85A an instance of the operating system
- SCPF A, 90A an instance of SCPF
- the partition also includes at least one IP 80 A, which has a quantum timer 81 A that is used to facilitate multitasking.
- key information 418 including the maximum available performance level provided by the performance key is copied to partition A memory 416.
- Partition A memory is a range of memory within MSU that is directly accessible to partition A.
- OS A will read the key information from a known location within partition A memory to obtain the performance level provided by the registered key.
- the OS will, by default, attempt to obtain the entire performance level of the key. For example, if the key provides a maximum performance level of 450 MIPS, SCPF A included within OS A 85A will attempt to obtain the entire 450 MIPS. SCPF A then issues a message to system control software 96 indicating that the entire 450 MIPS has been obtained. If the entire 450 MIPS was available for allocation, system control software 96 updates the authorization key data 414 to record that partition A is executing at a performance level of 450 MIPS. OS A then notifies SCPF A that the performance level is allowable. SCPF A will thereafter scale performance of the IPs within the partition to achieve this performance level, as will be discussed further below.
- an operator may utilize system control software 96 to create an additional partition B 430.
- Memory within MSU 100 that is accessible to this partition is shown as partition B memory 421.
- key information 419 is copied to partition B memory. This key information includes the maximum available performance level 406 provided by the key.
- OS B 85B
- OS B reads the key information 419 from partition B memory 421 and attempts to obtain all of the 450 MIPS provided by the key.
- SCPF B, 90B issues a message to system control software 96 indicating that partition B is currently set to a performance level of 450 MIPS.
- System control software 96 utilizes key information 414 to determine that 450 MIPS have already been allocated to partition A 420.
- System control software returns an error message indicating that no MIPS are available for use, and partition B will be halted.
- OS A provides a display screen on system console 95 that is available to an operator for entering performance data.
- the operator may utilize this screen to send a message to SCPF A, 90A, indicating that partition A is to operate at something less than the entire 450 MIPS. Any time after OS A is booted, for instance, the operator may send a message to SCPF A indicating that partition A is to run at 200 MIPS.
- SCPF A stores this performance data within key information 418, and modifies performance of the partition accordingly.
- SCPF A sends a message to system control software 96 indicating the performance level of partition A has been modified, and system control software 96 updates the authorization key data 414 to reflect that partition A is now running at 200 MIPS.
- SCPF A has access to one or more performance data tables 440 stored within partition A memory 416.
- SCPF B has access to one or more performance data tables 442 residing within partition B memory 421.
- System configurations and performance level allocations may be changed, as discussed above. For example, an operator may change the amount of processing power that is allocated to a given partition, so long as the total processing power used by all partitions does not exceed the maximum performance level specified by the registered key. Similarly, an operator may change the configuration of a partition by enabling or disabling IPs in a sub-POD included within the partition. When either of these events occurs, SCPF re-calculates the amount of time each IP must spend in a forced idle loop to achieve the allocated performance level for the partition.
- an operator may change the maximum performance level to be something below the ceiling level by specifying a governed limit 305.
- the governed limit which may be stored with the other authorization key data 414 by system control software 96, may then be allocated to the existing partitions in a number of ways. According to one embodiment, an operator is required to perform this allocation manually by specifying the portion of the governed limit that will be used by each partition. In another embodiment, the system will automatically perform this allocation in a manner that maintains the relative performance levels among existing partitions. For example, assume that two partitions have been created, with one having a performance level twice that of the other. After creation of the partitions, a governed limit is selected.
- performance level of this governed limit will be automatically allocated to maintain this two-to-one ratio between the existing partitions.
- performance data may be stored with key information to cause SCPF to attempt to obtain a different performance level.
- performance information may be stored within key information 418 of partition A memory 416 indicating that partition A should optimally obtain 200 MIPS.
- SCPF A will read this key information from memory 416, and will attempt to obtain the optimal performance level of 200 MIPS.
- a message will be issued to system control software 414, and system control software will determine whether this performance level is available for allocation in the manner discussed above.
- key information 418 will include the minimum performance level that is desired for optimal operation of the partition. This minimum performance level, which is configured by the customer, specifies the minimum level of performance that must be allocated to the partition to allow that partition to continue completing processing tasks in an optimal manner. For example, it may be beneficial to assign this type of minimum performance level to a partition that is performing high-priority work as a guarantee that enough processmg power is available within the partition to allow the work to complete in a timely manner.
- FIG. 4C is a block diagram illustrating yet another embodiment of the current invention. Elements similar to those shown in Figure 4B are assigned like numeric designators. In this embodiment, SCPF 90C is incorporated within system control software 96 rather than being included within the kernel of the OS. Additionally, all key information 414 and the one or more performance data tables 444 are retained within memory that is accessible to SCPF 90C, but which is not directly accessible by any created partition.
- the system of Figure 4C operates in a manner similar to that discussed above.
- An operator creates a partition using system control software 96.
- the operator may employ a screen provided by SCPF 90C on system console 95 to allocate a performance level to the newly created partition. If this performance level is not allowed for reasons set forth above, SCPF provides the operator with a warning message indicating, for example, that the specified performance level exceeds the level remaining on the key.
- SCPF 90C stores this performance allocation in authorization key information 414. SCPF records all allocations made for each partition associated with the key.
- SCPF 90C tracks processing time for each IP in a manner similar to that performed by SCPF 90A and 90B.
- SCPF 90C controls the performance level of each partition by informing an SCPF agent included within the partition's OS to enforce the allocated performance level for the partition. This agent then scales the performance of each of the IPs in the partition appropriately. The manner in which IP performance is scaled is discussed further below.
- FIG. 5 is a flow diagram illustrating one embodiment of a method according to the current invention.
- a data processmg system is provided that includes one or more IPs (500).
- the customer obtains an authorization key that specifies predetermined ceiling and baseline performance levels for the data processing system (502).
- the level of performance is specified in MIPS. However, it will be understood the performance level may be described using any other suitable metric.
- the authorization key may be a normal key that is to be used for a long time period, or may be an optional key that is generally used for a short period of time.
- the performance key may be delivered with the system. For example, the key may be registered on the system before the system is delivered. In another embodiment, the performance key may be provided to the customer after the system has been installed at the customer site. The performance key may be provided to the customer on a tape, disk, via an email transmission, or using any other suitable mechanism. The customer will register the key on the system and any system identification provided with the key will be verified during the registration process in the manner discussed above.
- the customer may select a system configuration to use with the predetermined performance levels (504). This may be accomplished using system control software 96. In general, any one of multiple configurations will be available for use with the performance levels.
- the customer may select the desired configuration based on the type of processing tasks that will be executed on the data processing system, for example. At any time, the customer may re-select a new configuration based on changing conditions (506). These conditions may include the scheduling of system maintenance, the occurrence of unexpected failures, or a change in the type of processing tasks to be executed on the system. If desired, the configuration may be modified automatically. For example, this could be accomplished using functionality embodied within software executing on system console 95.
- a console program such as the Single Point of Operations console application commercially available from Unisys Corporation may be used to automatically select or modify the configuration. This type of automated configuration modification may occur at predetermined times of the day or based on monitored system conditions. For instance, one configuration may be selected for executing processing tasks in batch mode during the evening, whereas a second configuration may be selected to support a transaction-processing environment during the workday.
- the ceiling and baseline performance levels may transition to default values such as the performance levels that are specified by a different key (508). For example, if a long-term key has been registered with the system at the time a short-term key expires, the system may transition to performance levels specified by that long-term key. This transition may occur automatically under the control of SCPF 90 and system control software, or may be performed manually by the customer after a warning message has been issued regarding the termination of the optional key. In one embodiment, if another key has not been registered on the system when key expiration occurs, system execution will halt until the customer obtains another key. [0113] The customer may also obtain a different key when performance requirements change (510).
- FIG. 6 is a flow diagram illustrating one embodiment of a method of allocating the ceiling performance levels to one or more partitions in the manner discussed above. This method may be performed using system control software 96 in conjunction with SCPF 90, as discussed in reference to Figures 4B and 4C.
- a ceiling, or "maximum available” performance level is obtained by purchasing an authorization key (600). This performance level may be specified in
- a partition is created having at least one enabled IP (601). Some or all of the ceiling performance level is allocated to the partition (602). The configuration of the partition, including the number and location of the enabled IPs, is then used to determine the maximum possible performance of the partition (604). This can be accomplished using one or more tables such as the table shown in Figure 4A. A scaling factor may then be calculated for the ceiling performance level of the partition (606), as follows:
- Ceiling scaling factor (allocated ⁇ erformance)/(maximum performance level of the partition).
- the ceiling scaling factor is used to scale the maximum performance of the IPs within the partition, as discussed in regards to Figure 7A.
- the scaling factor may optionally be determined whether the scaling factor is below a predetermined minimum level (608). As discussed above, in some systems, accurate performance scaling cannot be performed if an IP is running below a predetermined minimum performance level. In one embodiment, the predetermined minimum level used during this verification step may be programmably selected.
- the scaling factor is below a predetermined minimum value, one or more IPs may be disabled within the partition (610).
- a new scaling factor is derived by again consulting the look-up table to determine the new maximum performance level of the partition, then calculating the new scaling value, as shown in steps 604 and 606. If the scaling factor is again below the predetermined minimum level (608), the process is repeated until the scaling factor exceeds the minimum value. The scaling factor may then be used to scale performance of each
- the user may optionally create another partition having at least one IP (618).
- Some or all of the remaining ceiling performance level may be allocated to the additional partition, and the process may be repeated, as shown by arrow 622.
- SCPF 90 will automatically allocate all of the remaining ceiling performance level to that partition.
- the process of Figure 6 may be repeated for more than two partitions, so long as the sum of the ceiling performance levels allocated to all partitions does not exceed the maximum performance level provided by the authorization key.
- the foregoing method describes allocation of a ceiling performance level to the various partitions. It will be understood that a similar method may be employed to allocate a performance level specified by a governed limit to the partitions. As discussed above, if a governed limit is selected, this limit will be used instead of the ceiling level to throttle IP performance. Allocation of a portion of a governed limit to a partition may be accomplished manually by an operator selection. Alternatively, the system may automatically allocate portions of the governed limit to the existing partitions so that the relative performance between these partitions does not change, as discussed above. Throttling of IP performance is discussed in reference to the remaining drawings.
- Figure 7 A is a flow diagram of one embodiment of scaling and monitoring the performance level of an IP in a partition according to the current invention.
- the scaling operation may be controlled by SCPF 90 or some other entity in any of the ways discussed above.
- Tf and Ti are defined for the IP (702).
- Tf accumulates time that is spent in the forced idle state, and is used to keep the performance of the IP below the ceiling performance level.
- Ti accumulates all idle time for the IP, including forced idle and natural idle times, and is used in calculating the utilized performance of the partition, as will be described in Figure 7B.
- Another variable called "elapsed time” is defined to store the time that has elapsed since the start of metering. When metering is initiated, the Tf and Ti accumulators are cleared, and the elapsed__time is set to zero (704). Thereafter, SCPF records the passage of time in the variable elapsed ime using the system clock as the reference.
- the dispatcher is a process that allocates the processing resources of an IP to tasks that are queued for execution, usually according to a priority mechanism. The details associated with task prioritization is beyond the scope of the invention. It is only important to appreciate that the dispatcher regards the processing of tasks as "work”, and the absence of eligible tasks as "natural idle”. [0125] When the dispatcher is determining whether work is available to be processed, it must first check to make sure that the IP's performance level is being kept below the purchased ceiling performance level (706).
- the dispatcher determines whether the portion of time spent in a forced idle state thus far during the elapsed time period is less than that dictated by the ceiling scaling factor, as follows: Tf/ elapsed time ⁇ 1 - ceiling scaling factor ?
- the IP enters the forced idle state, repeatedly using the system clock to update Tf and Ti (708). The process periodically returns to step 706 to check Tf against the ceiling scaling factor, and the process is repeated until sufficient time has been spent in the forced idle state. [0127] Once sufficient forced idle state Tf has been accumulated, the IP determines whether there is any work to be performed (710). If one or more tasks are awaiting execution, a task is selected and the task's execution environment is established. After a task is identified for execution, various IP registers must be initialized using environment data stored when the task was last executed by the IP.
- this type of data may be stored within a stack entry or some other storage structure in memory. If this is not a trusted system task, the IP's quantum timer is initialized for use in interrupting the task, if necessary, to ensure that control will be returned to the OS after a maximum quantum of time allotted to the task has expired. The IP proceeds to execute the task's instructions. The task will be executed until it requires some service from the OS, the task completes, or an interrupt occurs. Such an interrupt may be received because of expiry of the quantum timer or the completion of an input/output (I/O) request (712). Any of these events may result in the same or other tasks being queued for execution. Eventually, the IP will return to the dispatcher, looking again for the highest priority work to process (706), and the sequence is repeated.
- I/O input/output
- the IP enters the natural idle state (714). The time at which this state is entered is recorded for later use. While in this state, the IP executes an instruction sequence that has minimal effect on the efficiency of the rest of the system's components.
- the IP is able to detect hardware interrupts, such as the completion of an I/O request. The IP can also detect whether work is available for processing. Time spent in the idle state is not regarded as utilization of the IP.
- the interrupt handler determines whether the IP had been in the natural idle state. If so, the time spent in this state is added to the accumulator Ti (718). The interrupt handler processes the interrupt, possibly queuing a task for execution. [0130] Next, the IP returns to the dispatcher, as indicated by arrow 720. The IP will determine whether any forced idle is required to keep performance below the ceiling, before it selects any task for execution, and the process is repeated.
- FIG. 7 A illustrates the process employed by an IP to accumulate time spent in any idle state, Ti. This indicates when the performance of an IP is not being utilized. Periodically, the Ti accumulators for all IPs within a partition are monitored to determine the utilization of the partition. This is described in reference to Figure 7B. [0133] The foregoing process is described as being performed on a single IP.
- FIG. 7B is a diagram illustrating a process for determining the utilization of a partition. This process may be performed by SCPF 90, or another software entity.
- a recording interval, Tr is defined (740). This interval may be a fixed time period determined in advance by the system provider, or may be a variable parameter that is controlled by the performance key delivered to the customer or controlled in some other mechanism. In the current embodiment, the recording interval Tr is set to one minute. Other intervals may be utilized in the alternative.
- Tr x number of processors in the partition.
- Partition utilized performance partition maximum performance x (utilized time for the partition / total recording time).
- This provides the utilized performance for the partition (752). For example, if the configuration were rated at 300 MIPS and the partition was idle for 20% of the time, then utilized performance for the partition over the time Tr would be 300 MIPS x 0.8, or 240 MIPS. The utilized performance for the partition is recorded and time-stamped for use, as discussed below in Figure 8.
- Figure 8 is a flow diagram describing the manner in which the utilization times for all partitions controlled by a single partitionable key are averaged. This process may be performed by SCPF 90, or another software entity residing within MSU 10 or some other memory included in, or coupled to, the system of Figure 1. Alternatively, this process may be performed by a software entity residing on billing authority system 98, or another system coupled to the system of Figure 1.
- the utilization times for all partitions controlled by a single partitionable, metered key are accumulated and averaged over a period of time Ta.
- Ta may be any integer multiple of the recording period (800).
- the recording period and the averaging period are the same, but this relationship may be changed to reflect the system provider's financial arrangements with its customers. For example, it may be noted that the customer is billed for the utilization "peaks" that exceed a baseline. A longer averaging period will tend to smooth out the utilization peaks and valleys, resulting in a lower excess utilization over a typical business day in a manner that is favorable to the customer. Therefore, competition among system providers may result in a lengthened averaging period.
- a time period Ta that will be an integer multiple of the recording period.
- the system utilized performance is calculated. That is, for each time period Tr, the utilization of each of the partitions within the system during that time period are added (802). The utilized performance of the system is then averaged over the averaging period Ta (804). This is accomplished by adding the system utilized performance values for each time period Tr included within the averaging period, then dividing by the number of time periods Tr within the averaging period Ta as follows:
- Averaged system utilized performance ( ⁇ system utilized performance for each time period Tr in Ta) / (Number of time periods Tr in Ta)
- the resulting averaged system utilized performance is expressed in MIPS or some other comparable unit of measure. This value may be used to calculate excess system utilized performance, which is defined as the amount the averaged system utilized performance exceeds the baseline performance level during Ta (806). If the averaged system utilized performance does not exceed the baseline performance level, the excess system utihzed performance is recorded as being zero.
- Consumption is described in units of "Performance Level x Time", such as "MlPS-Seconds".
- consumption is derived by multiplying a utilized performance level by a period of time.
- the averaged system utilized performance is multiple by time Ta (808).
- excess consumption during time Ta is derived by multiplying excess system utilized performance by time period Ta (810).
- the customer is to be billed for excess consumption during any of the averaging periods.
- the customer may be billed for average consumption rather than the peaks exceeding the baseline. In this case, it may be sufficient to monitor system consumption without regard to excess consumption.
- One or both of the consumption calculations are recorded for later use (812).
- these values are recorded in protected memory or some other storage device residing at the customer's location, the system provider's site, or any other suitable place that cannot be write-accessed by the customer. The manner in which these values are used is discussed below in reference to Figure 9.
- the embodiment described in reference to Figure 8 discusses an arrangement wherein the entire system is controlled by a single partitionable metered key.
- the customer may choose to use this key for a single partition, or subdivide the system into multiple partitions.
- the metering process accumulates the performance utilization from multiple partitions, using the time-stamps to ensure that the figures are synchronized, as shown in step 802 of Figure 8.
- the system provider l may decide to offer certain workload environments at different prices.
- a customer may purchase a production key to be used during the execution of day-to-day processing tasks, and a development key that is used for the development of software.
- the production key may be purchased at full price, whereas the development key may be obtained at a discounted price.
- Each of these keys may be partitioned.
- the metering process of Figure 8 is performed for each key separately based on the utilization measurements obtained for the partitions that are associated with the key. Separate consumption calculations are reported to a billing authority for each key so that respective financial calculations may be derived. In another example, the process could be extended to cover all of the systems included within a family or a cluster at the customer's installation.
- Figure 9 describes the reporting of consumption metrics to the customer and to the system provider's billing authority. As discussed above in reference to Figure 8, excess consumption, and optionally, system consumption, metrics are recorded and time-stamped for each averaging time period Ta.
- the excess consumption values, and optionally, the system consumption values that were recorded during any time period Ta included within Tb will be obtained for billing purposes (900).
- the billing period Tb is one month, but it could instead be defined as one week, two weeks, a quarter, or any other convenient time period.
- reporting could occur in real time, as often as the consumption metrics are recorded (Tr), or at any other multiple of Tr, in order for the billing authority to have a more current view of potential revenue.
- the excess consumption values for all time periods Ta included within time period Tb are added to obtain the total excess consumption during time period Tb (902).
- system consumption for all time periods Ta may be added to obtain system performance for time period Tb.
- This excess consumption, and optionally, system consumption are reported to the system provider's billing authority via some secure electronic or manual process (904). For example, it could be transferred over a network 100 ( Figure 1) such as the Internet using encryption technology. This data could then be retained on billing authority system 98. In another embodiment, the transfer could occur manually. For instance, the" customer could send the data on a tape, disk, or some other suitable medium. In still another embodiment, the unprocessed recorded values may be transferred to the provider for calculation of the performance consumption by billing software 99.
- the customer may request a report on the excess consumption used thus far during a current billing period time.
- the customer will receive a report based on the sum of all excess consumption recordings since expiration of the last billing period (906).
- the customer can also review, but not alter, the detailed records that were used to generate the report.
- the billing authority provides the customer with a bill for the excess consumption at some predetermined rate. This bill may be generated by billing software 99 ( Figure 1), for example. The rate is expressed in "Dollars/ (MlPS-Seconds)" or a similar unit (908).
- the customer may be billed for the system consumption occurring during time Tb, rather than the excess consumption.
- the foregoing approach may be used to scale performance levels on a short-term, or a more long-term, basis.
- the customer is allowed to lower the ceiling performance level at any time during the billing period. This change may be programmably selected by the customer, or may be updated by the service provider upon customer request. The next billing period will include any necessary charges for the modified performance level. After activation, the new performance level is used to monitor system performance for billing purposes in the manner discussed above.
- the customer may utilize a governed limit to throttle system performance, as discussed above.
- the governed limit may be set to the baseline level so utilized performance will not exceed the prepaid level. Thus, the customer will not incur any additional "pay-as-you-go" charges. It may be noted that it is possible for the customer to lower the ceiling performance level below the baseline. However, in practice, this would probably not be done since the customer has already paid for a performance level up to the baseline level. In one embodiment, if the customer attempts to lower the ceiling below the baseline, an informational warning message is provided. After the governed limit is selected in the foregoing manner, the customer may choose to raise it to any level up the ceiling performance specified by the licensed key.
- the customer may also change baseline levels during the billing period. However, since baseline levels are pre-paid and recorded in the performance key, this would involve issuing the customer a new performance key and billing the customer at the time a baseline level is increased on a prorated basis that takes into account the time remaining in the billing cycle.
- the monitoring and averaging methods illustrated in Figures 6 through 8 may be utilized without ceiling and/or baseline levels. That is, the baseline level may be set to zero, and/or the ceiling level may be set to 100 percent of the configuration's maximum performance. If a baseline level is set to zero, the customer is not pre-charged for any processing time, and instead is on a strictly "pay-as-you" go plan. If a ceiling level is set to 100 percent, IP performance is not throttled.
- the monitoring method of Figures 7A and 7B may be used to obtain statistics on system usage in addition to, or instead of, being employed for deriving billing data.
- a periodic billing report is generated with an attachment which provides details of the body of the billing report.
- the term report is defined as a body of data with or without one or more attachments. Therefore, any attachment may be considered part of a report.
- Associated with each e-mail metering utilization report may be an attached file that represents the data shown in the email reporting message. In this instance, the attachment is part of the overall report. This attachment may also contain hourly metering update information for applications that are designed to permit the tracking of usage trends.
- the attached file may be a comma separated value (CSV) file, but other formats are equally possible.
- CSV file format is a format that can be easily imported into spreadsheet applications and can easily be used with other industry standard software tools.
- Figure 10A and 10B is an exemplary CSV format attachment that has been imported into a standard spreadsheet.
- column A is used for section and line identification.
- An operating system such as the Master Control Program (MCPTM) available from Unisys® Corporation, may use this column to traverse the file during file creation and update.
- MCPTM Master Control Program
- the CSV file may be formatted as shown in the exemplary embodiment of Figure
- the first section 1010 may be used by a billing application. This section 1010 may be used for "continuation" information to determine when the file should be reinitialized and when metered data should be updated.
- the field labeled CONT1 is the report version and the length of the report in bytes.
- the field CONT2 is a representation of the saved start date&time and the current date&time.
- the field CONT3 entries provide values for individual partitions to use to determine if updated metered entries should be included in the "update" section 1050 of Figure 10B.
- the number of CONT3 entries is related to the number of keys that have been used that month and the number of metering partitions under these keys.
- the "system” section 1020 contains two heading lines (SYSH1, SYSH2) followed by system data (SYSl, SYS2, SYS3) that reflects system metering information returned in the header portion of the email report.
- the time indicated for SYSl reflects the prior report date&time; for SYS2 reflects the current date&time, for SYS3 reflects the next report date&time.
- the "summary" section 1030 contains two to three heading lines;
- the header portion may be followed by individual metered utilization summary rows; SUM1, SUM2, SUM3. These values may directly be reflected in the email report.
- SUM1 reflects interim utilization that has a projected component which is used for monthly usage estimation.
- the field SUM2 may be used for non-metering partitions.
- the field SUM3 reflects actual billable utilization. For monthly-type reports, there may be no SUM1 or projected-type entries because monthly-type reports may only indicate actual and not projected usage.
- columns B-E are used to identify metered utilization contract identification items. This organization allows these columns to be associated with one contract price.
- the utilization columns of section 1030 represent month-to-date values that may be displayed in the meter report. This section 1030 may be used to generate a specific bill using billing software at the billing facility linked by the e-mail destination address. This section, 1030, ends with a SUMFIN field that acts as an end marker.
- the "previous" section 1040 and the “update” sections 1050 contain cumulative metered utilization values. Headings from sections 1030, 1040, and 1050 reflect the same types of data so that consistent comparisons can be made between the three sections. However, the values in sections 1040 and 1050 are cumulative values and differ from the section 1030 month to date values. Section 1040 represents the basis, that is, the values at the previous report date or initial values for a new key. Section 1050 ( Figure 10B) has the hour-by-hour metered utilization information. Data lines are either PREV1 (section 1040) or UPD1 (section 1050). Because the utilization values are cumulative, the differences between matching partition images should be calculated to find utilization across that interval.
- Section 1050 contains the digital signature used to ensure data integrity.
- a customer may request a report on the consumption of processor power.
- a customer may use an operators console and enter commands or access API's that enable the customer to obtain, via en e-mail report, data that is normally available as part of a monthly or interim-type of report.
- This report may also include the detailed power consumption data provided in an attachment to the e-mail file.
- the customer query of the metering system for his partitioned computer system may include a description of the keys installed on the machine, the currently running partition where the query request is being made, baseline, ceiling and governor settings, and cumulative and hourly usage information. The usage information may be as presented in Figures 10A and 10B.
- a customer may gain an insight into his system usage and may use the attached information to plot and predict usage.
- a CSV file format may be provided for the attached information such that the customer may use standard software tools to extract any usage data and provide any type of usage analysis that the customer desires.
- the preferred embodiment discussed above utilizes performance-based keys to implement the ceiling and baseline performance levels, this is not required.
- the performance levels could be specified by providing information similar to that illustrated in the keys of Figures 2A and 2B, above. For example, a key could specify a baseline level utilizing any four processors running at fifty percent, and a ceiling level using any four processors executing at eighty percent.
- the key identifies specific IPs for use, rather than allowing the customer to identify the IPs that will be enabled.
- the scaling factors are not obtained by allocating performance levels to partitions, as shown in Figure 6.
- the scaling factors for the baseline and ceiling are those provided in the key. In the foregoing example, these scaling factors would be fifty and eighty percent, respectively. Metering can be accomplished using these scaling factors in a manner similar to that shown in Figures 6 through 9. It will be recognized that these embodiments have some of the limitations discussed above in reference to Figures 2A and 2B, however. For instance, these configurations do not take into account performance characteristics associated with a chosen configuration. Additionally, these embodiments do not allow for system reconfiguration as needed to accommodate failures or adjust for workload types.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Supply And Distribution Of Alternating Current (AREA)
Abstract
Description
Claims
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/744,685 US20050138422A1 (en) | 2003-12-23 | 2003-12-23 | System and method for metering the performance of a data processing system |
| US55721604P | 2004-03-29 | 2004-03-29 | |
| US10/895,176 US7311282B2 (en) | 2002-03-25 | 2004-07-20 | Housing for information storage medium and method using same |
| PCT/US2004/042484 WO2005064472A2 (en) | 2003-12-23 | 2004-12-17 | System and method for metering the performance of a data processing system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP1700217A2 true EP1700217A2 (en) | 2006-09-13 |
Family
ID=34743726
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP04814637A Withdrawn EP1700217A2 (en) | 2003-12-23 | 2004-12-17 | System and method for metering the performance of a data processing system |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP1700217A2 (en) |
| WO (1) | WO2005064472A2 (en) |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CH659143A5 (en) * | 1983-02-01 | 1986-12-31 | Minibit Ag | PROGRAM TAXING DEVICE FOR COMPUTING SYSTEMS. |
| JP4143283B2 (en) * | 2001-09-12 | 2008-09-03 | 株式会社日立製作所 | Computer processing performance change device |
| GB2366891B (en) * | 2001-12-06 | 2002-11-20 | Appsense Ltd | Improvements in and relating to computer apparatus terminal server apparatus & performance management methods therefor |
| WO2003067480A1 (en) * | 2002-02-07 | 2003-08-14 | Thinkdynamics Inc. | Method and system for managing resources in a data center |
-
2004
- 2004-12-17 WO PCT/US2004/042484 patent/WO2005064472A2/en not_active Ceased
- 2004-12-17 EP EP04814637A patent/EP1700217A2/en not_active Withdrawn
Non-Patent Citations (1)
| Title |
|---|
| See references of WO2005064472A3 * |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2005064472A3 (en) | 2006-05-26 |
| WO2005064472A2 (en) | 2005-07-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20050138422A1 (en) | System and method for metering the performance of a data processing system | |
| US8374929B1 (en) | System and method for billing for hosted services | |
| US20050138168A1 (en) | System and method for metering the performance of a data processing system | |
| US6463457B1 (en) | System and method for the establishment and the utilization of networked idle computational processing power | |
| US8346591B2 (en) | Automating responses by grid providers to bid requests indicating criteria for a grid job | |
| JP6530471B2 (en) | Burst mode control | |
| US7739155B2 (en) | Automatically distributing a bid request for a grid job to multiple grid providers and analyzing responses to select a winning grid provider | |
| US20130346227A1 (en) | Performance-Based Pricing for Cloud Computing | |
| US8689227B2 (en) | System and method for integrating capacity planning and workload management | |
| US12387156B2 (en) | Quantifying usage of disparate computing resources as a single unit of measure | |
| CN111480145A (en) | System and method for scheduling workloads according to a credit-based mechanism | |
| US20120072318A1 (en) | Mechanisms for Executing a Process in a Cloud Computing Environment | |
| WO2001014961A2 (en) | System and method for the establishment and utilization of networked idle computational processing power | |
| JP2001325041A (en) | Computer resource utilization method and system | |
| JP2003029989A (en) | Distributed processing system and job distributed processing method | |
| US20110145612A1 (en) | Method and System to Determine and Optimize Energy Consumption of Computer Systems | |
| JP5868442B2 (en) | Conclusion to causal program execution capacity modification, and dynamic modification of program execution capacity | |
| US20060155555A1 (en) | Utility computing method and apparatus | |
| EP1700217A2 (en) | System and method for metering the performance of a data processing system | |
| Risch et al. | Economics-Aware Capacity Planning for Commercial Grids |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20060718 |
|
| AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU MC NL PL PT RO SE SI SK TR |
|
| AX | Request for extension of the european patent |
Extension state: AL BA HR LV MK YU |
|
| PUAK | Availability of information related to the publication of the international search report |
Free format text: ORIGINAL CODE: 0009015 |
|
| DAX | Request for extension of the european patent (deleted) | ||
| RBV | Designated contracting states (corrected) |
Designated state(s): DE GB |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
| 18D | Application deemed to be withdrawn |
Effective date: 20110701 |