US20040250250A1 - Reciprocity and stabilization in dynamic resource reallocation among logically partitioned systems - Google Patents

Reciprocity and stabilization in dynamic resource reallocation among logically partitioned systems Download PDF

Info

Publication number
US20040250250A1
US20040250250A1 US10/455,182 US45518203A US2004250250A1 US 20040250250 A1 US20040250250 A1 US 20040250250A1 US 45518203 A US45518203 A US 45518203A US 2004250250 A1 US2004250250 A1 US 2004250250A1
Authority
US
United States
Prior art keywords
determination
managed
responsive
virtual
virtual system
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.)
Granted
Application number
US10/455,182
Other versions
US7313796B2 (en
Inventor
Rick Hamilton
James Seaman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US10/455,182 priority Critical patent/US7313796B2/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HAMILTON II., RICK ALLEN, SEAMAN, JAMES WESLEY
Publication of US20040250250A1 publication Critical patent/US20040250250A1/en
Application granted granted Critical
Publication of US7313796B2 publication Critical patent/US7313796B2/en
Assigned to GOOGLE INC. reassignment GOOGLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INTERNATIONAL BUSINESS MACHINES CORPORATION
Assigned to GOOGLE LLC reassignment GOOGLE LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: GOOGLE INC.
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Definitions

  • the present invention is related generally to a method for increasing computer system efficiency and specifically to a computer program for optimizing resource reallocation in a logically partitioned environment.
  • a computer system is a collection of computer resources, such as processors, adapters, memory and the like, which work together to perform a specific task, and is well known in the art.
  • the computer system may be located in a single computer, such as a server, or in a plurality of computers, such as computer network.
  • System administrators (hereinafter, administrators) are people who setup and manage computer systems.
  • One of the tools used by administrators to increase the performance of a computer system is physical partitioning. Administrators physically partition a managed system by dedicating buses and predefined physical modules within the system to assist in creating the smaller partitioned systems, referred to as virtual systems.
  • Each virtual system in a managed system appears to the end user as a completely separate system. In addition, virtual systems improve administrative flexibility and application performance.
  • Logical partitioning is a process which creates logical partitions within the managed system.
  • Logical partitioning is distinct from physical partitioning in that there are no physically separated buses, memory, or processors in a logically partitioned system. Instead, the virtual systems are separated only by the system software. Similar to the physically partitioned system, each individual virtual system created by logical partitioning appears to the end user as a completely separate system.
  • One advantage of logical partitioning is that logical partitioning permits much finer granularity in virtual system creation, such that any processor, memory, or adapter may be easily added or removed from a virtual system.
  • Logical partitioning is generally controlled by a hardware management console outside of the managed system. The hardware management console controls the division of the managed system into the virtual systems and, if necessary, the reallocation of resources within the various virtual systems comprising the logically portioned environment.
  • the logical partitioning is known as dynamic logical partitioning.
  • the prior art methods of dynamic reallocation require the system administrator to recognize the need for reallocation, and then to manually reallocate the resources. For example, in a system comprising a first virtual system having eight central processing units (CPUs) and a second virtual system having eight CPUs, the system administrator may observe that during a peak processing period, the first virtual system is running at 100% CPU utilization and the second virtual system is running at 20% CPU utilization. Upon observing the disparity in CPU utilization, the administrator may manually move one or more processors from the second virtual system to the first virtual system to improve system performance during the peak processing period. Therefore, a need exists for a system and method to automate the control and movement of resources in a dynamic logical partitioning environment.
  • the prior art methods of dynamic reallocation require the system administrator to decide which donors to take resources from and which recipients to give resources to and then to implement the decision by manually moving resources.
  • the decision on what resources to move can be particularly difficult when there is only one donor and a plurality of recipients or there is only one recipient and a plurality of donors.
  • the administrator may inadvertently create virtual systems with demands so high that the system never donates any resources.
  • an administrator may inadvertently create virtual systems with requirements so low that they never receive any resources.
  • the priority of a virtual system may dictate that it must have a high demand (if a high priority system) or a low requirement (if a low priority system).
  • a managed system it is generally not considered preferable for a managed system to contain donor-only or recipient-only virtual systems because resources will either gravitate towards or away from these systems and the administrator will have to make continued decisions and manual resource reassignments. Therefore, a need exists for a method of determining whether a managed system has donor-only or recipient-only virtual systems and identifying methods for eliminating donor-only and recipient-only virtual systems.
  • Another way in which the administrator may have to make continued decisions is when the administrator inadvertently creates a cyclical reallocation condition known as managed system instability.
  • managed system instability For example, in a managed system containing two virtual systems, the administrator may identify that the first virtual system is heavily loaded while the second virtual system is not. Resources are then transferred from the second virtual system to the first virtual system. The reduction in resources on the second virtual system increases the workload on the second virtual system, while the increase in resources on the first virtual system decreases the workload on the first virtual system. When the next resource reallocation cycle occurs and the need for resources at the second virtual system is recognized, the resources are transferred from the first virtual system back to the second virtual system. The process of resource reallocation from one virtual system to another may cycle back and forth indefinitely if the administrator does not recognize the cyclic nature of the reallocation.
  • U.S. Pat. No. 4,603,382 (the '382 patent) entitled “Dynamic Buffer Reallocation” discloses a method for dynamically reallocating data storage segments within a storage device. The '382 patent monitors the properties of the data storage device and reallocates the buffer segments when they exceed a predefined threshold.
  • U.S. Pat. No. 5,875,464 (the '464 patent) entitled “Computer System with Private and Shared Partitions in Cache” discloses a partitioned cache memory buffer which monitors the allocation of tasks. The memory buffer of the '464 patent reallocates the tasks when necessary.
  • the invention which meets the needs stated above, is a method and system for achieving stability while reallocating resources in a logically partitioned environment.
  • the software embodiment of the present invention comprises a Performance Enhancement Program (PEP), a Classification Program (CP), a System Analysis Program (SAP), and a System Evaluation Program (SEP).
  • PEP Performance Enhancement Program
  • CP Classification Program
  • SAP System Analysis Program
  • SEP System Evaluation Program
  • PEP determines if a conditioning level is required and interfaces with CP, SAP, and SEP.
  • CP classifies each of the virtual systems in the managed system.
  • the virtual systems are classified based on their previous or expected workload.
  • the virtual systems are classified as either recipient-only (Ro), primarily recipient, but possibly donor (Rd), equally weighted as donor or recipient (RD), primarily donor, but possibly recipient (Dr), or donor-only (Do).
  • Managed systems configurations are classified according to the reciprocity of resource allocation and the overall symmetry of the managed systems. Possible managed system configurations include: fully reciprocal symmetric, fully reciprocal asymmetric, partially reciprocal symmetric and partially reciprocal asymmetric. The fully reciprocal asymmetric, partially reciprocal symmetric, and partially reciprocal asymmetric configurations do not require a conditioning period. The fully reciprocal symmetric configuration will only require a conditioning period when the managed system contains only RD systems.
  • SEP evaluates the configuration of the managed system and recommends alterations for improved performance of the managed system. SEP looks at the configuration of the managed system, and possibly the types of virtual systems contained within the managed system. SEP identifies the managed system configurations which do not allow for resource reallocation and recommends alterations for creating virtual systems which will be able to both donate and receive resources. SEP also identifies the managed system configurations which allow resource reallocation and recommends improvements when the amount of resource reallocation is suboptimal.
  • FD functional differentiator
  • the FD is a measure of how readily a virtual system will switch from being a donor to a recipient, or vice-versa.
  • a large FD is indicative of a stable system, but one that does not reallocate resources very well.
  • a small FD is indicative of a system that readily reallocates resources, albeit at some sacrifice in managed system stability.
  • the managed system will be optimized when the FD of the virtual systems is small enough to allow reallocation of resources without an unacceptable sacrifice in managed system stability.
  • FIG. 1 is an illustration of a computer network used to implement the present invention
  • FIG. 2 is an illustration of the memory used to implement the present invention
  • FIG. 3 is an illustration of the logic of the Performance Enhancement Program (PEP) of the present invention
  • FIG. 4 is an illustration of the logic of the Classification Program (CP) of the present invention.
  • FIG. 5 is an illustration of the workload distribution of an Rd classified system
  • FIG. 6 is an illustration of the workload distribution of a Ro classified system
  • FIG. 7 is an illustration of the workload distribution of a Dr classified system
  • FIG. 8 is an illustration of the workload distribution of a Do classified system
  • FIG. 9 is an illustration of the workload distribution of a RD classified system
  • FIG. 10 is an illustration of the logic of the System Analysis Program (SAP) of the present invention.
  • FIGS. 11A and 11B are an illustration of the logic of the System Evaluation Program (SEP) of the present invention.
  • capture interval means the interval at which statistics are collected on resource performance for various systems and may be any interval shorter than or equal to the sampling interval.
  • composite parameter means the average of the resource data accumulated over the sampling interval.
  • the average used to calculate the composite parameter may be the mean, median, mode, or norm. Smoothing criteria may optionally be used to determine the composite parameter. An example of smoothing would be removing the high and low values of the data collected during the sampling interval.
  • shall mean a machine having a processor, a memory, and an operating system, capable of interaction with a user or other computer, and shall include without limitation desktop computers, notebook computers, personal digital assistants (PDAs), servers, handheld computers, and similar devices.
  • PDAs personal digital assistants
  • conditioning interval means the period during which sampling statistics may or may not be collected, but no resource allocation will be made upon any sampling statistics collected until completion of the conditioning interval.
  • controlling entity means the computational device, either internal or external to the managed system, which manages the reallocation of resources. In a UNIX environment, this is known as the Hardware Management Console.
  • the term “donor” means a system which has a composite parameter less than the donor load threshold.
  • donor candidate means a system which is designated by a user as eligible to donate a resource to another system.
  • donor candidate pool means the group of all donor candidates.
  • donor load threshold means a specific performance parameter level below which a donor may provide a resource to a recipient.
  • donor pool means the group of all donors.
  • the term “functional differentiator” means the difference between the donor load threshold and the recipient load threshold for a particular system.
  • donor-only (Do) systems in which the recipient load threshold is infinite, a very large number, or undefined, the functional differentiator is infinite.
  • recipient- only (Ro) systems in which the donor load threshold is negative, zero, or undefined, the functional differentiator is also infinite.
  • the term “managed system” means a collection of hardware resources which work together to accomplish a specific task.
  • the resources may be located in a single computer or in a plurality of networked computers.
  • the managed system is generally composed of a plurality of virtual systems, or simply systems.
  • performance parameter means one or more parameters used to measure the workload on a resource. Performance parameters may include a combination of several individual performance parameters.
  • resource means a hardware component of a computer. Examples of resources are processors, adapters, and memory.
  • the term “recipient” means a system which has a composite parameter greater than the recipient load threshold.
  • the term “recipient candidate” means a system which is designated by a user as eligible to receive a resource from another system.
  • recipient candidate pool means the group of all recipient candidates.
  • recipient pool means the group of all recipients.
  • the term “recipient load threshold” means a specific performance parameter level above which a recipient may receive a resource from a donor.
  • resource class means a specific type of resource including without limitation processors, memory, adapters and any resource known to persons skilled in the art.
  • resource subclass means a specific category of resource class. If the resource class is adapters, then examples of the resource subclasses would include: gigabit ethernet, 10/100 ethernet, fibre channel, ATM, and FDDI. Persons skilled in the art are aware of other resource subclasses.
  • sampling interval means a moving or discrete window of time over which sample statistics are captured and which is equal to or greater than the capture interval. For example, if statistics are captured every five seconds for a five minute sampling interval, then sixty statistical samples would be available at the end of the sampling interval.
  • FIG. 1 is an illustration of computer network 90 associated with the present invention.
  • Computer network 90 comprises local machine 95 electrically coupled to network 96 .
  • Local machine 95 is electrically coupled to remote machine 94 and remote machine 93 via network 96 .
  • Local machine 95 is also electrically coupled to server 91 and database 92 via network 96 .
  • Network 96 may be a simplified network connection such as a local area network (LAN) or may be a larger network such as a wide area network (WAN) or the Internet.
  • LAN local area network
  • WAN wide area network
  • computer network 90 depicted in FIG. 1 is intended as a representation of a possible operating network that may contain the present invention and is not meant as an architectural limitation.
  • PEP 200 includes Classification Program (CP) 300 , System Analysis Program (SAP) 400 , and System Evaluation Program (SEP) 500 .
  • CP 300 Classification Program
  • SAP 400 System Analysis Program
  • SEP 500 System Evaluation Program
  • PEP 200 , CP 300 , SAP 400 , and SEP 500 can be stored in an external storage device such as a removable disk or a CD-ROM.
  • Memory 100 is illustrative of the memory within one of the computers of FIG. 1.
  • Memory 100 also contains resource data 102 .
  • the present invention may interface with resource data 102 through memory 100 .
  • the memory 100 can be configured with PEP 200 , CP 300 , SAP 400 , and/or'SEP 500 .
  • PEP 200 , CP 300 , SAP 400 , and/or SEP 500 can be stored in the memory of other computers. Storing PEP 200 , CP 300 , SAP 400 , and/or SEP 500 in the memory of other computers allows the processor workload to be distributed across a plurality of processors instead of a single processor. Further configurations of PEP 200 , CP 300 , SAP 400 , and/or SEP 500 across various memories are known by persons skilled in the art.
  • PEP 200 is a program which allows the user to designate performance enhancement criteria and interfaces with the other programs of the present invention.
  • the user described herein may be, for example, a system administrator.
  • PEP 200 starts ( 202 ) and the user selects at least one performance parameter for each resource class, and if necessary subclass ( 204 ).
  • the performance parameter is used by CP 300 to measure the workload on the resources.
  • the user then defines the capture interval and the sampling interval ( 206 ).
  • the capture interval and the sampling interval are used by CP 300 to develop resource data for resource reallocation.
  • the donor load threshold is used by CP 300 to determine the classification of the systems within the managed system. A heavily loaded donor will not donate resources unless its threshold value is set very high. Generally, high priority systems should have low donor load thresholds, and low priority systems should have high donor load thresholds.
  • the load threshold increases as system performance goes down, so that only a donor with a low load (i.e. relatively strong performance) may donate resources.
  • the donor load threshold may be set to provide whatever degree of flexibility is desired by the user. For example, if the resource is a processor, and the performance parameter is the run queue, the performance parameter limit might be set at three waiting items in the run queue. Thus, when a processor has less than three items in the run queue, the processor will be identified as a potential donor.
  • the user then defines the recipient load threshold ( 210 ).
  • the recipient load threshold is used by CP 300 to determine the classification of the systems. Generally, high priority systems should have low recipient load thresholds, and low priority systems should have high recipient load thresholds. A lightly loaded recipient will not receive resources unless its threshold value is set very low. As the load on the recipient system increases, the performance of the recipient system goes down, thus making the slow-running recipient candidate ripe for a resource addition. For example, if the resource is a processor, and the performance parameter is the run queue, the performance parameter limit might be set at four waiting items in the run queue. Thus, when a processor has more than four items in the run queue, the processor will be identified as a potential recipient.
  • PEP 200 then makes a determination whether a conditioning level is required ( 212 ).
  • a conditioning level may be required by SAP 400 in step 422 (See FIG. 10), by the user, or if there is not any performance data on the systems.
  • the length of the conditioning period is determined by the user. The user, being a person of ordinary skill in the art, will appreciate that increased conditioning periods allow for greater amounts of resource data to be collected for the virtual systems, while shorter conditioning periods will lead to smaller amounts of resource data. Similarly, greater conditioning periods will also lead to less resource reallocation, while shorter conditioning periods will lead to increased resource reallocation. If a conditioning level is not required, PEP 200 proceeds to step 216 . If a conditioning level is required, PEP 200 enters into a conditioning level ( 214 ).
  • the resource reallocation is temporarily suspended between the donors and the recipients.
  • PEP 200 then compiles the workload statistics for the resources in the donor pool and in the recipient pool ( 216 ). If the PEP 200 entered the conditioning period in step 214 , then there may be some overlap between the data in the workload statistics and the data obtained in the conditioning period. PEP 200 then runs CP 300 ( 218 ), SAP 400 ( 220 ), and SEP 500 ( 222 ). PEP 200 then makes a determination whether to continue the resource reallocation ( 224 ). If the user wants to continue resource reallocation, PEP 200 returns to step 212 . If the user does not want to continue resource reallocation, PEP 200 ends ( 226 ).
  • the virtual systems within the managed system are classified by CP 300 according to their readiness to donate and receive resources. Once the virtual systems have been classified, SEP 400 can classify the managed system configuration, and SAP 500 can recommend improvements in the managed system configuration.
  • FIG. 4 is a flowchart illustrating the logic of CP 300 .
  • CP 300 is a program which classifies the virtual systems within the managed system. CP 300 starts ( 302 ) when prompted by PEP 200 . CP 300 then analyzes the workload statistics from each system obtained in step 216 of PEP 200 and makes a determination whether the average workload is greater than the recipient load threshold ( 304 ). If the average workload is not greater than the recipient load threshold, then CP 300 proceeds to step 312 . If the average workload is greater than the recipient load threshold, then CP 300 makes a determination whether the system can donate resources ( 306 ). A system will be able to donate resources if the system's donor load threshold is greater than zero.
  • CP 300 classifies the system as an Rd system ( 308 ) and ends ( 324 ).
  • Rd is a shorthand notation for a system that is primarily a recipient, but possibly a donor.
  • An example of the workload distribution of an Rd system can be seen in FIG. 5. In FIG. 5, the average workload distribution is greater than the recipient load threshold and the donor load threshold is greater than zero.
  • CP 300 classifies that system as a Ro system ( 310 ) and ends ( 324 ).
  • a system will not be able to donate resources if the system's donor load threshold is either negative or undefined.
  • Ro is a shorthand notation for a system that is only capable of being a recipient and cannot possibly be a donor.
  • An example of the workload distribution of a Ro system can be seen in FIG. 6. In FIG. 6, the average workload distribution is greater than the recipient load threshold and the donor load threshold is undefined.
  • the donor load threshold for a Ro system may be either negative or undefined.
  • CP 300 makes a determination whether the average workload is less than the donor load threshold ( 312 ). If the average workload is not less than the donor load threshold, then CP 300 proceeds to step 320 . If the average workload is less than the donor load threshold, then CP 300 makes a determination whether the system can receive resources ( 314 ). A system will be able to receive resources if the system's recipient load threshold is defined as less than infinity or a similar very large number. If the system can receive resources, CP 300 classifies the system as a Dr system ( 316 ) and ends ( 324 ). Dr is a shorthand notation for a system that is primarily a donor, but possibly a recipient. An example of the workload distribution of a Dr system can be seen in FIG. 7. In FIG. 7, the average workload distribution is less than the donor load threshold and the donor load threshold is less than infinity.
  • CP 300 classifies that system as a Do system ( 318 ) and ends ( 324 ).
  • a system will not be able to receive resources if the system's recipient load threshold is infinite, a very large number, or undefined.
  • Do is a shorthand notation for a system that is only capable of being a donor and cannot possibly be a recipient.
  • An example of the workload distribution of a Do system can be seen in FIG. 8. In FIG. 8, the average workload distribution is less than the donor load threshold and the recipient load threshold is undefined.
  • the recipient load threshold for a Do system may be infinite, a very large number, or undefined.
  • CP 300 makes a determination whether the average workload is less than or equal to the recipient load threshold and greater than or equal to the donor load threshold ( 320 ). If the average workload is not less than or equal to the recipient load threshold or not greater than or equal to the donor load threshold, the CP 300 returns to step 304 . If the average workload is less than or equal to the recipient load threshold and greater than or equal to the donor load threshold, then CP 300 classifies the system as a RD system ( 322 ) and ends ( 324 ). RD is a shorthand notation for a system that neither donates nor receives resources. An example of the workload distribution of a RD system can be seen in FIG. 9. In FIG. 9. In FIG.
  • the average workload distribution is greater than the donor load threshold and less than the recipient load threshold. If the difference between the donor load threshold and the recipient load threshold is large, then the RD system will be reluctant to donate or receive resources. If the difference between the donor load threshold and the recipient load threshold is small, the RD system will freely donate and receive resources.
  • a managed system can be either fully reciprocal or partially reciprocal.
  • Full reciprocity means that all virtual systems can donate and receive resources to/from each other.
  • a fully reciprocal managed system is one that does not have any Do or Ro virtual systems.
  • Partial reciprocity means that there are one or more systems which cannot donate or receive resources.
  • a partially reciprocal managed system is one that contains a Do system, a Ro system, or both.
  • Fully reciprocal managed systems are more stable than partially reciprocal managed systems because resources tend to gravitate towards Ro systems and/or away from Do systems in a partially reciprocal managed system.
  • Do systems may be preferable if there is a system where the priority of the applications is much lower than the priority of the other applications running on the managed system.
  • Ro systems may be preferable if there is a system where the priority of the applications is much higher than the priority of the other applications running on the managed system.
  • Managed systems may also be classified according to their symmetry. Symmetry occurs when there is a both a Do and a Ro system, when there is both a Dr and an Rd system, or when there are only RD systems. Symmetric configurations are preferable to asymmetric configurations because symmetric configurations are more stable than asymmetric configurations. However, when designing and maintaining managed systems, the symmetry of the managed system is of lesser importance than the reciprocity of the managed system.
  • SAP 400 is a program which analyzes the managed system, determines the type of configuration, and determines whether reconfiguration is necessary.
  • SAP 400 starts ( 402 ) when prompted by PEP 200 .
  • SAP 400 then makes a determination whether the managed system contains a Ro system and/or a Do system ( 404 ). If the managed system does not contain either a Ro system or a Do system, then SAP 400 proceeds to step 412 . If the managed system contains a Ro system, a Do system, or both, then SAP 400 makes a determination whether both a Ro system and a Do system are present ( 406 ).
  • SAP 400 classifies the managed system as a partially reciprocal asymmetric configuration ( 408 ). For a partially reciprocal asymmetric configuration, a conditioning period is not necessary ( 424 ), and SAP 400 ends ( 426 ). Retuning to step 406 , if SAP 400 makes a determination that the managed system does contain both a Ro system and a Do system, then SAP 400 classifies the managed system as a partially reciprocal symmetric configuration ( 410 ). For a partially reciprocal symmetric configuration, a conditioning period is not necessary ( 424 ), and SAP 400 ends ( 426 ).
  • SAP 400 makes a determination whether the only systems present in the managed system are RD systems ( 412 ). If only RD systems exist in the managed system, then SAP 400 classifies the managed system as a fully reciprocal symmetric configuration ( 410 ). For a fully reciprocal symmetric configuration containing only RD systems, a conditioning period is necessary ( 422 ). A conditioning period is necessary to develop adequate workload statistics and prevent overly active resource reallocation. SAP 400 then ends ( 426 ). Returning to step 412 , if SAP 400 makes a determination that the managed system does not contain only RD systems, then SAP 400 makes a determination whether both Rd and Dr are present ( 414 ).
  • SAP 400 classifies the managed system as a fully reciprocal asymmetric configuration ( 416 ). For a fully reciprocal asymmetric configuration, a conditioning period is not necessary ( 424 ), and SAP 400 ends ( 426 ). Retuning to step 414 , if SAP 400 makes a determination that the managed system does contain both an Rd system and a Dr system, then SAP 400 classifies the managed system as a fully reciprocal symmetric configuration ( 418 ). For a fully reciprocal symmetric configuration containing both Rd and Dr systems, a conditioning period is not necessary ( 424 ), and SAP 400 ends ( 426 ).
  • the managed system can be described according to the types of systems contained in the managed system. For example, if a managed system contains some Rd systems, some RD systems, and some Dr systems, then the managed system can be described as an Rd-RD-Dr. If there are four configurations of managed systems (i.e.
  • Ro and Do There are two partially reciprocal configurations that will result in no resource reallocation: Ro and Do.
  • Ro-Do configurations reallocate resources so rapidly from the donor(s) to the recipient(s) that these managed systems are deemed to not reallocate resources.
  • Several others such as Ro-Dr and Do-Rd configurations are highly unstable, and therefore not preferable.
  • FIG. 11 a flowchart of the logic of SEP 500 is illustrated.
  • SEP 500 is a program which evaluates the managed system configuration and recommends alterations for optimizing performance of the managed system.
  • SEP 500 starts ( 502 ) when prompted by PEP 200 .
  • SEP 500 calculates the functional differentiator (FD) for each system in the managed system ( 504 ).
  • SEP 500 then makes a determination whether the managed system is classified as a fully reciprocal asymmetric configuration ( 506 ). If the managed system is not classified as a fully reciprocal asymmetric configuration, then SEP 500 proceeds to step 520 .
  • FD functional differentiator
  • SEP 500 makes a determination whether the managed system contains a Dr system ( 508 ). If the managed system does not contain a Dr system, then SEP 500 proceeds to step 514 . If the managed system does contain a Dr system, then SEP 500 queries the user to make a determination whether the system performance is acceptable ( 510 ). In making the determination of the acceptability of the system performance, the user may consider the total number of resources reallocated, the level of performance of at least one resource class or subclass, the level of performance of at least one system, and/or the performance of the managed system as a whole. If the user determines that the system is performing acceptably, then SEP 500 indicates that the managed system is optimized ( 516 ) and ends ( 542 ).
  • SEP 500 instructs the user to decrease the donor load threshold of at least one Dr system if the user wants to decrease resource reallocation, or decrease the recipient load threshold of at least one RD system if the user wants to increase resource reallocation ( 512 ). SEP 500 then ends ( 542 ).
  • SEP 500 queries the user to make a determination whether the managed system performance is acceptable ( 514 ). If the user determines that the system is performing acceptably, then SEP 500 indicates that the managed system is optimized ( 516 ) and ends ( 542 ). Returning to step 514 , if the user determines that the managed system is not performing acceptably, then SEP 500 instructs the user to increase the recipient load threshold of at least one Rd system if the user wants to decrease resource reallocation, or increase the donor load threshold of at least one RD system if the user wants to increase the resource reallocation ( 518 ). SPE 500 then ends ( 542 ).
  • SEP 500 makes a determination whether the managed system is a partially reciprocal asymmetric configuration ( 520 ). If the managed system is not a partially reciprocal asymmetric configuration, then SEP 500 proceeds to step 526 . If the managed system is a partially reciprocal asymmetric configuration, then SEP 500 makes a determination whether the managed system contains only Ro systems or only Do systems ( 522 ). If the managed system does not contain only Ro systems or only Do systems, then SEP 500 proceeds to step 532 . If the managed system contains only Ro systems or only Do systems, then the managed system will not reallocate resources and SEP 500 instructs the user to change at least one Ro system to an Rd system and/or change at least one Do system to a Dr system ( 524 ). SEP 500 then ends ( 542 ).
  • SEP 500 makes a determination whether the managed system is a partially reciprocal symmetric configuration ( 526 ). If the managed system is not a partially reciprocal symmetric configuration, then SEP 500 proceeds to step 530 . If the managed system is a partially reciprocal symmetric configuration, then SEP 500 makes a determination whether the managed system is in a Ro-Do configuration ( 528 ). If the managed system is not in a Ro-Do configuration, then SEP 500 proceeds to step 532 . If the managed system is a Ro-Do configuration, then the managed system is deemed not to reallocate resources and SEP 500 instructs the user to change at least one Ro system to an Rd system and/or change at least one Do system to a Dr system ( 524 ). SEP 500 then ends ( 542 ).
  • SEP 500 determines whether the managed system configuration is a fully reciprocal symmetric configuration ( 530 ). If the managed system configuration is not a fully reciprocal symmetric configuration, then SEP 500 returns to step 506 . If the managed system configuration is a fully reciprocal symmetric configuration, then SEP 500 queries the user to make a determination whether the managed system performance is acceptable ( 532 ). If the managed system is performing acceptably, then SEP 500 indicates that the managed system is optimized ( 534 ) and SEP 500 ends ( 542 ).
  • SEP 500 makes a determination for each system whether the FD is large ( 536 ). Determining whether the FD is large is a complicated determination and the particular method for determining whether the FD is large is best left to the judgment of the particular user. For example, the user may determine that a FD that is larger than four standard deviations from the workload distribution is considered large. Alternatively, the user may choose a more fixed standard such as a FD of five or larger is to be considered large. Regardless of the standard used in step 536 , if the FD is large, then SEP 500 instructs the user to decrease the FD of at least one system to increase the resource reallocation. The FD may be decreased by decreasing the recipient load threshold, increasing the donor load threshold, or both. The user will generally want to focus on decreasing the FD for the RD systems in order to achieve maximum resource reallocation and stability.
  • SEP 500 instructs the user to increase the FD of at least one system to decrease the resource reallocation ( 540 ).
  • the FD may be increased by increasing the recipient load threshold, decreasing the donor load threshold, or both. The user will generally want to focus on increasing the FD for the RD systems in order to achieve maximum resource reallocation and stability.
  • SEP 500 can perform determination steps 510 , 514 , 532 , and/or 536 automatically, subject to performance parameter standards created by the user. Furthermore, SEP 500 can also perform readjustment steps 512 , 518 , 524 , 538 , and/or 540 automatically, subject to performance parameter standards created by the user.
  • Persons of ordinary skill in the art are aware of methods for determining which system(s) should have their donor load thresholds or recipient load thresholds decreased within the managed system. Similarly, persons of ordinary skill in the art are aware of methods for determining which system(s) should have their recipient load thresholds or donor load thresholds increased within the managed system.

Abstract

A method and system for achieving stability while reallocating resources in a logically partitioned environment. The present invention comprises Performance Enhancement Program (PEP), Classification Program (CP), System Analysis Program (SAP), and System Evaluation Program (SEP). PEP allows a user to enter several performance parameters. CP classifies each of the virtual systems in the managed system based on their workload. SAP analyses the managed system to determine the configuration of the managed system. Managed systems configurations are classified according to the reciprocity of resource allocation and the overall symmetry of the managed systems. SEP evaluates the configuration of the managed system and recommends alterations for improved performance of the managed system. The managed system will be optimized when the functional differentiator (FD) of the virtual systems is small enough to allow reallocation of resources without an unacceptable sacrifice in managed system stability.

Description

    FIELD OF THE INVENTION
  • The present invention is related generally to a method for increasing computer system efficiency and specifically to a computer program for optimizing resource reallocation in a logically partitioned environment. [0001]
  • BACKGROUND OF THE INVENTION
  • A computer system is a collection of computer resources, such as processors, adapters, memory and the like, which work together to perform a specific task, and is well known in the art. The computer system may be located in a single computer, such as a server, or in a plurality of computers, such as computer network. System administrators (hereinafter, administrators) are people who setup and manage computer systems. One of the tools used by administrators to increase the performance of a computer system is physical partitioning. Administrators physically partition a managed system by dedicating buses and predefined physical modules within the system to assist in creating the smaller partitioned systems, referred to as virtual systems. Each virtual system in a managed system appears to the end user as a completely separate system. In addition, virtual systems improve administrative flexibility and application performance. [0002]
  • A method used by administrators to increase system performance in a managed system is logical partitioning. Logical partitioning is a process which creates logical partitions within the managed system. Logical partitioning is distinct from physical partitioning in that there are no physically separated buses, memory, or processors in a logically partitioned system. Instead, the virtual systems are separated only by the system software. Similar to the physically partitioned system, each individual virtual system created by logical partitioning appears to the end user as a completely separate system. One advantage of logical partitioning is that logical partitioning permits much finer granularity in virtual system creation, such that any processor, memory, or adapter may be easily added or removed from a virtual system. Logical partitioning is generally controlled by a hardware management console outside of the managed system. The hardware management console controls the division of the managed system into the virtual systems and, if necessary, the reallocation of resources within the various virtual systems comprising the logically portioned environment. [0003]
  • When the reallocation occurs without having to reboot the managed system, the logical partitioning is known as dynamic logical partitioning. The prior art methods of dynamic reallocation require the system administrator to recognize the need for reallocation, and then to manually reallocate the resources. For example, in a system comprising a first virtual system having eight central processing units (CPUs) and a second virtual system having eight CPUs, the system administrator may observe that during a peak processing period, the first virtual system is running at 100% CPU utilization and the second virtual system is running at 20% CPU utilization. Upon observing the disparity in CPU utilization, the administrator may manually move one or more processors from the second virtual system to the first virtual system to improve system performance during the peak processing period. Therefore, a need exists for a system and method to automate the control and movement of resources in a dynamic logical partitioning environment. [0004]
  • The prior art methods of dynamic reallocation require the system administrator to decide which donors to take resources from and which recipients to give resources to and then to implement the decision by manually moving resources. The decision on what resources to move can be particularly difficult when there is only one donor and a plurality of recipients or there is only one recipient and a plurality of donors. The administrator may inadvertently create virtual systems with demands so high that the system never donates any resources. Likewise, an administrator may inadvertently create virtual systems with requirements so low that they never receive any resources. In addition, the priority of a virtual system may dictate that it must have a high demand (if a high priority system) or a low requirement (if a low priority system). However, it is generally not considered preferable for a managed system to contain donor-only or recipient-only virtual systems because resources will either gravitate towards or away from these systems and the administrator will have to make continued decisions and manual resource reassignments. Therefore, a need exists for a method of determining whether a managed system has donor-only or recipient-only virtual systems and identifying methods for eliminating donor-only and recipient-only virtual systems. [0005]
  • Another way in which the administrator may have to make continued decisions is when the administrator inadvertently creates a cyclical reallocation condition known as managed system instability. For example, in a managed system containing two virtual systems, the administrator may identify that the first virtual system is heavily loaded while the second virtual system is not. Resources are then transferred from the second virtual system to the first virtual system. The reduction in resources on the second virtual system increases the workload on the second virtual system, while the increase in resources on the first virtual system decreases the workload on the first virtual system. When the next resource reallocation cycle occurs and the need for resources at the second virtual system is recognized, the resources are transferred from the first virtual system back to the second virtual system. The process of resource reallocation from one virtual system to another may cycle back and forth indefinitely if the administrator does not recognize the cyclic nature of the reallocation. [0006]
  • When the administrator has to make too many decisions and reassignments, the overly frequent resource reallocation drives down the overall efficiency and performance of the managed system because the resources spend more time in reallocation mode than in actual use. The administrator can decrease the amount of reallocation to increase the stability; however the decrease in resource reallocation may also lead to decreased efficiency and performance of the managed system. Consequently, a need exists for an apparatus and method of determining a proper balance between reciprocity and stabilization of resource reallocation amongst virtual systems in the logically partitioned environment of a managed system. [0007]
  • The need for automation within the reallocation process has been addressed by the prior art. U.S. Pat. No. 4,603,382 (the '382 patent) entitled “Dynamic Buffer Reallocation” discloses a method for dynamically reallocating data storage segments within a storage device. The '382 patent monitors the properties of the data storage device and reallocates the buffer segments when they exceed a predefined threshold. U.S. Pat. No. 5,875,464 (the '464 patent) entitled “Computer System with Private and Shared Partitions in Cache” discloses a partitioned cache memory buffer which monitors the allocation of tasks. The memory buffer of the '464 patent reallocates the tasks when necessary. U.S. Pat. No. 5,978,583 (the '583 patent) discloses a method of reallocating applications during the course of their execution. The method disclosed in the '583 patent monitors the applications and redistributes the applications when necessary based on various criteria. U.S. Pat. No. 6,366,945 (the '945 patent) entitled “Flexible Dynamic Partitioning of Resources in a Cluster Computing Environment” discloses a method for dynamic partitioning of a computer network. The method of the '945 patent monitors the resources within the virtual networks and moves resources among networks when required. However, the '945 patent does not disclose a method for dynamic logical partitioning of a managed network. Consequently, what is needed beyond the '382, '464, '583, and '945 patents is a method and system for dynamic logical partitioning of a managed system. [0008]
  • Therefore, a need exists for an efficient automated method to optimize the allocation of resources within a virtual system based on the ability of the donor systems to donate resources and the need of the recipient system to receive resources. [0009]
  • SUMMARY OF THE INVENTION
  • The invention, which meets the needs stated above, is a method and system for achieving stability while reallocating resources in a logically partitioned environment. The software embodiment of the present invention comprises a Performance Enhancement Program (PEP), a Classification Program (CP), a System Analysis Program (SAP), and a System Evaluation Program (SEP). For every resource class and subclass, PEP allows a user to enter a performance parameter, select a capture interval, select a sampling interval, define a donor load threshold, and define a recipient load threshold. PEP determines if a conditioning level is required and interfaces with CP, SAP, and SEP. [0010]
  • CP classifies each of the virtual systems in the managed system. The virtual systems are classified based on their previous or expected workload. The virtual systems are classified as either recipient-only (Ro), primarily recipient, but possibly donor (Rd), equally weighted as donor or recipient (RD), primarily donor, but possibly recipient (Dr), or donor-only (Do). [0011]
  • SAP analyses the managed system to determine the configuration of the managed system and whether a conditioning period is required. Managed systems configurations are classified according to the reciprocity of resource allocation and the overall symmetry of the managed systems. Possible managed system configurations include: fully reciprocal symmetric, fully reciprocal asymmetric, partially reciprocal symmetric and partially reciprocal asymmetric. The fully reciprocal asymmetric, partially reciprocal symmetric, and partially reciprocal asymmetric configurations do not require a conditioning period. The fully reciprocal symmetric configuration will only require a conditioning period when the managed system contains only RD systems. [0012]
  • SEP evaluates the configuration of the managed system and recommends alterations for improved performance of the managed system. SEP looks at the configuration of the managed system, and possibly the types of virtual systems contained within the managed system. SEP identifies the managed system configurations which do not allow for resource reallocation and recommends alterations for creating virtual systems which will be able to both donate and receive resources. SEP also identifies the managed system configurations which allow resource reallocation and recommends improvements when the amount of resource reallocation is suboptimal. [0013]
  • One of the devices used by SEP is the functional differentiator (FD). The FD is a measure of how readily a virtual system will switch from being a donor to a recipient, or vice-versa. A large FD is indicative of a stable system, but one that does not reallocate resources very well. A small FD is indicative of a system that readily reallocates resources, albeit at some sacrifice in managed system stability. The managed system will be optimized when the FD of the virtual systems is small enough to allow reallocation of resources without an unacceptable sacrifice in managed system stability. [0014]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein: [0015]
  • FIG. 1 is an illustration of a computer network used to implement the present invention; [0016]
  • FIG. 2 is an illustration of the memory used to implement the present invention; [0017]
  • FIG. 3 is an illustration of the logic of the Performance Enhancement Program (PEP) of the present invention; [0018]
  • FIG. 4 is an illustration of the logic of the Classification Program (CP) of the present invention; [0019]
  • FIG. 5 is an illustration of the workload distribution of an Rd classified system; [0020]
  • FIG. 6 is an illustration of the workload distribution of a Ro classified system; [0021]
  • FIG. 7 is an illustration of the workload distribution of a Dr classified system; [0022]
  • FIG. 8 is an illustration of the workload distribution of a Do classified system; [0023]
  • FIG. 9 is an illustration of the workload distribution of a RD classified system; [0024]
  • FIG. 10 is an illustration of the logic of the System Analysis Program (SAP) of the present invention; and [0025]
  • FIGS. 11A and 11B are an illustration of the logic of the System Evaluation Program (SEP) of the present invention. [0026]
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
  • As used herein, the term “capture interval” means the interval at which statistics are collected on resource performance for various systems and may be any interval shorter than or equal to the sampling interval. [0027]
  • As used herein, the term “composite parameter” means the average of the resource data accumulated over the sampling interval. The average used to calculate the composite parameter may be the mean, median, mode, or norm. Smoothing criteria may optionally be used to determine the composite parameter. An example of smoothing would be removing the high and low values of the data collected during the sampling interval. [0028]
  • As used herein the term “computer” shall mean a machine having a processor, a memory, and an operating system, capable of interaction with a user or other computer, and shall include without limitation desktop computers, notebook computers, personal digital assistants (PDAs), servers, handheld computers, and similar devices. [0029]
  • As used herein, the term “conditioning interval” means the period during which sampling statistics may or may not be collected, but no resource allocation will be made upon any sampling statistics collected until completion of the conditioning interval. [0030]
  • As used herein, the term “controlling entity” means the computational device, either internal or external to the managed system, which manages the reallocation of resources. In a UNIX environment, this is known as the Hardware Management Console. [0031]
  • As used herein, the term “donor” means a system which has a composite parameter less than the donor load threshold. [0032]
  • As used herein, the term “donor candidate” means a system which is designated by a user as eligible to donate a resource to another system. [0033]
  • As used herein, the term “donor candidate pool” means the group of all donor candidates. [0034]
  • As used herein, the term “donor load threshold” means a specific performance parameter level below which a donor may provide a resource to a recipient. [0035]
  • As used herein, the term “donor pool” means the group of all donors. [0036]
  • As used herein, the term “functional differentiator” means the difference between the donor load threshold and the recipient load threshold for a particular system. For donor-only (Do) systems in which the recipient load threshold is infinite, a very large number, or undefined, the functional differentiator is infinite. For recipient- only (Ro) systems in which the donor load threshold is negative, zero, or undefined, the functional differentiator is also infinite. [0037]
  • As used herein, the term “managed system” means a collection of hardware resources which work together to accomplish a specific task. The resources may be located in a single computer or in a plurality of networked computers. The managed system is generally composed of a plurality of virtual systems, or simply systems. [0038]
  • As used herein, the term “performance parameter” means one or more parameters used to measure the workload on a resource. Performance parameters may include a combination of several individual performance parameters. [0039]
  • As used herein, the term “resource” means a hardware component of a computer. Examples of resources are processors, adapters, and memory. [0040]
  • As used herein, the term “recipient” means a system which has a composite parameter greater than the recipient load threshold. [0041]
  • As used herein, the term “recipient candidate” means a system which is designated by a user as eligible to receive a resource from another system. [0042]
  • As used herein, the term “recipient candidate pool” means the group of all recipient candidates. [0043]
  • As used herein the term “recipient pool” means the group of all recipients. [0044]
  • As used herein, the term “recipient load threshold” means a specific performance parameter level above which a recipient may receive a resource from a donor. [0045]
  • As used herein, the term “resource class” means a specific type of resource including without limitation processors, memory, adapters and any resource known to persons skilled in the art. [0046]
  • As used herein, the term “resource subclass” means a specific category of resource class. If the resource class is adapters, then examples of the resource subclasses would include: gigabit ethernet, 10/100 ethernet, fibre channel, ATM, and FDDI. Persons skilled in the art are aware of other resource subclasses. [0047]
  • As used herein, the term “sampling interval” means a moving or discrete window of time over which sample statistics are captured and which is equal to or greater than the capture interval. For example, if statistics are captured every five seconds for a five minute sampling interval, then sixty statistical samples would be available at the end of the sampling interval. [0048]
  • FIG. 1 is an illustration of [0049] computer network 90 associated with the present invention. Computer network 90 comprises local machine 95 electrically coupled to network 96. Local machine 95 is electrically coupled to remote machine 94 and remote machine 93 via network 96. Local machine 95 is also electrically coupled to server 91 and database 92 via network 96. Network 96 may be a simplified network connection such as a local area network (LAN) or may be a larger network such as a wide area network (WAN) or the Internet. Furthermore, computer network 90 depicted in FIG. 1 is intended as a representation of a possible operating network that may contain the present invention and is not meant as an architectural limitation.
  • The internal configuration of a computer, including connection and orientation of the processor, memory, and input/output devices, is well known in the art. The present invention is a methodology that can be embodied in a computer program. Referring to FIG. 2, the methodology of the present invention is implemented on software by Performance Enhancement Program (PEP) [0050] 200. PEP 200 includes Classification Program (CP) 300, System Analysis Program (SAP) 400, and System Evaluation Program (SEP) 500. PEP 200, CP 300, SAP 400, and SEP 500 described herein can be stored within the memory of any computer depicted in FIG. 1. Alternatively, PEP 200, CP 300, SAP 400, and SEP 500 can be stored in an external storage device such as a removable disk or a CD-ROM. Memory 100 is illustrative of the memory within one of the computers of FIG. 1. Memory 100 also contains resource data 102. The present invention may interface with resource data 102 through memory 100. As part of the present invention, the memory 100 can be configured with PEP 200, CP 300, SAP 400, and/or'SEP 500.
  • In alternative embodiments, [0051] PEP 200, CP 300, SAP 400, and/or SEP 500 can be stored in the memory of other computers. Storing PEP 200, CP 300, SAP 400, and/or SEP 500 in the memory of other computers allows the processor workload to be distributed across a plurality of processors instead of a single processor. Further configurations of PEP 200, CP 300, SAP 400, and/or SEP 500 across various memories are known by persons skilled in the art.
  • Turning to FIG. 3, a flowchart of the logic of [0052] PEP 200 is illustrated. PEP 200 is a program which allows the user to designate performance enhancement criteria and interfaces with the other programs of the present invention. The user described herein may be, for example, a system administrator. PEP 200 starts (202) and the user selects at least one performance parameter for each resource class, and if necessary subclass (204). The performance parameter is used by CP 300 to measure the workload on the resources. The user then defines the capture interval and the sampling interval (206). The capture interval and the sampling interval are used by CP 300 to develop resource data for resource reallocation.
  • The user then defines the donor load threshold ([0053] 208). The donor load threshold is used by CP 300 to determine the classification of the systems within the managed system. A heavily loaded donor will not donate resources unless its threshold value is set very high. Generally, high priority systems should have low donor load thresholds, and low priority systems should have high donor load thresholds. The load threshold increases as system performance goes down, so that only a donor with a low load (i.e. relatively strong performance) may donate resources. The donor load threshold may be set to provide whatever degree of flexibility is desired by the user. For example, if the resource is a processor, and the performance parameter is the run queue, the performance parameter limit might be set at three waiting items in the run queue. Thus, when a processor has less than three items in the run queue, the processor will be identified as a potential donor.
  • The user then defines the recipient load threshold ([0054] 210). The recipient load threshold is used by CP 300 to determine the classification of the systems. Generally, high priority systems should have low recipient load thresholds, and low priority systems should have high recipient load thresholds. A lightly loaded recipient will not receive resources unless its threshold value is set very low. As the load on the recipient system increases, the performance of the recipient system goes down, thus making the slow-running recipient candidate ripe for a resource addition. For example, if the resource is a processor, and the performance parameter is the run queue, the performance parameter limit might be set at four waiting items in the run queue. Thus, when a processor has more than four items in the run queue, the processor will be identified as a potential recipient.
  • [0055] PEP 200 then makes a determination whether a conditioning level is required (212). A conditioning level may be required by SAP 400 in step 422 (See FIG. 10), by the user, or if there is not any performance data on the systems. The length of the conditioning period is determined by the user. The user, being a person of ordinary skill in the art, will appreciate that increased conditioning periods allow for greater amounts of resource data to be collected for the virtual systems, while shorter conditioning periods will lead to smaller amounts of resource data. Similarly, greater conditioning periods will also lead to less resource reallocation, while shorter conditioning periods will lead to increased resource reallocation. If a conditioning level is not required, PEP 200 proceeds to step 216. If a conditioning level is required, PEP 200 enters into a conditioning level (214). During the conditioning level, the resource reallocation is temporarily suspended between the donors and the recipients. PEP 200 then compiles the workload statistics for the resources in the donor pool and in the recipient pool (216). If the PEP 200 entered the conditioning period in step 214, then there may be some overlap between the data in the workload statistics and the data obtained in the conditioning period. PEP 200 then runs CP 300 (218), SAP 400 (220), and SEP 500 (222). PEP 200 then makes a determination whether to continue the resource reallocation (224). If the user wants to continue resource reallocation, PEP 200 returns to step 212. If the user does not want to continue resource reallocation, PEP 200 ends (226).
  • In order to stabilize resource reallocation, the virtual systems within the managed system are classified by [0056] CP 300 according to their readiness to donate and receive resources. Once the virtual systems have been classified, SEP 400 can classify the managed system configuration, and SAP 500 can recommend improvements in the managed system configuration.
  • FIG. 4 is a flowchart illustrating the logic of [0057] CP 300. CP 300 is a program which classifies the virtual systems within the managed system. CP 300 starts (302) when prompted by PEP 200. CP 300 then analyzes the workload statistics from each system obtained in step 216 of PEP 200 and makes a determination whether the average workload is greater than the recipient load threshold (304). If the average workload is not greater than the recipient load threshold, then CP 300 proceeds to step 312. If the average workload is greater than the recipient load threshold, then CP 300 makes a determination whether the system can donate resources (306). A system will be able to donate resources if the system's donor load threshold is greater than zero. If the system can donate resources, CP 300 classifies the system as an Rd system (308) and ends (324). Rd is a shorthand notation for a system that is primarily a recipient, but possibly a donor. An example of the workload distribution of an Rd system can be seen in FIG. 5. In FIG. 5, the average workload distribution is greater than the recipient load threshold and the donor load threshold is greater than zero.
  • Returning to step [0058] 306 in FIG. 4, if CP 300 makes a determination that the system cannot donate resources, then CP 300 classifies that system as a Ro system (310) and ends (324). A system will not be able to donate resources if the system's donor load threshold is either negative or undefined. Ro is a shorthand notation for a system that is only capable of being a recipient and cannot possibly be a donor. An example of the workload distribution of a Ro system can be seen in FIG. 6. In FIG. 6, the average workload distribution is greater than the recipient load threshold and the donor load threshold is undefined. The donor load threshold for a Ro system may be either negative or undefined.
  • At [0059] step 312 in FIG. 4, CP 300 makes a determination whether the average workload is less than the donor load threshold (312). If the average workload is not less than the donor load threshold, then CP 300 proceeds to step 320. If the average workload is less than the donor load threshold, then CP 300 makes a determination whether the system can receive resources (314). A system will be able to receive resources if the system's recipient load threshold is defined as less than infinity or a similar very large number. If the system can receive resources, CP 300 classifies the system as a Dr system (316) and ends (324). Dr is a shorthand notation for a system that is primarily a donor, but possibly a recipient. An example of the workload distribution of a Dr system can be seen in FIG. 7. In FIG. 7, the average workload distribution is less than the donor load threshold and the donor load threshold is less than infinity.
  • Returning to step [0060] 314 in FIG. 4, if CP 300 makes a determination that the system cannot receive resources, then CP 300 classifies that system as a Do system (318) and ends (324). A system will not be able to receive resources if the system's recipient load threshold is infinite, a very large number, or undefined. Do is a shorthand notation for a system that is only capable of being a donor and cannot possibly be a recipient. An example of the workload distribution of a Do system can be seen in FIG. 8. In FIG. 8, the average workload distribution is less than the donor load threshold and the recipient load threshold is undefined. The recipient load threshold for a Do system may be infinite, a very large number, or undefined.
  • At [0061] step 320 in FIG. 4, CP 300 makes a determination whether the average workload is less than or equal to the recipient load threshold and greater than or equal to the donor load threshold (320). If the average workload is not less than or equal to the recipient load threshold or not greater than or equal to the donor load threshold, the CP 300 returns to step 304. If the average workload is less than or equal to the recipient load threshold and greater than or equal to the donor load threshold, then CP 300 classifies the system as a RD system (322) and ends (324). RD is a shorthand notation for a system that neither donates nor receives resources. An example of the workload distribution of a RD system can be seen in FIG. 9. In FIG. 9, the average workload distribution is greater than the donor load threshold and less than the recipient load threshold. If the difference between the donor load threshold and the recipient load threshold is large, then the RD system will be reluctant to donate or receive resources. If the difference between the donor load threshold and the recipient load threshold is small, the RD system will freely donate and receive resources.
  • After the virtual systems within the managed system have been classified, then the configuration of the managed system can be determined. A managed system can be either fully reciprocal or partially reciprocal. Full reciprocity means that all virtual systems can donate and receive resources to/from each other. In other words, a fully reciprocal managed system is one that does not have any Do or Ro virtual systems. Partial reciprocity means that there are one or more systems which cannot donate or receive resources. In other words, a partially reciprocal managed system is one that contains a Do system, a Ro system, or both. Fully reciprocal managed systems are more stable than partially reciprocal managed systems because resources tend to gravitate towards Ro systems and/or away from Do systems in a partially reciprocal managed system. This occurs because a Do system will donate resources, but never receive any and a Ro system will receive resources, but never donate any. Do systems may be preferable if there is a system where the priority of the applications is much lower than the priority of the other applications running on the managed system. Similarly, Ro systems may be preferable if there is a system where the priority of the applications is much higher than the priority of the other applications running on the managed system. Persons of ordinary skill in the art will appreciate that fully reciprocal configurations may be fully automated, while partially reciprocal configurations will require occasional manual reallocation of resource to/from the Do/Ro system(s). [0062]
  • Managed systems may also be classified according to their symmetry. Symmetry occurs when there is a both a Do and a Ro system, when there is both a Dr and an Rd system, or when there are only RD systems. Symmetric configurations are preferable to asymmetric configurations because symmetric configurations are more stable than asymmetric configurations. However, when designing and maintaining managed systems, the symmetry of the managed system is of lesser importance than the reciprocity of the managed system. [0063]
  • Turning to FIG. 10, a flowchart of the logic of [0064] SAP 400 is illustrated. SAP 400 is a program which analyzes the managed system, determines the type of configuration, and determines whether reconfiguration is necessary. SAP 400 starts (402) when prompted by PEP 200. SAP 400 then makes a determination whether the managed system contains a Ro system and/or a Do system (404). If the managed system does not contain either a Ro system or a Do system, then SAP 400 proceeds to step 412. If the managed system contains a Ro system, a Do system, or both, then SAP 400 makes a determination whether both a Ro system and a Do system are present (406). If the managed system does not contain both a Ro system and a Do system, then SAP 400 classifies the managed system as a partially reciprocal asymmetric configuration (408). For a partially reciprocal asymmetric configuration, a conditioning period is not necessary (424), and SAP 400 ends (426). Retuning to step 406, if SAP 400 makes a determination that the managed system does contain both a Ro system and a Do system, then SAP 400 classifies the managed system as a partially reciprocal symmetric configuration (410). For a partially reciprocal symmetric configuration, a conditioning period is not necessary (424), and SAP 400 ends (426).
  • At [0065] step 412, SAP 400 makes a determination whether the only systems present in the managed system are RD systems (412). If only RD systems exist in the managed system, then SAP 400 classifies the managed system as a fully reciprocal symmetric configuration (410). For a fully reciprocal symmetric configuration containing only RD systems, a conditioning period is necessary (422). A conditioning period is necessary to develop adequate workload statistics and prevent overly active resource reallocation. SAP 400 then ends (426). Returning to step 412, if SAP 400 makes a determination that the managed system does not contain only RD systems, then SAP 400 makes a determination whether both Rd and Dr are present (414). If both Rd and Dr are not present, then SAP 400 classifies the managed system as a fully reciprocal asymmetric configuration (416). For a fully reciprocal asymmetric configuration, a conditioning period is not necessary (424), and SAP 400 ends (426). Retuning to step 414, if SAP 400 makes a determination that the managed system does contain both an Rd system and a Dr system, then SAP 400 classifies the managed system as a fully reciprocal symmetric configuration (418). For a fully reciprocal symmetric configuration containing both Rd and Dr systems, a conditioning period is not necessary (424), and SAP 400 ends (426).
  • The managed system can be described according to the types of systems contained in the managed system. For example, if a managed system contains some Rd systems, some RD systems, and some Dr systems, then the managed system can be described as an Rd-RD-Dr. If there are four configurations of managed systems (i.e. fully reciprocal asymmetric, fully reciprocal symmetric, partially reciprocal asymmetric, and partially reciprocal symmetric) and there are five types of systems (Ro, Rd, RD, Dr, and Do), then there are thirty-one possible combinations of managed systems, which may be described as follows: [0066]
    TABLE 1
    Possible managed system configurations
    Number of
    Possible
    Managed System Combi-
    Configuration nations Examples Stability
    Fully Reciprocal 3 Rd-RD-Dr, Rd-Dr, RD Most
    Symmetric Stable
    Fully Reciprocal 4 Rd-RD, RD-Dr, Rd, Dr
    Asymmetric
    Partially Reciprocal  4* Ro-Rd-RD-Dr-Do, Ro-Rd-
    Symmetric Dr-Do, Ro-RD-Do
    Partially Reciprocal 20* Rd-RD-Dr-Do, Ro-RD-Dr, Least
    Asymmetric Rd-Do, et al. Stable
  • *There are two partially reciprocal configurations that will result in no resource reallocation: Ro and Do. Ro-Do configurations reallocate resources so rapidly from the donor(s) to the recipient(s) that these managed systems are deemed to not reallocate resources. Several others such as Ro-Dr and Do-Rd configurations are highly unstable, and therefore not preferable. [0067]
  • Turning to FIG. 11 (FIGS. 11A and 11B are jointly referred to as FIG. 11), a flowchart of the logic of [0068] SEP 500 is illustrated. SEP 500 is a program which evaluates the managed system configuration and recommends alterations for optimizing performance of the managed system. SEP 500 starts (502) when prompted by PEP 200. SEP 500 calculates the functional differentiator (FD) for each system in the managed system (504). SEP 500 then makes a determination whether the managed system is classified as a fully reciprocal asymmetric configuration (506). If the managed system is not classified as a fully reciprocal asymmetric configuration, then SEP 500 proceeds to step 520. If the managed system configuration is classified as a fully reciprocal asymmetric configuration, then SEP 500 makes a determination whether the managed system contains a Dr system (508). If the managed system does not contain a Dr system, then SEP 500 proceeds to step 514. If the managed system does contain a Dr system, then SEP 500 queries the user to make a determination whether the system performance is acceptable (510). In making the determination of the acceptability of the system performance, the user may consider the total number of resources reallocated, the level of performance of at least one resource class or subclass, the level of performance of at least one system, and/or the performance of the managed system as a whole. If the user determines that the system is performing acceptably, then SEP 500 indicates that the managed system is optimized (516) and ends (542).
  • Returning to step [0069] 510, if the user determines that the managed system is not performing acceptably, SEP 500 instructs the user to decrease the donor load threshold of at least one Dr system if the user wants to decrease resource reallocation, or decrease the recipient load threshold of at least one RD system if the user wants to increase resource reallocation (512). SEP 500 then ends (542).
  • At [0070] step 514, SEP 500 queries the user to make a determination whether the managed system performance is acceptable (514). If the user determines that the system is performing acceptably, then SEP 500 indicates that the managed system is optimized (516) and ends (542). Returning to step 514, if the user determines that the managed system is not performing acceptably, then SEP 500 instructs the user to increase the recipient load threshold of at least one Rd system if the user wants to decrease resource reallocation, or increase the donor load threshold of at least one RD system if the user wants to increase the resource reallocation (518). SPE 500 then ends (542).
  • At [0071] step 520, SEP 500 makes a determination whether the managed system is a partially reciprocal asymmetric configuration (520). If the managed system is not a partially reciprocal asymmetric configuration, then SEP 500 proceeds to step 526. If the managed system is a partially reciprocal asymmetric configuration, then SEP 500 makes a determination whether the managed system contains only Ro systems or only Do systems (522). If the managed system does not contain only Ro systems or only Do systems, then SEP 500 proceeds to step 532. If the managed system contains only Ro systems or only Do systems, then the managed system will not reallocate resources and SEP 500 instructs the user to change at least one Ro system to an Rd system and/or change at least one Do system to a Dr system (524). SEP 500 then ends (542).
  • At [0072] step 526, SEP 500 makes a determination whether the managed system is a partially reciprocal symmetric configuration (526). If the managed system is not a partially reciprocal symmetric configuration, then SEP 500 proceeds to step 530. If the managed system is a partially reciprocal symmetric configuration, then SEP 500 makes a determination whether the managed system is in a Ro-Do configuration (528). If the managed system is not in a Ro-Do configuration, then SEP 500 proceeds to step 532. If the managed system is a Ro-Do configuration, then the managed system is deemed not to reallocate resources and SEP 500 instructs the user to change at least one Ro system to an Rd system and/or change at least one Do system to a Dr system (524). SEP 500 then ends (542).
  • At [0073] step 530, SEP 500 determines whether the managed system configuration is a fully reciprocal symmetric configuration (530). If the managed system configuration is not a fully reciprocal symmetric configuration, then SEP 500 returns to step 506. If the managed system configuration is a fully reciprocal symmetric configuration, then SEP 500 queries the user to make a determination whether the managed system performance is acceptable (532). If the managed system is performing acceptably, then SEP 500 indicates that the managed system is optimized (534) and SEP 500 ends (542).
  • Returning to step [0074] 532, if the managed system is not performing acceptably, then SEP 500 makes a determination for each system whether the FD is large (536). Determining whether the FD is large is a complicated determination and the particular method for determining whether the FD is large is best left to the judgment of the particular user. For example, the user may determine that a FD that is larger than four standard deviations from the workload distribution is considered large. Alternatively, the user may choose a more fixed standard such as a FD of five or larger is to be considered large. Regardless of the standard used in step 536, if the FD is large, then SEP 500 instructs the user to decrease the FD of at least one system to increase the resource reallocation. The FD may be decreased by decreasing the recipient load threshold, increasing the donor load threshold, or both. The user will generally want to focus on decreasing the FD for the RD systems in order to achieve maximum resource reallocation and stability.
  • Returning to step [0075] 536, if the system does not contain a large FD, then SEP 500 instructs the user to increase the FD of at least one system to decrease the resource reallocation (540). The FD may be increased by increasing the recipient load threshold, decreasing the donor load threshold, or both. The user will generally want to focus on increasing the FD for the RD systems in order to achieve maximum resource reallocation and stability.
  • In an alternative embodiment, [0076] SEP 500 can perform determination steps 510, 514, 532, and/or 536 automatically, subject to performance parameter standards created by the user. Furthermore, SEP 500 can also perform readjustment steps 512, 518, 524, 538, and/or 540 automatically, subject to performance parameter standards created by the user. Persons of ordinary skill in the art are aware of methods for determining which system(s) should have their donor load thresholds or recipient load thresholds decreased within the managed system. Similarly, persons of ordinary skill in the art are aware of methods for determining which system(s) should have their recipient load thresholds or donor load thresholds increased within the managed system.
  • With respect to the above description, it is to be realized that the optimum dimensional relationships for the parts of the invention, to include variations in size, materials, shape, form, function and manner of operation, assembly and use, are deemed readily apparent and obvious to one skilled in the art, and all equivalent relationships to those illustrated in the drawings and described in the specification are intended to be encompassed by the present invention. The novel spirit of the present invention is still embodied by reordering or deleting some of the steps contained in this disclosure. The spirit of the invention is not meant to be limited in any way except by proper construction of the following claims. [0077]

Claims (60)

What is claimed is:
1. A method for classifying virtual systems in a managed system comprising:
obtaining an average workload;
comparing the average workload to a donor load threshold or a recipient load threshold; and
responsive to the comparison, classifying the virtual system.
2. The method of claim 1 wherein the average workload is greater than the recipient load threshold; wherein the virtual system can donate a resource; and wherein the virtual system is classified as an Rd system.
3. The method of claim 1 wherein the average workload is greater than the recipient load threshold; wherein the virtual system cannot donate a resource; and wherein the virtual system is classified as a Ro system.
4. The method of claim 1 wherein the average workload is less than the donor load threshold; wherein the virtual system can donate a resource; and wherein the virtual system is classified as a Dr system.
5. The method of claim 1 wherein the average workload is less than the donor load threshold; wherein the virtual system cannot donate a resource; and wherein the virtual system is classified as a Do system.
6. The method of claim 1 wherein the average workload is less than or equal to the recipient load threshold; wherein the average workload is greater than or equal to the donor load threshold; and wherein the virtual system is classified as a RD system.
7. A method for determining the configuration of a managed system comprising:
determining the reciprocity of a plurality of virtual systems in a managed system;
determining the symmetry of the managed system; and
responsive to the determination of reciprocity and the determination of symmetry, classifying the configuration of the managed system.
8. The method of claim 7 wherein the determination of the symmetry further comprises a determination whether the managed systems contains both a Ro virtual system and a Do virtual system; and wherein responsive to a determination that the managed system contains both a Ro virtual system and a Do virtual system, classifying the managed system as partially reciprocal symmetric.
9. The method of claim 7 wherein the determination of the symmetry further comprises a determination whether the managed systems contains a Ro virtual system or a Do virtual system, but not both; and wherein responsive to a determination that the managed system contains a Ro virtual system or a Do virtual system, but not both, classifying the managed system as partially reciprocal asymmetric.
10. The method of claim 7 wherein the determination of the reciprocity further comprises a determination whether the managed systems contains only a RD virtual system; and wherein responsive to a determination that the managed system contains only a RD virtual system, classifying the managed system as fully reciprocal symmetric.
11. The method of claim 7 wherein the determination of the symmetry further comprises a determination whether the managed systems contains both a Rd virtual system and a Dr virtual system; and wherein responsive to a determination that the managed system contains both a Rd virtual system and a Dr virtual system, classifying the managed system as fully reciprocal symmetric.
12. The method of claim 7 wherein the determination of the symmetry further comprises a determination whether the managed systems contains both a Rd virtual system and a Dr virtual system; and wherein responsive to a determination that the managed system does not contain both a Rd virtual system and a Dr virtual system, classifying the managed system as fully reciprocal asymmetric.
13. The method of claim 7 further comprising: determining whether a conditioning period is necessary.
14. The method of claim 13 wherein responsive to a determination that the managed system is a partially reciprocal asymmetric configuration, partially reciprocal symmetric configuration, fully reciprocal asymmetric configuration, or a fully reciprocal symmetric configuration containing a Rd virtual system, determining that a conditioning period is not necessary.
15. The method of claim 13 wherein responsive to a determination that the managed system is a fully reciprocal symmetric configuration containing only RD systems, determining that a conditioning period is required.
16. A method for optimizing resource reallocation in a managed system comprising:
determining the configuration of a managed system;
wherein responsive to a determination that the managed system is fully reciprocal, determining whether the managed system is performing acceptably;
wherein responsive to a determination that the managed system is performing acceptably, determining that the managed system is optimized.
17. The method of claim 16 further comprising: calculating a functional differentiator.
18. The method of claim 16 wherein responsive to a determination that the managed system is partially reciprocal, determining whether the managed system is a Do, Ro, or Do-Ro configuration; wherein responsive to a determination that the managed system is a Do, Ro, or Do-Ro configuration, changing the Ro virtual system to a Rd virtual system.
19. The method of claim 16 wherein responsive to a determination that the managed system is partially reciprocal, determining whether the managed system is a Do, Ro, or Do-Ro configuration; wherein responsive to a determination that the managed system is a Do, Ro, or Do-Ro configuration, changing the Do virtual system to a Dr virtual system.
20. The method of claim 16 wherein responsive to a determination that the managed system is partially reciprocal, determining whether the managed system is a Do, Ro, or Do-Ro configuration; wherein responsive to a determination that the managed system is not a Do, Ro, or Do-Ro configuration, determining whether the managed system is performing acceptably.
21. The method of claim 20 wherein responsive to a determination that the managed system is not performing acceptably, determining whether the functional differentiator of a virtual system is large; and responsive to a determination that the functional differentiator of a virtual system is large, decreasing the functional differentiator of the virtual system.
22. The method of claim 20 wherein responsive to a determination that the managed system is not performing acceptably, determining whether the functional differentiator of a virtual system is large; and responsive to a determination that the functional differentiator of a virtual system is not large, increasing the functional differentiator of the virtual system.
23. The method of claim 16 wherein the determination of the reciprocity includes a determination of the configuration of the managed system; wherein responsive to a determination that a managed system is a fully reciprocal symmetric configuration, determining whether the functional differentiator of a virtual system is large; and responsive to a determination that the functional differentiator of a virtual system is large, decreasing the functional differentiator of the virtual system.
24. The method of claim 16 wherein the determination of the reciprocity includes a determination of the configuration of the managed system; wherein responsive to a determination that a managed system is a fully reciprocal symmetric configuration, determining whether the functional differentiator of a virtual system is large; and responsive to a determination that the functional differentiator of a virtual system is not large, increasing the functional differentiator of the virtual system.
25. The method of claim 16 wherein the determination of the reciprocity includes a determination of the configuration of the managed system; wherein responsive to a determination that a managed system is a fully reciprocal asymmetric configuration, determining whether the managed system contains a Dr virtual system; and responsive to a determination that the virtual system contains a Dr virtual system and responsive to a determination that the managed system is not performing acceptably, decreasing the donor load threshold of the Dr system.
26. The method of claim 16 wherein the determination of the reciprocity includes a determination of the configuration of the managed system; wherein responsive to a determination that a managed system is a fully reciprocal asymmetric configuration, determining whether the managed system contains a Dr virtual system; and responsive to a determination that the virtual system contains a Dr virtual system and responsive to a determination that the managed system is not performing acceptably, decreasing the recipient load threshold of a RD system.
27. The method of claim 16 wherein the determination of the reciprocity includes a determination of the configuration of the managed system; wherein responsive to a determination that a managed system is a fully reciprocal asymmetric configuration, determining whether the managed system contains a Dr virtual system; and responsive to a determination that the virtual system does not contain a Dr virtual system and responsive to a determination that the managed system is not performing acceptably, increasing the recipient load threshold of a Rd system.
28. The method of claim 16 wherein the determination of the reciprocity includes a determination of the configuration of the managed system; wherein responsive to a determination that a managed system is a fully reciprocal asymmetric configuration, determining whether the managed system contains a Dr virtual system; and responsive to a determination that the virtual system does not contain a Dr virtual system and responsive to a determination that the managed system is not performing acceptably, increasing the donor load threshold of a RD system.
29. A program product operable on a computer, said program product comprising:
a computer-usable medium;
wherein said computer usable medium comprises instructions comprising:
instructions for obtaining an average workload;
instructions for comparing the average workload to a donor load threshold or a recipient load threshold; and
responsive to the comparison, instructions for classifying the virtual system.
30. The program product of claim 29 wherein the average workload is greater than the recipient load threshold; wherein the virtual system can donate a resource; and wherein the virtual system is classified as an Rd system.
31. The program product of claim 29 wherein the average workload is greater than the recipient load threshold; wherein the virtual system cannot donate a resource; and wherein the virtual system is classified as a Ro system.
32. The program product of claim 29 wherein the average workload is less than the donor load threshold; wherein the virtual system can donate a resource; and wherein the virtual system is classified as a Dr system.
33. The program product of claim 29 wherein the average workload is less than the donor load threshold; wherein the virtual system cannot donate a resource; and wherein the virtual system is classified as a Do system.
34. The program product of claim 29 wherein the average workload is less than or equal to the recipient load threshold; wherein the average workload is greater than or equal to the donor load threshold; and wherein the virtual system is classified as a RD system.
35. A program product operable on a computer, said program product comprising:
a computer-usable medium;
wherein said computer usable medium comprises instructions comprising:
instructions for determining the reciprocity of a plurality of virtual systems in a managed system;
instructions for determining the symmetry of the managed system; and
responsive to the determination of reciprocity and the determination of symmetry, instructions for classifying the configuration of the managed system.
36. The program product of claim 35 wherein the determination of the symmetry further comprises a determination whether the managed systems contains both a Ro virtual system and a Do virtual system; and wherein responsive to a determination that the managed system contains both a Ro virtual system and a Do virtual system, instructions for classifying the managed system as partially reciprocal symmetric.
37. The program product of claim 35 wherein the determination of the symmetry further comprises a determination whether the managed systems contains a Ro virtual system or a Do virtual system, but not both; and wherein responsive to a determination that the managed system contains a Ro virtual system or a Do virtual system, but not both, instructions for classifying the managed system as partially reciprocal asymmetric.
38. The program product of claim 35 wherein the determination of the reciprocity further comprises a determination whether the managed system contains only a RD virtual system; and wherein responsive to a determination that the managed system contains only a RD virtual system, instructions for classifying the managed system as fully reciprocal symmetric.
39. The program product of claim 35 wherein the determination of the symmetry further comprises a determination whether the managed systems contains both a Rd virtual system and a Dr virtual system; and wherein responsive to a determination that the managed system contains both a Rd virtual system and a Dr virtual system, instructions for classifying the managed system as fully reciprocal symmetric.
40. The program product of claim 35 wherein the determination of the symmetry further comprises a determination whether the managed systems contains both a Rd virtual system and a Dr virtual system; and wherein responsive to a determination that the managed system does not contain both a Rd virtual system and a Dr virtual system, instructions for classifying the managed system as fully reciprocal asymmetric.
41. The program product of claim 35 further comprising: instructions for determining whether a conditioning period is necessary.
42. The program product of claim 41 wherein responsive to a determination that the managed system is a partially reciprocal asymmetric configuration, partially reciprocal symmetric configuration, fully reciprocal asymmetric configuration, or a fully reciprocal symmetric configuration containing a Rd virtual system, instructions for determining that a conditioning period is not necessary.
43. The program product of claim 41 wherein responsive to a determination that the managed system is a fully reciprocal symmetric configuration containing only RD systems, instructions for determining that a conditioning period is required.
44. A program product operable on a computer, said program product comprising:
a computer-usable medium;
wherein said computer usable medium comprises instructions comprising:
instructions for determining the configuration of a managed system;
wherein responsive to a determination that the managed system is fully reciprocal, determining whether the managed system is performing acceptably;
wherein responsive to a determination that the managed system is performing acceptably, instructions for determining that the managed system is optimized.
45. The program product of claim 44 further comprising: instructions for calculating a functional differentiator.
46. The program product of claim 44 wherein responsive to a determination that the managed system is partially reciprocal, instructions for determining whether the managed system is a Do, Ro, or Do-Ro configuration; wherein responsive to a determination that the managed system is a Do, Ro, or Do-Ro configuration, instructions for changing the Ro virtual system to a Rd virtual system.
47. The program product of claim 44 wherein responsive to a determination that the managed system is partially reciprocal, instructions for determining whether the managed system is a Do, Ro, or Do-Ro configuration; wherein responsive to a determination that the managed system is a Do, Ro, or Do-Ro configuration, instructions for changing the Do virtual system to a Dr virtual system.
48. The program product of claim 44 wherein responsive to a determination that the managed system is partially reciprocal, instructions for determining whether the managed system is a Do, Ro, or Do-Ro configuration; wherein responsive to a determination that the managed system is not a Do, Ro, or Do-Ro configuration, instructions for determining whether the managed system is performing acceptably.
49. The program product of claim 48 wherein responsive to a determination that the managed system is not performing acceptably, instructions for determining whether the functional differentiator of a virtual system is large; and responsive to a determination that the functional differentiator of a virtual system is large, instructions for decreasing the functional differentiator of the virtual system.
50. The program product of claim 48 wherein responsive to a determination that the managed system is not performing acceptably, instructions for determining whether the functional differentiator of a virtual system is large; and responsive to a determination that the functional differentiator of a virtual system is not large, instructions for increasing the functional differentiator of the virtual system.
51. The program product of claim 44 wherein the determination of the reciprocity includes a determination of the configuration of the managed system; wherein responsive to a determination that a managed system is a fully reciprocal symmetric configuration, instructions for determining whether the functional differentiator of a virtual system is large; and responsive to a determination that the functional differentiator of a virtual system is large, instructions for decreasing the functional differentiator of the virtual system.
52. The program product of claim 44 wherein the determination of the reciprocity includes a determination of the configuration of the managed system; wherein responsive to a determination that a managed system is a fully reciprocal symmetric configuration, instructions for determining whether the functional differentiator of a virtual system is large; and responsive to a determination that the functional differentiator of a virtual system is not large, instructions for increasing the functional differentiator of the virtual system.
53. The program product of claim 44 wherein the determination of the reciprocity includes a determination of the configuration of the managed system; wherein responsive to a determination that a managed system is a fully reciprocal asymmetric configuration, instructions for determining whether the managed system contains a Dr virtual system; and responsive to a determination that the virtual system contains a Dr virtual system and responsive to a determination that the managed system is not performing acceptably, instructions for decreasing the donor load threshold of the Dr system.
54. The program product of claim 44 wherein the determination of the reciprocity includes a determination of the configuration of the managed system; wherein responsive to a determination that a managed system is a fully reciprocal asymmetric configuration, instructions for determining whether the managed system contains a Dr virtual system; and responsive to a determination that the virtual system contains a Dr virtual system and responsive to a determination that the managed system is not performing acceptably, instructions for decreasing the recipient load threshold of a RD system.
55. The program product of claim 44 wherein the determination of the reciprocity includes a determination of the configuration of the managed system; wherein responsive to a determination that a managed system is a fully reciprocal asymmetric configuration, instructions for determining whether the managed system contains a Dr virtual system; and responsive to a determination that the virtual system does not contain a Dr virtual system and responsive to a determination that the managed system is not performing acceptably, instructions for increasing the recipient load threshold of a Rd system.
56. The program product of claim 44 wherein the determination of the reciprocity includes a determination of the configuration of the managed system; wherein responsive to a determination that a managed system is a fully reciprocal asymmetric configuration, instructions for determining whether the managed system contains a Dr virtual system; and responsive to a determination that the virtual system does not contain a Dr virtual system and responsive to a determination that the managed system is not performing acceptably, instructions for increasing the donor load threshold of a RD system.
57. A program product operable on a computer, said program product comprising:
a computer-usable medium;
wherein said computer usable medium comprises:
a performance enhancement program;
a classification program;
a system analysis program; and
a system evaluation program.
58. The program product of claim 57 wherein the classification program comprises:
instructions for obtaining an average workload;
instructions for comparing the average workload to a donor load threshold or a recipient load threshold; and
responsive to the comparison, instructions for classifying the virtual system.
59. The program product of claim 57 wherein the system analysis program comprises:
instructions for determining the reciprocity of a plurality of virtual systems in a managed system;
instructions for determining the symmetry of the managed system; and
responsive to the determination of reciprocity and the determination of symmetry, instructions for classifying the configuration of the managed system.
60. The program product of claim 57 wherein the system evaluation program comprises:
instructions for determining the configuration of a managed system;
wherein responsive to a determination that the managed system is fully reciprocal, determining whether the managed system is performing acceptably;
wherein responsive to a determination that the managed system is performing acceptably, instructions for determining that the managed system is optimized.
US10/455,182 2003-06-05 2003-06-05 Reciprocity and stabilization in dynamic resource reallocation among logically partitioned systems Expired - Fee Related US7313796B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/455,182 US7313796B2 (en) 2003-06-05 2003-06-05 Reciprocity and stabilization in dynamic resource reallocation among logically partitioned systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/455,182 US7313796B2 (en) 2003-06-05 2003-06-05 Reciprocity and stabilization in dynamic resource reallocation among logically partitioned systems

Publications (2)

Publication Number Publication Date
US20040250250A1 true US20040250250A1 (en) 2004-12-09
US7313796B2 US7313796B2 (en) 2007-12-25

Family

ID=33489895

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/455,182 Expired - Fee Related US7313796B2 (en) 2003-06-05 2003-06-05 Reciprocity and stabilization in dynamic resource reallocation among logically partitioned systems

Country Status (1)

Country Link
US (1) US7313796B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060271544A1 (en) * 2005-05-27 2006-11-30 International Business Machines Corporation Methods and apparatus for selective workload off-loading across multiple data centers
US7509646B1 (en) * 2003-09-23 2009-03-24 Unisys Corporation Method of managing workloads in a distributed processing system
US8122450B2 (en) 2006-03-30 2012-02-21 International Business Machines Corporation Method and apparatus for distributing memory in a data processing system
WO2013191992A1 (en) * 2012-06-21 2013-12-27 Microsoft Corporation Delivery controller between cloud and enterprise
WO2013191971A1 (en) * 2012-06-21 2013-12-27 Microsoft Corporation Application enhancement using edge data center
US10366358B1 (en) * 2014-12-19 2019-07-30 Amazon Technologies, Inc. Backlogged computing work exchange
US10579422B2 (en) 2014-06-25 2020-03-03 Amazon Technologies, Inc. Latency-managed task processing

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7478393B2 (en) * 2003-04-30 2009-01-13 International Business Machines Corporation Method for marketing to instant messaging service users
US7472246B2 (en) * 2003-04-30 2008-12-30 International Business Machines Corporation Method and system for automated memory reallocating and optimization between logical partitions
JP2005309644A (en) * 2004-04-20 2005-11-04 Hitachi Ltd Resource control method and its system
US20060209695A1 (en) * 2005-03-15 2006-09-21 Archer Shafford R Jr Load balancing in a distributed telecommunications platform
US7961192B2 (en) * 2006-08-01 2011-06-14 Nvidia Corporation Multi-graphics processor system and method for processing content communicated over a network for display purposes
US7969443B2 (en) * 2006-08-01 2011-06-28 Nvidia Corporation System and method for dynamically processing content being communicated over a network for display purposes
US7617375B2 (en) * 2007-03-28 2009-11-10 International Business Machines Corporation Workload management in virtualized data processing environment
US8219995B2 (en) * 2007-03-28 2012-07-10 International Business Machins Corporation Capturing hardware statistics for partitions to enable dispatching and scheduling efficiency
US7698531B2 (en) * 2007-03-28 2010-04-13 International Business Machines Corporation Workload management in virtualized data processing environment
US7698530B2 (en) * 2007-03-28 2010-04-13 International Business Machines Corporation Workload management in virtualized data processing environment
US8458658B2 (en) * 2008-02-29 2013-06-04 Red Hat, Inc. Methods and systems for dynamically building a software appliance
US8935692B2 (en) * 2008-05-22 2015-01-13 Red Hat, Inc. Self-management of virtual machines in cloud-based networks
US8849971B2 (en) * 2008-05-28 2014-09-30 Red Hat, Inc. Load balancing in cloud-based networks
US8239509B2 (en) * 2008-05-28 2012-08-07 Red Hat, Inc. Systems and methods for management of virtual appliances in cloud-based network
US9092243B2 (en) 2008-05-28 2015-07-28 Red Hat, Inc. Managing a software appliance
US8341625B2 (en) * 2008-05-29 2012-12-25 Red Hat, Inc. Systems and methods for identification and management of cloud-based virtual machines
US8943497B2 (en) * 2008-05-29 2015-01-27 Red Hat, Inc. Managing subscriptions for cloud-based virtual machines
US8868721B2 (en) 2008-05-29 2014-10-21 Red Hat, Inc. Software appliance management using broadcast data
US8108912B2 (en) 2008-05-29 2012-01-31 Red Hat, Inc. Systems and methods for management of secure data in cloud-based network
US10657466B2 (en) 2008-05-29 2020-05-19 Red Hat, Inc. Building custom appliances in a cloud-based network
US10372490B2 (en) * 2008-05-30 2019-08-06 Red Hat, Inc. Migration of a virtual machine from a first cloud computing environment to a second cloud computing environment in response to a resource or services in the second cloud computing environment becoming available
US9842004B2 (en) * 2008-08-22 2017-12-12 Red Hat, Inc. Adjusting resource usage for cloud-based networks
US9910708B2 (en) 2008-08-28 2018-03-06 Red Hat, Inc. Promotion of calculations to cloud-based computation resources
US9870541B2 (en) * 2008-11-26 2018-01-16 Red Hat, Inc. Service level backup using re-cloud network
US8782233B2 (en) * 2008-11-26 2014-07-15 Red Hat, Inc. Embedding a cloud-based resource request in a specification language wrapper
US10025627B2 (en) 2008-11-26 2018-07-17 Red Hat, Inc. On-demand cloud computing environments
US9210173B2 (en) 2008-11-26 2015-12-08 Red Hat, Inc. Securing appliances for use in a cloud computing environment
US8984505B2 (en) * 2008-11-26 2015-03-17 Red Hat, Inc. Providing access control to user-controlled resources in a cloud computing environment
US9037692B2 (en) * 2008-11-26 2015-05-19 Red Hat, Inc. Multiple cloud marketplace aggregation
US9930138B2 (en) 2009-02-23 2018-03-27 Red Hat, Inc. Communicating with third party resources in cloud computing environment
US9485117B2 (en) * 2009-02-23 2016-11-01 Red Hat, Inc. Providing user-controlled resources for cloud computing environments
US8977750B2 (en) * 2009-02-24 2015-03-10 Red Hat, Inc. Extending security platforms to cloud-based networks
US9311162B2 (en) * 2009-05-27 2016-04-12 Red Hat, Inc. Flexible cloud management
US9450783B2 (en) * 2009-05-28 2016-09-20 Red Hat, Inc. Abstracting cloud management
US9104407B2 (en) * 2009-05-28 2015-08-11 Red Hat, Inc. Flexible cloud management with power management support
US9201485B2 (en) * 2009-05-29 2015-12-01 Red Hat, Inc. Power management in managed network having hardware based and virtual resources
US9703609B2 (en) * 2009-05-29 2017-07-11 Red Hat, Inc. Matching resources associated with a virtual machine to offered resources
US20100306767A1 (en) * 2009-05-29 2010-12-02 Dehaan Michael Paul Methods and systems for automated scaling of cloud computing systems
US8832459B2 (en) * 2009-08-28 2014-09-09 Red Hat, Inc. Securely terminating processes in a cloud computing environment
US8862720B2 (en) * 2009-08-31 2014-10-14 Red Hat, Inc. Flexible cloud management including external clouds
US8271653B2 (en) * 2009-08-31 2012-09-18 Red Hat, Inc. Methods and systems for cloud management using multiple cloud management schemes to allow communication between independently controlled clouds
US8316125B2 (en) 2009-08-31 2012-11-20 Red Hat, Inc. Methods and systems for automated migration of cloud processes to external clouds
US8769083B2 (en) 2009-08-31 2014-07-01 Red Hat, Inc. Metering software infrastructure in a cloud computing environment
US8504443B2 (en) 2009-08-31 2013-08-06 Red Hat, Inc. Methods and systems for pricing software infrastructure for a cloud computing environment
US8375223B2 (en) * 2009-10-30 2013-02-12 Red Hat, Inc. Systems and methods for secure distributed storage
US10402544B2 (en) * 2009-11-30 2019-09-03 Red Hat, Inc. Generating a software license knowledge base for verifying software license compliance in cloud computing environments
US9389980B2 (en) * 2009-11-30 2016-07-12 Red Hat, Inc. Detecting events in cloud computing environments and performing actions upon occurrence of the events
US9971880B2 (en) * 2009-11-30 2018-05-15 Red Hat, Inc. Verifying software license compliance in cloud computing environments
US9529689B2 (en) 2009-11-30 2016-12-27 Red Hat, Inc. Monitoring cloud computing environments
US10268522B2 (en) * 2009-11-30 2019-04-23 Red Hat, Inc. Service aggregation using graduated service levels in a cloud network
US8606667B2 (en) * 2010-02-26 2013-12-10 Red Hat, Inc. Systems and methods for managing a software subscription in a cloud network
US11922196B2 (en) * 2010-02-26 2024-03-05 Red Hat, Inc. Cloud-based utilization of software entitlements
US9053472B2 (en) * 2010-02-26 2015-06-09 Red Hat, Inc. Offering additional license terms during conversion of standard software licenses for use in cloud computing environments
US8255529B2 (en) * 2010-02-26 2012-08-28 Red Hat, Inc. Methods and systems for providing deployment architectures in cloud computing environments
US20110213687A1 (en) * 2010-02-26 2011-09-01 James Michael Ferris Systems and methods for or a usage manager for cross-cloud appliances
US10783504B2 (en) * 2010-02-26 2020-09-22 Red Hat, Inc. Converting standard software licenses for use in cloud computing environments
US8402139B2 (en) * 2010-02-26 2013-03-19 Red Hat, Inc. Methods and systems for matching resource requests with cloud computing environments
EP2388700A3 (en) * 2010-05-18 2013-08-07 Kaspersky Lab Zao Systems and methods for policy-based program configuration
US8504689B2 (en) 2010-05-28 2013-08-06 Red Hat, Inc. Methods and systems for cloud deployment analysis featuring relative cloud resource importance
US9354939B2 (en) 2010-05-28 2016-05-31 Red Hat, Inc. Generating customized build options for cloud deployment matching usage profile against cloud infrastructure options
US8909783B2 (en) 2010-05-28 2014-12-09 Red Hat, Inc. Managing multi-level service level agreements in cloud-based network
US9436459B2 (en) 2010-05-28 2016-09-06 Red Hat, Inc. Generating cross-mapping of vendor software in a cloud computing environment
US9202225B2 (en) 2010-05-28 2015-12-01 Red Hat, Inc. Aggregate monitoring of utilization data for vendor products in cloud networks
US8954564B2 (en) 2010-05-28 2015-02-10 Red Hat, Inc. Cross-cloud vendor mapping service in cloud marketplace
US8606897B2 (en) 2010-05-28 2013-12-10 Red Hat, Inc. Systems and methods for exporting usage history data as input to a management platform of a target cloud-based network
US8364819B2 (en) 2010-05-28 2013-01-29 Red Hat, Inc. Systems and methods for cross-vendor mapping service in cloud networks
US8612615B2 (en) 2010-11-23 2013-12-17 Red Hat, Inc. Systems and methods for identifying usage histories for producing optimized cloud utilization
US8904005B2 (en) 2010-11-23 2014-12-02 Red Hat, Inc. Indentifying service dependencies in a cloud deployment
US8612577B2 (en) 2010-11-23 2013-12-17 Red Hat, Inc. Systems and methods for migrating software modules into one or more clouds
US8909784B2 (en) 2010-11-23 2014-12-09 Red Hat, Inc. Migrating subscribed services from a set of clouds to a second set of clouds
US9736252B2 (en) 2010-11-23 2017-08-15 Red Hat, Inc. Migrating subscribed services in a cloud deployment
US8924539B2 (en) 2010-11-24 2014-12-30 Red Hat, Inc. Combinatorial optimization of multiple resources across a set of cloud-based networks
US8825791B2 (en) 2010-11-24 2014-09-02 Red Hat, Inc. Managing subscribed resource in cloud network using variable or instantaneous consumption tracking periods
US8713147B2 (en) 2010-11-24 2014-04-29 Red Hat, Inc. Matching a usage history to a new cloud
US9442771B2 (en) 2010-11-24 2016-09-13 Red Hat, Inc. Generating configurable subscription parameters
US10192246B2 (en) 2010-11-24 2019-01-29 Red Hat, Inc. Generating multi-cloud incremental billing capture and administration
US8949426B2 (en) 2010-11-24 2015-02-03 Red Hat, Inc. Aggregation of marginal subscription offsets in set of multiple host clouds
US9563479B2 (en) 2010-11-30 2017-02-07 Red Hat, Inc. Brokering optimized resource supply costs in host cloud-based network using predictive workloads
US9606831B2 (en) 2010-11-30 2017-03-28 Red Hat, Inc. Migrating virtual machine operations
US8832219B2 (en) 2011-03-01 2014-09-09 Red Hat, Inc. Generating optimized resource consumption periods for multiple users on combined basis
US8959221B2 (en) 2011-03-01 2015-02-17 Red Hat, Inc. Metering cloud resource consumption using multiple hierarchical subscription periods
US10102018B2 (en) 2011-05-27 2018-10-16 Red Hat, Inc. Introspective application reporting to facilitate virtual machine movement between cloud hosts
US8631099B2 (en) 2011-05-27 2014-01-14 Red Hat, Inc. Systems and methods for cloud deployment engine for selective workload migration or federation based on workload conditions
US9037723B2 (en) 2011-05-31 2015-05-19 Red Hat, Inc. Triggering workload movement based on policy stack having multiple selectable inputs
US10360122B2 (en) 2011-05-31 2019-07-23 Red Hat, Inc. Tracking cloud installation information using cloud-aware kernel of operating system
US8984104B2 (en) 2011-05-31 2015-03-17 Red Hat, Inc. Self-moving operating system installation in cloud-based network
US8782192B2 (en) 2011-05-31 2014-07-15 Red Hat, Inc. Detecting resource consumption events over sliding intervals in cloud-based network

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4603382A (en) * 1984-02-27 1986-07-29 International Business Machines Corporation Dynamic buffer reallocation
US5504670A (en) * 1993-03-31 1996-04-02 Intel Corporation Method and apparatus for allocating resources in a multiprocessor system
US5875464A (en) * 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
US5889989A (en) * 1996-09-16 1999-03-30 The Research Foundation Of State University Of New York Load sharing controller for optimizing monetary cost
US5978583A (en) * 1995-08-07 1999-11-02 International Business Machines Corp. Method for resource control in parallel environments using program organization and run-time support
US6199075B1 (en) * 1997-05-30 2001-03-06 Sun Microsystems, Inc. Method and apparatus for generational garbage collection of a heap memory shared by multiple processors
US6327587B1 (en) * 1998-10-05 2001-12-04 Digital Archaeology, Inc. Caching optimization with disk and/or memory cache management
US6366945B1 (en) * 1997-05-23 2002-04-02 Ibm Corporation Flexible dynamic partitioning of resources in a cluster computing environment
US6378039B1 (en) * 1998-04-10 2002-04-23 Hitachi, Ltd. Storage subsystem which balances loads across a plurality of disk controllers

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6915402B2 (en) 2001-05-23 2005-07-05 Hewlett-Packard Development Company, L.P. Method and system for creating secure address space using hardware memory router
US6678814B2 (en) 2001-06-29 2004-01-13 International Business Machines Corporation Method and apparatus for allocating data usages within an embedded dynamic random access memory device

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4603382A (en) * 1984-02-27 1986-07-29 International Business Machines Corporation Dynamic buffer reallocation
US5875464A (en) * 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
US5504670A (en) * 1993-03-31 1996-04-02 Intel Corporation Method and apparatus for allocating resources in a multiprocessor system
US5978583A (en) * 1995-08-07 1999-11-02 International Business Machines Corp. Method for resource control in parallel environments using program organization and run-time support
US6321373B1 (en) * 1995-08-07 2001-11-20 International Business Machines Corporation Method for resource control in parallel environments using program organization and run-time support
US5889989A (en) * 1996-09-16 1999-03-30 The Research Foundation Of State University Of New York Load sharing controller for optimizing monetary cost
US6366945B1 (en) * 1997-05-23 2002-04-02 Ibm Corporation Flexible dynamic partitioning of resources in a cluster computing environment
US6199075B1 (en) * 1997-05-30 2001-03-06 Sun Microsystems, Inc. Method and apparatus for generational garbage collection of a heap memory shared by multiple processors
US6378039B1 (en) * 1998-04-10 2002-04-23 Hitachi, Ltd. Storage subsystem which balances loads across a plurality of disk controllers
US6327587B1 (en) * 1998-10-05 2001-12-04 Digital Archaeology, Inc. Caching optimization with disk and/or memory cache management

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509646B1 (en) * 2003-09-23 2009-03-24 Unisys Corporation Method of managing workloads in a distributed processing system
US20060271544A1 (en) * 2005-05-27 2006-11-30 International Business Machines Corporation Methods and apparatus for selective workload off-loading across multiple data centers
WO2006130170A2 (en) 2005-05-27 2006-12-07 International Business Machines Corporation Methods and apparatus for selective workload off-loading across multiple data centers
EP1891523A2 (en) * 2005-05-27 2008-02-27 International Business Machines Corporation Methods and apparatus for selective workload off-loading across multiple data centers
EP1891523A4 (en) * 2005-05-27 2009-02-18 Ibm Methods and apparatus for selective workload off-loading across multiple data centers
US7853953B2 (en) 2005-05-27 2010-12-14 International Business Machines Corporation Methods and apparatus for selective workload off-loading across multiple data centers
US8122450B2 (en) 2006-03-30 2012-02-21 International Business Machines Corporation Method and apparatus for distributing memory in a data processing system
WO2013191992A1 (en) * 2012-06-21 2013-12-27 Microsoft Corporation Delivery controller between cloud and enterprise
WO2013191971A1 (en) * 2012-06-21 2013-12-27 Microsoft Corporation Application enhancement using edge data center
CN104412236A (en) * 2012-06-21 2015-03-11 微软公司 Delivery controller between cloud and enterprise
US10579422B2 (en) 2014-06-25 2020-03-03 Amazon Technologies, Inc. Latency-managed task processing
US10366358B1 (en) * 2014-12-19 2019-07-30 Amazon Technologies, Inc. Backlogged computing work exchange

Also Published As

Publication number Publication date
US7313796B2 (en) 2007-12-25

Similar Documents

Publication Publication Date Title
US7313796B2 (en) Reciprocity and stabilization in dynamic resource reallocation among logically partitioned systems
US8381225B2 (en) Automated processor reallocation and optimization between logical partitions
US8051269B2 (en) Automated memory reallocation and optimization between logical partitions
WO2021179462A1 (en) Improved quantum ant colony algorithm-based spark platform task scheduling method
US7610425B2 (en) Approach for managing interrupt load distribution
US8463971B2 (en) Approach for distributing interrupts from high-interrupt load devices
US6651125B2 (en) Processing channel subsystem pending I/O work queues based on priorities
US6986137B1 (en) Method, system and program products for managing logical processors of a computing environment
US6587938B1 (en) Method, system and program products for managing central processing unit resources of a computing environment
US6519660B1 (en) Method, system and program products for determining I/O configuration entropy
US8869160B2 (en) Goal oriented performance management of workload utilizing accelerators
US8874744B2 (en) System and method for automatically optimizing capacity between server clusters
US7007276B1 (en) Method, system and program products for managing groups of partitions of a computing environment
US7237139B2 (en) Services heuristics for computer adapter placement in logical partitioning operations
US20080077932A1 (en) Mechanism for Automatically Managing the Resource Consumption of Transactional Workloads
US20050177833A1 (en) Method and apparatus for reassigning objects to processing units
CN106462460B (en) Dimension-based load balancing
US7299469B2 (en) Hierarchical weighting of donor and recipient pools for optimal reallocation in logically partitioned computer systems
US7568052B1 (en) Method, system and program products for managing I/O configurations of a computing environment
Zhang et al. Zeus: Improving resource efficiency via workload colocation for massive kubernetes clusters
WO2016197706A1 (en) Data migration method and device
US7325062B2 (en) Method and system for automated adapter reallocation and optimization between logical partitions
Divya et al. Workload characteristics and resource aware Hadoop scheduler
Zhang et al. Utility functions in autonomic workload management for DBMSs
WO2023039711A1 (en) Efficiency engine in a cloud computing architecture

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HAMILTON II., RICK ALLEN;SEAMAN, JAMES WESLEY;REEL/FRAME:014147/0660

Effective date: 20030516

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: GOOGLE INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:026664/0866

Effective date: 20110503

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: GOOGLE LLC, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:044127/0735

Effective date: 20170929

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20191225