A new model for purchasing a computer system has emerged in the computer industry, referred to as capacity-on-demand billing. According to this model, the customer agrees to purchase a computer system with a fixed baseline performance capability level based on a quantity of computer resources installed on the computer system (i.e., the number of Central Processing Units (CPUs), memory units, and/or Input/Output (I/O) modules, available in the computer system). In return, the manufacturer of the computer system agrees to install extra computer resources on the computer system at no upfront expense to the customer, and the customer is entitled to use the extra computer resources, but on a pay-per-use basis. Automated usage metering technology employed with the computer system detects when the customer's resource usage exceeds a threshold level, i.e., the fixed baseline performance capability level, and the customer is charged a usage fee for excessive usage over the threshold. Typically, the usage metering technology operates in the background recording computer resource utilization data and transmitting the data to a billing site for invoicing.
An advantage of the capacity-on-demand billing model is that it allows the customer to purchase a computer system with reserve capacity, but at no additional upfront costs. This means a customer may have additional resources instantly available during periods of high computing demand, but without the penalty of having to purchase extra computer resources that lay dormant during slower demand periods.
Ensuring the customer is accurately charged for using computer resources above an agreed threshold is a challenge with the capacity-on-demand billing model. For instance, some usage metering technologies rely on averaging methods that tend to record the resource utilization of a computer system over relatively long periods and often fail to account for the moment-by-moment operation of a typical computer system performing real-world tasks. For example, suppose a customer purchased a computer system with an agreed to maximum threshold of four CPUs, but in actuality, resident with the computer system are 16 CPUs. Now suppose that for three hours out of the day the customer uses 12 CPUs worth of processing power and for the remaining 21 hours the customer uses only two CPUs worth of processing power. If the usage metering technology uses an averaging method, it would appear that the customer only used 3.2 CPUs worth of CPU resources, which is well within the customer's baseline threshold of four CPUs. In reality, for three hours out of the day during peak usage, 12 CPUs were used and the customer should have been charged for using eight additional CPUs over their four base CPUs. In other words, but for the ability to use the additional CPU resources during peak usage times, the customer's work would not have been completed in a timely fashion, and the customer ought to have been charged for using extra resources, but was not in this scenario. Thus, a drawback with sampling usage data on an averaging basis is the likelihood that the metering usage tool may fail to capture short-lived events, and may produce results with a lower computer resource utilization level than actually occurring in a computer system.
To compensate for averaging problems, some usage metering tools attempt to collect system resource data metrics, such as CPU and I/O performance data, at high frequencies to accurately reflect system resource utilization. A drawback, however, of sampling performance data at high frequencies is a tendency to consume a substantial amount of system resources, which skews computer resource consumption measurements, is expensive, and burdensome.