1. Technical Field
This invention generally relates to data processing, and more specifically relates to utilization of resources in a computer system.
2. Background Art
Since the dawn of the computer age, computer systems have evolved into extremely sophisticated devices that may be found in many different settings. Computer systems typically include a combination of hardware (e.g., semiconductors, circuit boards, etc.) and software (e.g., computer programs). As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
One problem with computer systems today is balancing the cost of the computer hardware with fluctuating demands on computer resources. In most networked computer systems, there are times when the computing demands are relatively low, and other times when the computing demands are very high. If a company purchases a computer system that is capable of meeting peak demand, much of the capacity of the computer system will go unused during non-peak times. In addition, purchasing capacity to meet peak demand is costly. If a company purchases a computer system that is capable of meeting average demand, the cost is lower, but the performance of the computer system suffers during peak times.
One way to provide a more flexible solution allows a computer user to buy a computer system that has some resources installed, but initially disabled. When the customer determines that more capacity is needed, the customer may enter into an arrangement with the provider of the computer system to enable certain resources for a fixed period of time. This works out particularly well for companies that have seasonal peaks. The companies can purchase a computer system at a reasonable cost that has the capability of providing enhanced computing power during the peak season. The concept of providing temporary capacity on demand is the subject matter of the related patent application “Method to Provide On-Demand Resource Access”, Ser. No. 10/406,652, filed on Apr. 3, 2003.
Referring to
A simple example will show the usefulness of method 200. Let's assume that a company that sells goods via catalog sales experiences peak demand in November and December of each year due to holiday shopping. The company could purchase a computer system that has one or more additional processors that are installed but initially disabled. The company may then contract with the provider of the computer system to enable the additional processor(s) for a set period of time. Let's assume that the computer system has two additional processors, and let's assume that the peak buying period runs for the thirty day period from November 15th to December 14th. The customer could purchase sixty processor-days of additional capacity beginning on November 15th. These two additional processors will then be enabled for the thirty day period (providing the sixty processor-days of additional capacity). Once the sixty processor-days have elapsed, the two additional processors are disabled.
One problem with method 200 is the customer pays for the resource-time even though the resources may be used only a fraction of that time. For example, if the additional processors are used primarily during the eight hour day shift, the customer ends up paying for capacity that goes mostly unused during the other two shifts. In the example above, if the customer purchases sixty processor-days, and two processors are being enabled, these two processors are enabled for exactly thirty days regardless of workload during that time. While this is a vast improvement over previous systems that do not provide temporary capacity on demand, it still charges the customer for processor capacity that may go unused.
Another known way to charge for resource-time is to provide a fixed increment of resource-time, and to bill for the increment when each additional resource is used. For example, in many computer systems, a fixed number of base processors are defined to provide a baseline capacity, and additional processors may be put into service on-demand. Additional processors may be in a shared pool, and may be used at any time. Now the question becomes how to bill the customer for the use of additional processors. One prior art method 300 for charging a customer for the use of additional processors is shown in
Prior art method 300 is preferably performed at defined time intervals (or time slices), such as once per minute. Prior art method 300 also assumes that the customer is charged in a defined resource-time increment, such as one processor-day. With these assumptions, the processor usage is monitored for each time slice, and if the processor usage exceeds the capacity provided by the base processors, an additional charge is made in step 360 for a full processor-day. Of course, if the processor usage in the next time slice exceeds the capacity provided by the base processors, no additional charge will be made for this processor because a full processor-day was charged in the previous time slice, so the additional processor is considered BILLED until the processor-day expires.
Charging a customer for a defined resource-time the first time that resource is used is a much better approach than charging the customer for a fixed resource-time regardless of whether or not the resource is used. However, even this approach results in billing the customer for time that may not actually be used, because a resource may be enabled for a full resource-time increment even though it is seldom used during that time increment. Without a way for billing a customer for resources in a manner that more accurately reflects actual usage, the computer industry will continue to suffer from inefficient ways of billing for temporary resources.
An apparatus and method provide the capability of metering temporary capacity on demand in a computer system in a way that allows one resource to benefit from unused billed capacity of a different resource. The actual use of a selected resource is monitored. When the selected resource is actually used, before charging the customer for the resource, a check is made to see if there is unused billed capacity of another resource that may be used by the selected resource. If so, the unused billed capacity of the other resource is “stolen” and used by the selected resource. If there is no unused billed capacity of another resource, a resource-time increment is billed for the use of the selected resource.
The foregoing and other features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings.
The preferred embodiments of the present invention will hereinafter be described in conjunction with the appended drawings, where like designations denote like elements, and:
Referring to
Main memory 120 contains data 121, an operating system 122, and a capacity manager 123. Data 121 is any data that may be read or written by any processor 110 or any other device that may access the main memory 120. Operating system 122 is a multitasking operating system, such as OS/400, AIX, or Linux; however, those skilled in the art will appreciate that the spirit and scope of the present invention is not limited to any one operating system. Any suitable operating system may be used. Operating system 122 is a sophisticated program that contains low-level code to manage the resources of computer system 100. Some of these resources are processor 110, main memory 120, mass storage interface 130, display interface 140, network interface 150, and system bus 160.
Capacity manager 123 provides metered capacity on demand using an accounting method that allows one resource to use unused billed time of a similar resource. The capacity manager 123 includes a metered resource mechanism 124 that implements the accounting method of the preferred embodiments.
Computer system 100 utilizes well known virtual addressing mechanisms that allow the programs of computer system 100 to behave as if they only have access to a large, single storage entity instead of access to multiple, smaller storage entities such as main memory 120 and DASD device 155. Therefore, data 121, operating system 122, and capacity manager 123 are shown to reside in main memory 120, those skilled in the art will recognize that these items are not necessarily all completely contained in main memory 120 at the same time. It should also be noted that the term “memory” is used herein to generically refer to the entire virtual memory of computer system 100.
Processor 110 may be constructed from one or more microprocessors and/or integrated circuits. Processor 110 executes program instructions stored in main memory 120. Main memory 120 stores programs and data that processor 110 may access. When computer system 100 starts up, processor 110 initially executes the program instructions that make up the operating system 122.
Although computer system 100 is shown to contain only a single system bus, those skilled in the art will appreciate that the present invention may be practiced using a computer system that has multiple buses. In addition, the I/O interfaces that are used in the preferred embodiment each may include separate, fully programmed microprocessors that are used to off-load compute-intensive processing from processor 110, as in iSeries input/output processors, or may be simple industry standard I/O adapters (IOAs).
Display interface 140 is used to directly connect one or more displays 165 to computer system 100. These displays 165, which may be non-intelligent (i.e., dumb) terminals or fully programmable workstations, are used to allow system administrators and users to communicate with computer system 100. Note, however, that while display interface 140 is provided to support communication with one or more displays 165, computer system 100 does not necessarily require a display 165, because all needed interaction with users and other processes may occur via network interface 150.
Network interface 150 is used to connect other computer systems and/or workstations (e.g., 175 in
At this point, it is important to note that while the present invention has been and will continue to be described in the context of a fully functional computer system, those skilled in the art will appreciate that the present invention is capable of being distributed as a program product in a variety of forms, and that the present invention applies equally regardless of the particular type of computer readable signal bearing media used to actually carry out the distribution. Examples of suitable signal bearing media include: recordable type media such as floppy disks and CD RW (e.g., 195 of
The preferred embodiments apply to metering of temporary resources in any computer system, including computer systems that have multiple logical partitions. Temporary resources (such as processors) are typically made available in a group known as a “pool” in a logically partitioned computer system. Any logical partition may use any processor in the pool of available processors. In a logically partitioned computer system, accounting for resource usage requires summing resource usage across logical partitions. The preferred embodiments provide an effective way to account for metered resources in a logically partitioned computer system because the preferred embodiments operate on the aggregate total of resource usage across all logical partitions.
The preferred embodiments herein discuss processors as one particular example of a metered resource, but expressly extend to any and all computer system resources that may be metered.
Referring now to
An example is now presented to show how the metered resource accounting of the preferred embodiments differs from the metered resource accounting known in the art. The graph of
At time period T15, one extra processor is again required, so another processor-day is billed for the first extra processor at 1E. At time period T16, two extra processors are required, so a processor-day is billed for the second extra processor at 2C. At time period T17, three extra processors are required, so a processor-day is billed for the third extra processor at 3A. During time period T18, the processor-day at 2C expires, so another processor-day at 2D must be billed because two additional processors are still needed during T18. During time period T19, only one extra processor is needed, but the one processor-day window at 1E has already expired, so another processor-day for the first extra processor is billed at 1F. The total processor utilization during time period T20 drops below the baseline two processor level, but the processor-day at 1F has already been billed, so the extra capacity during T20 goes unused. During time period T21, one additional processor is needed. Note, however, that partway through T21, the window for 1F expires, which requires another processor-day at 1G to be billed. At time period T22, two extra processors are needed, so the second additional processor is billed for a processor-day at 2E. During time period T23, three additional processors are needed, so the third extra processor is billed for one processor-day at 3B in
The preferred embodiments improves upon the prior art method of billing for extra processors by looking to see if there is unused billed capacity for another processor that can be assigned to (or used) by a different processor. Referring to
At 830 in
The processor-days billed in
The specific examples presented herein refer to processors and processor-days by way of example of suitable computer system resources and resource-times. The preferred embodiments expressly extend to any suitable computer system resources and any suitable denomination of resource-time.
The methods herein refer to billing for a specified resource-time, such as a processor-day. Note that the preferred embodiments encompass any and all suitable billing systems. In one such system, the accumulated resource-time is billed to the customer by the computer system supplier. In a different such system, the billed resource-time is deducted from a prepaid amount. The term “bill” as used herein simply means that the customer becomes liable for payment for one resource-time unit, regardless of the specific arrangement for payment between supplier and customer.
One skilled in the art will appreciate that many variations are possible within the scope of the present invention. Thus, while the invention has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that these and other changes in form and details may be made therein without departing from the spirit and scope of the invention.
This patent application is a continuation of U.S. Ser. No. 10/753,519 filed on Jan. 8, 2004, which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | 10753519 | Jan 2004 | US |
Child | 12195929 | US |