US20080177976A1 - Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change - Google Patents

Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change Download PDF

Info

Publication number
US20080177976A1
US20080177976A1 US12/058,140 US5814008A US2008177976A1 US 20080177976 A1 US20080177976 A1 US 20080177976A1 US 5814008 A US5814008 A US 5814008A US 2008177976 A1 US2008177976 A1 US 2008177976A1
Authority
US
United States
Prior art keywords
size
computer program
dynamic
partition
allocation
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
US12/058,140
Other versions
US7904691B2 (en
Inventor
Steven Joseph Branda
John Joseph Stecher
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.)
International Business Machines Corp
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 US12/058,140 priority Critical patent/US7904691B2/en
Publication of US20080177976A1 publication Critical patent/US20080177976A1/en
Application granted granted Critical
Publication of US7904691B2 publication Critical patent/US7904691B2/en
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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Definitions

  • This invention generally relates to data processing, and more specifically relates to performance enhancement in a logically partitioned computer system.
  • Computer systems typically include a combination of hardware and software.
  • the combination of hardware and software on a particular computer system defines a computing environment. Different hardware platforms and different operating systems thus provide different computing environments.
  • engineers have recognized that it is possible to provide different computing environments on the same physical computer system by logically partitioning the computer system resources into different computing environments.
  • the eServer iSeries computer system developed by IBM is an example of a computer system that supports logical partitioning. If logical partitioning on an eServer iSeries computer system is desired, partition manager code (referred to as a “hypervisor” in IBM terminology) is installed that allows defining different computing environments on the same platform. Once the partition manager is installed, logical partitions may be created that define different computing environments. The partition manager manages the logical partitions to assure that they can share needed resources in the computer system while maintaining the separate computing environments defined by the logical partitions.
  • a computer system that includes multiple logical partitions typically shares resources between the logical partitions.
  • a computer system with a single CPU could have two logical partitions defined, with 50% of the CPU allocated to each logical partition, with 33% of the memory allocated to the first logical partition and 67% of the memory allocated to the second logical partition, and with two different I/O slots allocated to the two logical partitions, one per partition.
  • each logical partition acts as a separate computer system.
  • the two logical partitions will appear for all practical purposes to be two separate and distinct computer systems.
  • DLPAR dynamic logical partitioning
  • resources such as CPUs and memory
  • This ability to dynamically allocate resources can affect performance of computer software running within the logical partitions.
  • an application server running in a logical partition may have a thread pool size and heap size that is selected to provide the best performance assuming a given allocation of resources. If the allocation of resources dynamically changes, the application server will be unaware of the change, and the thread pool size and heap size that was originally selected for the application may provide less-than-optimal performance with a new allocation of resources in the logical partition that runs the application server.
  • the result is an application server that does not run as efficiently as it could due to changing resources in the logical partition that runs the application server.
  • a computer program communicates with a partition manager in the logical partition where the computer program is run.
  • the partition manager When resource allocation in the logical partition dynamically changes, the partition manager notifies the computer program of the configuration change.
  • the computer program may then autonomically adjust one or more configuration settings that affect performance of the computer program to dynamically tune the computer program to optimal performance each time the allocation of resources within the computer program's logical partition changes.
  • the partition manager notifies the computer program of an impending change in resource allocation in the logical partition that runs the computer program.
  • the computer program may delay the impending change to give the computer program a chance to reconfigure its configuration setting(s) before the partition manager changes the resource allocation in the logical partition.
  • the computer program may then signal the partition manager to proceed with the change. If the computer program does not respond within a prescribed time period, the partition manager will make the change even if the computer program does not respond.
  • FIG. 1 is a block diagram of a computer apparatus in accordance with the preferred embodiments
  • FIG. 2 is a block diagram of a prior art computer system before logical partitioning
  • FIG. 3 is a block diagram of the prior art computer system in FIG. 2 after logical partitioning
  • FIG. 4 is a block diagram of the prior art computer system in FIG. 3 after installing an operating system and other software in each logical partition;
  • FIG. 5 is a block diagram of a prior art application server with configuration settings that affect performance of the application server
  • FIG. 6 is a block diagram showing dynamic reallocation of memory in a logical partition as known in the prior art
  • FIG. 7 is a block diagram showing how the DLPAR agent management mechanism notifies a computer program of a resource configuration change event in accordance with the preferred embodiments
  • FIG. 8 is a flow diagram of a method in accordance with the preferred embodiments.
  • FIG. 9 is a flow diagram of a method in accordance with the preferred embodiments for a computer program to autonomically change one or more configuration settings as a result of a configuration change in the logical partition in which the computer program is run;
  • FIG. 10 is a flow diagram of a method in accordance with the preferred embodiments for determining whether a computer program changes its configuration setting(s) when an increase in resources in a logical partition is detected;
  • FIG. 11 is a sample table of statistics gathered by the DLPAR agent of a computer program in accordance with the preferred embodiments.
  • FIG. 12 is a table showing sample configuration adjustment criteria in accordance with the preferred embodiments.
  • the present invention relates to the performance of logically-partitioned computer systems. For those not familiar with the concepts of logical partitions, this Overview section will provide background information that will help to understand the present invention.
  • a computer system may be logically partitioned to create multiple virtual machines on a single computer platform.
  • a sample computer system 200 is shown to include four processors 210 , 16 GB of main memory 220 , and six I/O slots 230 .
  • the first logical partition 310 A is defined to have one processor 210 A, 2 GB of memory 220 A, and one I/O slot 230 A.
  • the second logical partition 310 B is defined to have one processor 210 B, 4 GB of memory 220 B, and 2 I/O slots 230 B.
  • the third logical partition 310 C is defined to have two processors 210 C, 10 GB of memory 220 C, and three I/O slots 230 C. Note that the total number of processors 210 A+ 210 B+ 210 C equals the four processors 210 in the computer system. Likewise for the memory and I/O slots.
  • the first logical partition 310 A includes an operating system 410 A, a utility 420 A, and an application 430 A.
  • the second logical partition 310 B includes an operating system 410 B, and two applications 420 B and 430 B.
  • the third logical partition 310 C includes an operating system 410 C, a utility 420 C, and an application 430 C.
  • computer system 200 in FIG. 4 includes a dynamic partition manager that may dynamically change allocation of resources to or from any of the logical partitions as the logical partitions run.
  • the utilities and applications running within a logical partition do not know they are executing in a logical partition.
  • These utilities and applications may include configuration settings that affect their performance. Note, however, that the values of these configuration settings are typically set according to an assumed allocation of resources.
  • the application server 510 in FIG. 5 could be an example of an application (e.g., 430 C in FIG. 4 ) executing in a logical partition (e.g., logical partition 310 C in FIG. 4 ).
  • FIG. 5 could be an example of an application (e.g., 430 C in FIG. 4 ) executing in a logical partition (e.g., logical partition 310 C in FIG. 4 ).
  • an application server 510 may have configuration settings that include a threadpool size 520 , a heap size 530 , sizes of one or more buffers 540 , and cache size 550 .
  • the configuration settings are set by a system administrator according to available resources.
  • the application server 510 is application 430 C in logical partition 310 C. If a system administrator sets the thread pool size, heap size, buffer sizes, and cache size for the application server according to a present allocation of resources in logical partition 310 C as shown in FIG. 4 , these values may not be suitable for best performance if the allocation dynamically changes.
  • the size of the heap in the application server may cause excessive paging, thereby significantly reducing performance of the application server.
  • prior art computer programs are not aware of resource allocation changes in a logical partition, the performance of the computer software cannot be improved with dynamic changes to resources in the logical partition in which the computer program is executed.
  • the preferred embodiments discussed in detail below solve this problem by making a computer program aware of changes to resource allocation in a logical partition, which allows the computer program to autonomically change one or more configuration settings to improve the performance of the computer program in light of the new resource allocation.
  • the preferred embodiments provide a management mechanism within a dynamic partition manager that communicates changes in resource allocation in the logical partition to one or more computer programs running in the logical partition.
  • a computer program includes an agent that communicates with the dynamic partition manager.
  • a message is sent to the computer program to notify the computer program of the change in resource allocation in the logical partition.
  • the computer program may make changes to one or more configuration settings that affect the performance of the computer program. In this way, a computer program may autonomically tune its performance according to changing allocation of resources in the logical partition in which the computer program is run.
  • the computer program may also collect statistics and compare the collected statistics to specified criteria to determine whether an increase in resources in the logical partition should cause the computer program to autonomically adjust its configuration setting(s).
  • the dynamic partition manager notifies the computer program of a change in resource allocation before the change is made, thereby allowing the computer program to change its configuration setting(s) and signal to the dynamic partition manager to proceed with the changes. If the computer program does not respond within a specified time period, the dynamic partition manager makes the change anyway. In this manner, computer programs become aware of changes to the allocation of resources in the logical partition in which they run, and autonomically adjust themselves for optimal performance in an environment where allocation of resources in a logical partition may dynamically change.
  • a computer system 100 is one suitable implementation of an apparatus in accordance with the preferred embodiments of the invention.
  • Computer system 100 is an IBM eServer iSeries computer system.
  • IBM eServer iSeries computer system As shown in FIG. 1 , computer system 100 comprises a processor 110 , a main memory 120 , a mass storage interface 130 , a display interface 140 , and a network interface 150 . These system components are interconnected through the use of a system bus 160 .
  • Mass storage interface 130 is used to connect mass storage devices, such as a direct access storage device 155 , to computer system 100 .
  • mass storage devices such as a direct access storage device 155
  • One specific type of direct access storage device 155 is a readable and writable CD-RW drive, which may store data to and read data from a CD-RW 195 .
  • Main memory 120 in accordance with the preferred embodiments contains data 121 , a dynamic partition manager 122 , an operating system 124 , and a computer program 125 .
  • Data 121 represents any data that serves as input to or output from any program in computer system 100 .
  • the dynamic partition manager 122 is system software that controls creation and management of multiple logical partitions that are defined on the apparatus 100 .
  • the dynamic partition manager 122 also supports dynamic allocation of resources to logical partitions as the logical partitions are running.
  • the dynamic partition manager 122 includes a DLPAR agent management mechanism 123 that communicates with DLPAR agents in computer programs running it a logical partition.
  • the DLPAR agent management mechanism 123 allows the dynamic partition manager 122 to notify the computer program 125 when a resource allocation change needs to be made or has already been made.
  • Operating system 124 is a multitasking operating system known in the industry as i5/OS; however, those skilled in the art will appreciate that the spirit and scope of the present invention is not limited to any one operating system.
  • the dynamic partition manager 122 defines a logical partition
  • the operating system 124 and computer program 125 may be installed in the logical partition.
  • the operating system 124 runs under control of the dynamic partition manager 122 .
  • the computer program 125 includes a DLPAR agent 126 that communicates with the DLPAR agent management mechanism 123 in the dynamic partition manager 122 .
  • the DLPAR agent 126 includes a statistics mechanism 127 that tracks resource usage in the logical partition in which the computer program 125 runs. This allows the DLPAR agent 126 to intelligently determine whether an increase of resources in the logical partition is likely due to performance limitations in the computer program 125 .
  • the DLPAR agent 126 compares collected statistics for the computer program and for its logical partition to specified criteria to determine whether an increase in resources should cause the computer program 125 to autonomically adjust one of more of its configuration settings 128 .
  • configuration setting is used herein in a broad sense to denote any setting or parameter that may be specified by a system administrator or user or that a computer program may specify autonomically at startup that affects performance of the computer program 125 .
  • the configuration settings could include threadpool size 520 , heap size 530 , the size of one or more buffers 540 , and cache size 550 .
  • Computer system 100 utilizes well known virtual addressing mechanisms that allow the programs of computer system 100 to behave as if they only have access to a large, single storage entity instead of access to multiple, smaller storage entities such as main memory 120 and DASD device 155 . Therefore, while data 121 , dynamic partition manager 122 , operating system 124 , and computer program 125 are shown to reside in main memory 120 , those skilled in the art will recognize that these items are not necessarily all completely contained in main memory 120 at the same time. It should also be noted that the term “memory” is used herein to generically refer to the entire virtual memory of computer system 100 , and may include the virtual memory of other computer systems coupled to computer system 100 .
  • Processor 110 may be constructed from one or more microprocessors and/or integrated circuits. Processor 110 executes program instructions stored in main memory 120 . Main memory 120 stores programs and data that processor 110 may access. When computer system 100 starts up, processor 110 initially executes the program instructions that make up dynamic partition manager 122 . Dynamic partition manager 122 is a sophisticated program that manages the resources of computer system 100 among different logical partitions. Some of these resources are processor 110 , main memory 120 , mass storage interface 130 , display interface 140 , network interface 150 , and system bus 160 . Once a logical partition is defined using the dynamic partition manager 122 , the operating system 124 may be installed and run within the logical partition.
  • computer system 100 is shown to contain only a single processor and a single system bus, those skilled in the art will appreciate that the present invention may be practiced using a computer system that has multiple processors and/or multiple buses.
  • the interfaces that are used in the preferred embodiment each include separate, fully programmed microprocessors that are used to off-load compute-intensive processing from processor 110 .
  • processor 110 processors 110
  • the present invention applies equally to computer systems that simply use I/O adapters to perform similar functions.
  • Display interface 140 is used to directly connect one or more displays 165 to computer system 100 .
  • These displays 165 which may be non-intelligent (i.e., dumb) terminals or fully programmable workstations, are used to allow system administrators and users to communicate with computer system 100 . Note, however, that while display interface 140 is provided to support communication with one or more displays 165 , computer system 100 does not necessarily require a display 165 , because all needed interaction with users and other processes may occur via network interface 150 .
  • Network interface 150 is used to connect other computer systems and/or workstations (e.g., 175 in FIG. 1 ) to computer system 100 across a network 170 .
  • the present invention applies equally no matter how computer system 100 may be connected to other computer systems and/or workstations, regardless of whether the network connection 170 is made using present-day analog and/or digital techniques or via some networking mechanism of the future.
  • many different network protocols can be used to implement a network. These protocols are specialized computer programs that allow computers to communicate across network 170 .
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • the preferred embodiments make a computer program aware of changes in resource allocation in a logical partition by providing a DLPAR agent management mechanism 124 in a dynamic partition manager that communicates a resource configuration change event 710 to a DLPAR agent 126 in a computer program.
  • DLPAR agent 126 may optionally communicate with the DLPAR agent management mechanism 124 as well, as shown by the dotted line in FIG. 7 .
  • the DLPAR agent management mechanism 124 now informs the DLPAR agent 126 in a computer program when a resource allocation changes in the logical partition where the DLPAR agent 126 is running, the computer program that includes the DLPAR agent 126 can now take action to autonomically adjust one or more of its configuration settings to improve performance in light of the changed resource allocation.
  • a method 800 in accordance with the preferred embodiments begins when the DLPAR agent receives a resource configuration change event from the DLPAR agent management mechanism in the dynamic partition manager (step 810 ).
  • the term “resource configuration change event” in FIG. 7 has been shortened in FIG. 8 to “configuration change event”, and the term “config. change” in FIG. 8 corresponds to the changes communicated in the configuration change event.
  • step 830 YES
  • the DLPAR agent uses a callback to the DLPAR agent management mechanism to delay the configuration change (step 850 ).
  • the callback essentially asks the dynamic partition manager to delay the change.
  • the DLPAR agent management mechanism sets a timer (step 860 ), then awaits a callback from the DLPAR agent in the computer program authorizing the configuration change (step 870 ).
  • the computer program adjusts one or more of its configuration settings in view of the impending configuration change (step 852 ).
  • the DLPAR agent in the computer program sends a callback to the DLPAR agent management mechanism authorizing the configuration change to proceed (step 854 ). Note that steps 852 and 854 are shown with dotted lines to indicate that these steps are being performed by the computer program in parallel to the DLPAR agent management mechanism in the dynamic partition manager performing steps 860 and 870 .
  • FIG. 1 A specific example is now presented to illustrate the concepts of the preferred embodiments.
  • the computer program 125 in FIG. 1 is similar to the application server 510 in FIG. 5 , which includes a threadpool size 520 , a heap size 530 , size of one or more buffers 540 , and cache size 550 .
  • Each of 520 , 530 , 540 and 550 are configuration settings that affect the performance of the application server 510 .
  • an application server of the preferred embodiments not only includes the configuration settings 128 shown in FIG. 5 as 520 , 530 , 540 and 550 , but also includes the DLPAR agent 126 in FIG. 1 . Referring to FIG.
  • a method 900 includes steps performed by an application server in accordance with the preferred embodiments to autonomically change one or more of its configuration settings in response to a configuration change event received from the dynamic partition manager.
  • step 920 NO
  • the threadpool size is decreased (step 930 )
  • number of threads used for garbage collection are decreased (step 932 )
  • the size of one or more buffers is increased (step 934 ) to provide more buffer space in light of reduced CPU capacity.
  • step 910 NO
  • step 950 NO
  • step 970 the heap size is decreased (step 970 ) and the cache size is decreased (step 972 ).
  • This simple example illustrated by method 900 in FIG. 9 shows how a computer program may autonomically adjust one or more configuration settings that affect its performance when the computer program receives notification from the dynamic partition manager of a change in resources in the logical partition in which the computer program is running.
  • Method 900 in FIG. 9 assumes an application server that only cares about changes to the number of processors or memory.
  • the resource configuration change event 710 in FIG. 7 preferably specifies the configuration change in the logical partition, and the DLPAR agent 126 may then determine whether it cares about the configuration change. If not, it does nothing. If so, the DLPAR agent 126 causes the computer program to autonomically change one or more of its configuration settings to tune the performance of the computer program according to the changed configuration of the logical partition in which the computer program is running.
  • a more sophisticated variation would allow each DLPAR agent 126 to register with the DLPAR agent management mechanism 124 for the changes in which the computer program is interested. When a configuration change is needed, the DLPAR agent management mechanism 124 would then signal only those DLPAR agents that registered to receive notification of this specific type of configuration change.
  • Method 1000 in FIG. 10 starts by collecting performance statistics for the logical partition that is running the computer program (and hence, the DLPAR agent) (step 1010 ).
  • FIG. 10 A simple example is now provided to illustrate how method 1000 in FIG. 10 functions.
  • the statistics mechanism 127 in FIG. 1 collects the statistics shown in the table 1100 in FIG. 11 .
  • These collected statistics include garbage collection (GC) duration and frequency, the percentage of the CPU power available in the logical partition that is used by this computer program, the percentage of memory available in the logical partition that is used by this computer program, the queue length and service times for internal thread pools, and other performance metrics.
  • GC garbage collection
  • a system administrator has set one or more configuration adjustment criteria as shown in table 1200 in FIG. 12 . Note that the system administrator may specify a threshold for each collected statistic. In table 1200 , the CPU threshold is set to 75% and the memory threshold is set to 75%.
  • the collected statistics in table 1100 are compared with the thresholds in table 1200 in FIG. 12 . Because the percentage of CPU used (78%) is greater than the CPU threshold of 75%, the computer program may assume an added CPU is being added to enhance its performance, and may therefore autonomically adjust one or more of its configuration settings to take advantage of the added CPU capacity. Because the percentage of memory used (85%) is greater than the memory threshold of 75%, the computer program may assume memory is being added to enhance its performance, and may therefore autonomically adjust one or more of its configuration settings to take advantage of the added memory capacity.
  • Table 1200 in FIG. 12 shows simple thresholds for the purpose of illustrating the concepts of the preferred embodiments. Note, however, that the preferred embodiments expressly extend to any suitable criteria for determining whether a computer program should make autonomic adjustments to one or more of its configuration settings as a result of the computer program receiving a message indicating a dynamic change in resource allocation in the logical partition that runs the computer program.
  • suitable criteria include, without limitation, any suitable threshold, formula, or heuristic.
  • the preferred embodiments enhance the performance of a computer program in a dynamic logical partition by determining when a partition manager needs to change allocation of resources to the logical partition and informing the computer program of the change, thereby allowing the computer program to autonomically adjust one or more of its configuration settings to optimize performance of the computer program in the changed environment.
  • the preferred embodiments thus make computer programs aware of changes in a dynamic logical partition and provide the intelligence to make autonomic adjustments in the computer program to optimize performance of the computer program.

Abstract

A computer program communicates with a partition manager in the logical partition where the computer program is run. When resource allocation in the logical partition dynamically changes, the partition manager notifies the computer program of the configuration change. The computer program may autonomically adjust one or more configuration settings that affect performance of the computer program to dynamically tune the computer program to optimal performance each time the allocation of resources within the logical partition changes. The partition manager may notify the computer program of an impending change in resource allocation in the logical partition that runs the computer program, which allows the computer program to reconfigure its configuration setting(s) before the partition manager changes the resource allocation in the logical partition.

Description

    CROSS-REFERENCE TO PARENT APPLICATION
  • This patent application is a continuation of “Apparatus and Method for Autonomically Adjusting One or More Computer Program Configuration Settings When Resources in a Logical Partition Change,” U.S. ser. No. 11/330,684 filed on Jan. 12, 2006, which is incorporated herein by reference.
  • BACKGROUND OF THE INVENTION
  • 1. Technical Field
  • This invention generally relates to data processing, and more specifically relates to performance enhancement in a logically partitioned computer system.
  • 2. Background Art
  • Computer systems typically include a combination of hardware and software. The combination of hardware and software on a particular computer system defines a computing environment. Different hardware platforms and different operating systems thus provide different computing environments. In recent years, engineers have recognized that it is possible to provide different computing environments on the same physical computer system by logically partitioning the computer system resources into different computing environments. The eServer iSeries computer system developed by IBM is an example of a computer system that supports logical partitioning. If logical partitioning on an eServer iSeries computer system is desired, partition manager code (referred to as a “hypervisor” in IBM terminology) is installed that allows defining different computing environments on the same platform. Once the partition manager is installed, logical partitions may be created that define different computing environments. The partition manager manages the logical partitions to assure that they can share needed resources in the computer system while maintaining the separate computing environments defined by the logical partitions.
  • A computer system that includes multiple logical partitions typically shares resources between the logical partitions. For example, a computer system with a single CPU could have two logical partitions defined, with 50% of the CPU allocated to each logical partition, with 33% of the memory allocated to the first logical partition and 67% of the memory allocated to the second logical partition, and with two different I/O slots allocated to the two logical partitions, one per partition. Once logical partitions are defined and shared resources are allocated to the logical partitions, each logical partition acts as a separate computer system. Thus, in the example above that has a single computer system with two logical partitions, the two logical partitions will appear for all practical purposes to be two separate and distinct computer systems.
  • More recently, dynamic allocation of resources among logical partitions has been made possible. Some IBM computer systems support dynamic logical partitioning (DLPAR), which allows resources (such as CPUs and memory) to be dynamically allocated to or from logical partitions while the logical partitions are running. This ability to dynamically allocate resources can affect performance of computer software running within the logical partitions. For example, an application server running in a logical partition may have a thread pool size and heap size that is selected to provide the best performance assuming a given allocation of resources. If the allocation of resources dynamically changes, the application server will be unaware of the change, and the thread pool size and heap size that was originally selected for the application may provide less-than-optimal performance with a new allocation of resources in the logical partition that runs the application server. The result is an application server that does not run as efficiently as it could due to changing resources in the logical partition that runs the application server. Without a way to make computer software aware of changes in resource allocation in a logical partition, thereby allowing the computer software to autonomically change one or more configuration settings that determine the performance of the computer software, the computer industry will continue to suffer from static computer software that is oblivious to changes in resource allocation in a logical partition that runs the computer software.
  • DISCLOSURE OF INVENTION
  • A computer program communicates with a partition manager in the logical partition where the computer program is run. When resource allocation in the logical partition dynamically changes, the partition manager notifies the computer program of the configuration change. The computer program may then autonomically adjust one or more configuration settings that affect performance of the computer program to dynamically tune the computer program to optimal performance each time the allocation of resources within the computer program's logical partition changes. In one embodiment, the partition manager notifies the computer program of an impending change in resource allocation in the logical partition that runs the computer program. The computer program may delay the impending change to give the computer program a chance to reconfigure its configuration setting(s) before the partition manager changes the resource allocation in the logical partition. The computer program may then signal the partition manager to proceed with the change. If the computer program does not respond within a prescribed time period, the partition manager will make the change even if the computer program does not respond.
  • The foregoing and other features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings.
  • BRIEF DESCRIPTION OF DRAWINGS
  • The preferred embodiments of the present invention will hereinafter be described in conjunction with the appended drawings, where like designations denote like elements, and:
  • FIG. 1 is a block diagram of a computer apparatus in accordance with the preferred embodiments;
  • FIG. 2 is a block diagram of a prior art computer system before logical partitioning;
  • FIG. 3 is a block diagram of the prior art computer system in FIG. 2 after logical partitioning;
  • FIG. 4 is a block diagram of the prior art computer system in FIG. 3 after installing an operating system and other software in each logical partition;
  • FIG. 5 is a block diagram of a prior art application server with configuration settings that affect performance of the application server;
  • FIG. 6 is a block diagram showing dynamic reallocation of memory in a logical partition as known in the prior art;
  • FIG. 7 is a block diagram showing how the DLPAR agent management mechanism notifies a computer program of a resource configuration change event in accordance with the preferred embodiments;
  • FIG. 8 is a flow diagram of a method in accordance with the preferred embodiments;
  • FIG. 9 is a flow diagram of a method in accordance with the preferred embodiments for a computer program to autonomically change one or more configuration settings as a result of a configuration change in the logical partition in which the computer program is run;
  • FIG. 10 is a flow diagram of a method in accordance with the preferred embodiments for determining whether a computer program changes its configuration setting(s) when an increase in resources in a logical partition is detected;
  • FIG. 11 is a sample table of statistics gathered by the DLPAR agent of a computer program in accordance with the preferred embodiments; and
  • FIG. 12 is a table showing sample configuration adjustment criteria in accordance with the preferred embodiments.
  • BEST MODE FOR CARRYING OUT THE INVENTION 1.0 Overview
  • The present invention relates to the performance of logically-partitioned computer systems. For those not familiar with the concepts of logical partitions, this Overview section will provide background information that will help to understand the present invention.
  • Known Logical Partition Systems and Tools
  • As stated in the Background Art section above, a computer system may be logically partitioned to create multiple virtual machines on a single computer platform. Referring to FIG. 2, a sample computer system 200 is shown to include four processors 210, 16 GB of main memory 220, and six I/O slots 230. Note that there may be many other components inside a prior art computer system that are not shown in FIG. 2 for the purpose of simplifying the discussion herein. We now assume that the computer system 200 is configured with three logical partitions, as shown in FIG. 3. The first logical partition 310A is defined to have one processor 210A, 2 GB of memory 220A, and one I/O slot 230A. The second logical partition 310B is defined to have one processor 210B, 4 GB of memory 220B, and 2 I/O slots 230B. The third logical partition 310C is defined to have two processors 210C, 10 GB of memory 220C, and three I/O slots 230C. Note that the total number of processors 210A+210B+210C equals the four processors 210 in the computer system. Likewise for the memory and I/O slots.
  • Now that hardware resources have been allocated to the logical partitions, software may be installed, as shown in FIG. 4. First, an operating system is typically installed in each partition, followed by utilities or applications as the specific performance needs of each partition require. Thus, for the example in FIG. 4, the first logical partition 310A includes an operating system 410A, a utility 420A, and an application 430A. The second logical partition 310B includes an operating system 410B, and two applications 420B and 430B. The third logical partition 310C includes an operating system 410C, a utility 420C, and an application 430C. Once the software is installed in the logical partitions as shown in FIG. 4, the logically-partitioned computer system is ready for use.
  • Let's now assume computer system 200 in FIG. 4 includes a dynamic partition manager that may dynamically change allocation of resources to or from any of the logical partitions as the logical partitions run. In prior art computer system 200 in FIG. 4, the utilities and applications running within a logical partition do not know they are executing in a logical partition. These utilities and applications may include configuration settings that affect their performance. Note, however, that the values of these configuration settings are typically set according to an assumed allocation of resources. For example, the application server 510 in FIG. 5 could be an example of an application (e.g., 430C in FIG. 4) executing in a logical partition (e.g., logical partition 310C in FIG. 4). As shown in FIG. 5, an application server 510 may have configuration settings that include a threadpool size 520, a heap size 530, sizes of one or more buffers 540, and cache size 550. In the prior art, the configuration settings are set by a system administrator according to available resources. In the prior art computer system in FIG. 4, let's assume the application server 510 is application 430C in logical partition 310C. If a system administrator sets the thread pool size, heap size, buffer sizes, and cache size for the application server according to a present allocation of resources in logical partition 310C as shown in FIG. 4, these values may not be suitable for best performance if the allocation dynamically changes. For example, if the memory allocated to the logical partition 310C is reduced from 10 GB to 6 GB, as shown in FIG. 6, the size of the heap in the application server may cause excessive paging, thereby significantly reducing performance of the application server. Because prior art computer programs are not aware of resource allocation changes in a logical partition, the performance of the computer software cannot be improved with dynamic changes to resources in the logical partition in which the computer program is executed. The preferred embodiments discussed in detail below solve this problem by making a computer program aware of changes to resource allocation in a logical partition, which allows the computer program to autonomically change one or more configuration settings to improve the performance of the computer program in light of the new resource allocation.
  • 2.0 Detailed Description
  • The preferred embodiments provide a management mechanism within a dynamic partition manager that communicates changes in resource allocation in the logical partition to one or more computer programs running in the logical partition. A computer program includes an agent that communicates with the dynamic partition manager. When the allocation of resources in a logical partition needs to change, or has already been changed, a message is sent to the computer program to notify the computer program of the change in resource allocation in the logical partition. As a result, the computer program may make changes to one or more configuration settings that affect the performance of the computer program. In this way, a computer program may autonomically tune its performance according to changing allocation of resources in the logical partition in which the computer program is run. The computer program may also collect statistics and compare the collected statistics to specified criteria to determine whether an increase in resources in the logical partition should cause the computer program to autonomically adjust its configuration setting(s). In one particular embodiment, the dynamic partition manager notifies the computer program of a change in resource allocation before the change is made, thereby allowing the computer program to change its configuration setting(s) and signal to the dynamic partition manager to proceed with the changes. If the computer program does not respond within a specified time period, the dynamic partition manager makes the change anyway. In this manner, computer programs become aware of changes to the allocation of resources in the logical partition in which they run, and autonomically adjust themselves for optimal performance in an environment where allocation of resources in a logical partition may dynamically change.
  • Referring to FIG. 1, a computer system 100 is one suitable implementation of an apparatus in accordance with the preferred embodiments of the invention. Computer system 100 is an IBM eServer iSeries computer system. However, those skilled in the art will appreciate that the mechanisms and apparatus of the present invention apply equally to any computer system, regardless of whether the computer system is a complicated multi-user computing apparatus, a single user workstation, or an embedded control system. As shown in FIG. 1, computer system 100 comprises a processor 110, a main memory 120, a mass storage interface 130, a display interface 140, and a network interface 150. These system components are interconnected through the use of a system bus 160. Mass storage interface 130 is used to connect mass storage devices, such as a direct access storage device 155, to computer system 100. One specific type of direct access storage device 155 is a readable and writable CD-RW drive, which may store data to and read data from a CD-RW 195.
  • Main memory 120 in accordance with the preferred embodiments contains data 121, a dynamic partition manager 122, an operating system 124, and a computer program 125. Data 121 represents any data that serves as input to or output from any program in computer system 100. The dynamic partition manager 122 is system software that controls creation and management of multiple logical partitions that are defined on the apparatus 100. The dynamic partition manager 122 also supports dynamic allocation of resources to logical partitions as the logical partitions are running. In addition, the dynamic partition manager 122 includes a DLPAR agent management mechanism 123 that communicates with DLPAR agents in computer programs running it a logical partition. The DLPAR agent management mechanism 123 allows the dynamic partition manager 122 to notify the computer program 125 when a resource allocation change needs to be made or has already been made.
  • Operating system 124 is a multitasking operating system known in the industry as i5/OS; however, those skilled in the art will appreciate that the spirit and scope of the present invention is not limited to any one operating system. Once the dynamic partition manager 122 defines a logical partition, the operating system 124 and computer program 125 may be installed in the logical partition. The operating system 124 runs under control of the dynamic partition manager 122.
  • The computer program 125 includes a DLPAR agent 126 that communicates with the DLPAR agent management mechanism 123 in the dynamic partition manager 122. The DLPAR agent 126 includes a statistics mechanism 127 that tracks resource usage in the logical partition in which the computer program 125 runs. This allows the DLPAR agent 126 to intelligently determine whether an increase of resources in the logical partition is likely due to performance limitations in the computer program 125. The DLPAR agent 126 compares collected statistics for the computer program and for its logical partition to specified criteria to determine whether an increase in resources should cause the computer program 125 to autonomically adjust one of more of its configuration settings 128. The term “configuration setting” is used herein in a broad sense to denote any setting or parameter that may be specified by a system administrator or user or that a computer program may specify autonomically at startup that affects performance of the computer program 125. For example, if the computer program 125 were an application server 510 as shown in FIG. 5, the configuration settings could include threadpool size 520, heap size 530, the size of one or more buffers 540, and cache size 550.
  • Computer system 100 utilizes well known virtual addressing mechanisms that allow the programs of computer system 100 to behave as if they only have access to a large, single storage entity instead of access to multiple, smaller storage entities such as main memory 120 and DASD device 155. Therefore, while data 121, dynamic partition manager 122, operating system 124, and computer program 125 are shown to reside in main memory 120, those skilled in the art will recognize that these items are not necessarily all completely contained in main memory 120 at the same time. It should also be noted that the term “memory” is used herein to generically refer to the entire virtual memory of computer system 100, and may include the virtual memory of other computer systems coupled to computer system 100.
  • Processor 110 may be constructed from one or more microprocessors and/or integrated circuits. Processor 110 executes program instructions stored in main memory 120. Main memory 120 stores programs and data that processor 110 may access. When computer system 100 starts up, processor 110 initially executes the program instructions that make up dynamic partition manager 122. Dynamic partition manager 122 is a sophisticated program that manages the resources of computer system 100 among different logical partitions. Some of these resources are processor 110, main memory 120, mass storage interface 130, display interface 140, network interface 150, and system bus 160. Once a logical partition is defined using the dynamic partition manager 122, the operating system 124 may be installed and run within the logical partition.
  • Although computer system 100 is shown to contain only a single processor and a single system bus, those skilled in the art will appreciate that the present invention may be practiced using a computer system that has multiple processors and/or multiple buses. In addition, the interfaces that are used in the preferred embodiment each include separate, fully programmed microprocessors that are used to off-load compute-intensive processing from processor 110. However, those skilled in the art will appreciate that the present invention applies equally to computer systems that simply use I/O adapters to perform similar functions.
  • Display interface 140 is used to directly connect one or more displays 165 to computer system 100. These displays 165, which may be non-intelligent (i.e., dumb) terminals or fully programmable workstations, are used to allow system administrators and users to communicate with computer system 100. Note, however, that while display interface 140 is provided to support communication with one or more displays 165, computer system 100 does not necessarily require a display 165, because all needed interaction with users and other processes may occur via network interface 150.
  • Network interface 150 is used to connect other computer systems and/or workstations (e.g., 175 in FIG. 1) to computer system 100 across a network 170. The present invention applies equally no matter how computer system 100 may be connected to other computer systems and/or workstations, regardless of whether the network connection 170 is made using present-day analog and/or digital techniques or via some networking mechanism of the future. In addition, many different network protocols can be used to implement a network. These protocols are specialized computer programs that allow computers to communicate across network 170. TCP/IP (Transmission Control Protocol/Internet Protocol) is an example of a suitable network protocol.
  • At this point, it is important to note that while the present invention has been and will continue to be described in the context of a fully functional computer system, those skilled in the art will appreciate that the present invention is capable of being distributed as a program product in a variety of forms, and that the present invention applies equally regardless of the particular type of computer-readable signal bearing media used to actually carry out the distribution. Examples of suitable computer-readable signal bearing media include: recordable type media such as floppy disks and CD-RW (e.g., 195 of FIG. 1), and transmission type media such as digital and analog communications links. Note that the preferred signal bearing media is tangible.
  • Referring to FIG. 7, the preferred embodiments make a computer program aware of changes in resource allocation in a logical partition by providing a DLPAR agent management mechanism 124 in a dynamic partition manager that communicates a resource configuration change event 710 to a DLPAR agent 126 in a computer program. Note that DLPAR agent 126 may optionally communicate with the DLPAR agent management mechanism 124 as well, as shown by the dotted line in FIG. 7. Because the DLPAR agent management mechanism 124 now informs the DLPAR agent 126 in a computer program when a resource allocation changes in the logical partition where the DLPAR agent 126 is running, the computer program that includes the DLPAR agent 126 can now take action to autonomically adjust one or more of its configuration settings to improve performance in light of the changed resource allocation.
  • Referring to FIG. 8, a method 800 in accordance with the preferred embodiments begins when the DLPAR agent receives a resource configuration change event from the DLPAR agent management mechanism in the dynamic partition manager (step 810). For convenience in the figures and in the discussion below, the term “resource configuration change event” in FIG. 7 has been shortened in FIG. 8 to “configuration change event”, and the term “config. change” in FIG. 8 corresponds to the changes communicated in the configuration change event.
  • Once the DLPAR agent receives the configuration change event, the DLPAR agent determines whether its computer program needs adjustment due to the configuration change (step 820). If not (step 820=NO), method 800 is done. If so (step 820=YES), method 800 determines whether a delay in the configuration change would be helpful (step 830). A delay in the configuration change might be helpful, for example, in the case of decreasing resources to allow the computer program to adjust to the decreased resources before the resources are actually decreased. This prevents poor performance of the computer program that might result from adjusting one or more configuration settings after resources have already been decreased. If a delay in the configuration change is not helpful (step 830), the computer program adjusts one or more configuration settings in view of the impending configuration change communicated in the configuration change event (step 840), and method 800 is done.
  • If a delay in the configuration change would be helpful (step 830=YES), the DLPAR agent uses a callback to the DLPAR agent management mechanism to delay the configuration change (step 850). The callback essentially asks the dynamic partition manager to delay the change. In response, the DLPAR agent management mechanism sets a timer (step 860), then awaits a callback from the DLPAR agent in the computer program authorizing the configuration change (step 870). In the meantime, the computer program adjusts one or more of its configuration settings in view of the impending configuration change (step 852). Once the adjustment is made, the DLPAR agent in the computer program sends a callback to the DLPAR agent management mechanism authorizing the configuration change to proceed (step 854). Note that steps 852 and 854 are shown with dotted lines to indicate that these steps are being performed by the computer program in parallel to the DLPAR agent management mechanism in the dynamic partition manager performing steps 860 and 870.
  • Step 880 waits until either the callback message is received authorizing the change to proceed, or the timer fires (step 880=YES). Once either the callback message is received or the timer fires, the DLPAR agent management mechanism makes the configuration change (step 890). The timer allows the change to proceed even if the computer program does not respond to assure the computer program cannot veto a change that the dynamic partition manager needs to perform.
  • A specific example is now presented to illustrate the concepts of the preferred embodiments. We assume the computer program 125 in FIG. 1 is similar to the application server 510 in FIG. 5, which includes a threadpool size 520, a heap size 530, size of one or more buffers 540, and cache size 550. Each of 520, 530, 540 and 550 are configuration settings that affect the performance of the application server 510. Note that an application server of the preferred embodiments not only includes the configuration settings 128 shown in FIG. 5 as 520, 530, 540 and 550, but also includes the DLPAR agent 126 in FIG. 1. Referring to FIG. 9, a method 900 includes steps performed by an application server in accordance with the preferred embodiments to autonomically change one or more of its configuration settings in response to a configuration change event received from the dynamic partition manager. First, method 900 determines whether the configuration change affects the number of CPUs in the logical partition in which the application server is running (step 910). If so (step 910=YES), method 900 determines whether the number of CPUs increases or decreases (step 920). If the number of CPUs increases (step 920=YES), the threadpool size is increased (step 922) and the heap size is increased (step 924). If the number of CPUs decreases (step 920=NO), the threadpool size is decreased (step 930), number of threads used for garbage collection are decreased (step 932), and the size of one or more buffers is increased (step 934) to provide more buffer space in light of reduced CPU capacity.
  • After making appropriate changes to one or more configuration settings that result from a change in the number of CPUs, or if the configuration change does not affect the number of CPUs (step 910=NO), method 900 determines whether the configuration change affects the size of memory (step 940). If not (step 940=NO), method 900 is done. If the configuration change affects the size of memory allocated to the logical partition in which the application server is running (step 940=YES), method 900 then determines whether the configuration change increases or decreases the memory (step 950). If the configuration change increases the memory (step 950=YES), the heap size is increased (step 960) and the cache size is increased (step 962). If the configuration change decreases the memory (step 950=NO), the heap size is decreased (step 970) and the cache size is decreased (step 972). This simple example illustrated by method 900 in FIG. 9 shows how a computer program may autonomically adjust one or more configuration settings that affect its performance when the computer program receives notification from the dynamic partition manager of a change in resources in the logical partition in which the computer program is running.
  • Method 900 in FIG. 9 assumes an application server that only cares about changes to the number of processors or memory. However, the preferred embodiments expressly extend to any suitable change of resources in a logical partition. The resource configuration change event 710 in FIG. 7 preferably specifies the configuration change in the logical partition, and the DLPAR agent 126 may then determine whether it cares about the configuration change. If not, it does nothing. If so, the DLPAR agent 126 causes the computer program to autonomically change one or more of its configuration settings to tune the performance of the computer program according to the changed configuration of the logical partition in which the computer program is running. A more sophisticated variation would allow each DLPAR agent 126 to register with the DLPAR agent management mechanism 124 for the changes in which the computer program is interested. When a configuration change is needed, the DLPAR agent management mechanism 124 would then signal only those DLPAR agents that registered to receive notification of this specific type of configuration change.
  • Note that methods 800 and 900 in FIGS. 8 and 9, respectively, assume that any added resource is added for the benefit of a single computer program. In reality, a logical partition may be executing many different computer programs. If each computer program were to assume an addition of resources were for its own benefit and autonomically change one or more configuration settings to use the additional resources, multiple computer programs could now have configuration settings that are not optimized for the shared environment. To avoid this situation, the preferred embodiments have optional features that allow a computer program to collect performance statistics and decide based on the collected statistics and based on specified criteria whether or not to autonomically adjust one or more of its configuration settings. Method 1000 in FIG. 10 starts by collecting performance statistics for the logical partition that is running the computer program (and hence, the DLPAR agent) (step 1010). The statistics are preferably collected by the statistics mechanism 127 in the DLPAR agent 126 shown in FIG. 1. If a configuration change does not add resources (step 1020=NO), method 1000 is done. If a configuration change adds resources (step 1020=YES), the computer program determines from the performance statistics whether to adjust one or more configuration settings due to the added resources (step 1030). If no adjustment is needed (step 1040=NO), method 1000 is done. If adjustment is needed (step 1040=YES), one or more configuration settings are autonomically adjusted (step 1050). The autonomic adjustment of resources in step 1050 is preferably similar to the steps shown in method 800 in FIG. 8 and method 900 in FIG. 9 when resources are added.
  • A simple example is now provided to illustrate how method 1000 in FIG. 10 functions. We assume the statistics mechanism 127 in FIG. 1 collects the statistics shown in the table 1100 in FIG. 11. These collected statistics include garbage collection (GC) duration and frequency, the percentage of the CPU power available in the logical partition that is used by this computer program, the percentage of memory available in the logical partition that is used by this computer program, the queue length and service times for internal thread pools, and other performance metrics. We next assume a system administrator has set one or more configuration adjustment criteria as shown in table 1200 in FIG. 12. Note that the system administrator may specify a threshold for each collected statistic. In table 1200, the CPU threshold is set to 75% and the memory threshold is set to 75%. The collected statistics in table 1100 are compared with the thresholds in table 1200 in FIG. 12. Because the percentage of CPU used (78%) is greater than the CPU threshold of 75%, the computer program may assume an added CPU is being added to enhance its performance, and may therefore autonomically adjust one or more of its configuration settings to take advantage of the added CPU capacity. Because the percentage of memory used (85%) is greater than the memory threshold of 75%, the computer program may assume memory is being added to enhance its performance, and may therefore autonomically adjust one or more of its configuration settings to take advantage of the added memory capacity. In similar fashion, if the performance statistics were below the thresholds, the computer program would assume that added resources were not added to improve its performance, and would therefore not make any autonomic adjustments as a result of the addition of new resources in the logical partition that runs the computer program. Note that some of the entries in the tables 1100 and 1200 in FIGS. 11 and 12, respectively, are shown as “ . . . ” indicating these may contain data that is not needed for the simple example above. By collecting statistics and comparing the collected statistics to a specified configuration adjustment criteria, the preferred embodiments allow a computer program to make a more intelligent decision regarding whether added resources are being added for its benefit or for the benefit of anther program, whether currently running or that will be installed in the future.
  • Table 1200 in FIG. 12 shows simple thresholds for the purpose of illustrating the concepts of the preferred embodiments. Note, however, that the preferred embodiments expressly extend to any suitable criteria for determining whether a computer program should make autonomic adjustments to one or more of its configuration settings as a result of the computer program receiving a message indicating a dynamic change in resource allocation in the logical partition that runs the computer program. Suitable criteria include, without limitation, any suitable threshold, formula, or heuristic.
  • The preferred embodiments enhance the performance of a computer program in a dynamic logical partition by determining when a partition manager needs to change allocation of resources to the logical partition and informing the computer program of the change, thereby allowing the computer program to autonomically adjust one or more of its configuration settings to optimize performance of the computer program in the changed environment. The preferred embodiments thus make computer programs aware of changes in a dynamic logical partition and provide the intelligence to make autonomic adjustments in the computer program to optimize performance of the computer program.
  • One skilled in the art will appreciate that many variations are possible within the scope of the present invention. Thus, while the invention has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that these and other changes in form and details may be made therein without departing from the spirit and scope of the invention.

Claims (15)

1. An apparatus comprising:
at least one processor;
a memory coupled to the at least one processor;
a plurality of logical partitions defined on the apparatus;
a dynamic partition manager residing in the memory and executed by the at least one processor, the dynamic partition manager determining an allocation of hardware resources among the plurality of logical partitions and having an ability to dynamically change the allocation of hardware resources while the logical partitions are running; and
a computer program executing in one of the plurality of logical partitions, the computer program receiving a message from the dynamic partition manager in response to the dynamic partition manager determining that a dynamic change to the allocation of hardware resources is needed in the one logical partition.
2. The apparatus of claim 1 wherein the computer program, in response to receiving the message from the dynamic partition manager, autonomically changes at least one configuration setting in the computer program that potentially affects performance of the computer program.
3. The apparatus of claim 2 wherein the computer program receives the message from the dynamic partition manager before the dynamic partition manager makes the dynamic change to the allocation of hardware resources in the one logical partition, and responds with a message to the dynamic partition manager after the computer program autonomically changes the at least one configuration setting in the computer program.
4. The apparatus of claim 2 wherein the computer program collects performance statistics for the one logical partition and compares the performance statistics to at least one specified criterion to determine whether or not to autonomically change the at least one configuration setting.
5. The apparatus of claim 1 wherein the computer program is an application server that includes a configuration setting for threadpool size, a configuration setting for heap size, a configuration setting for size of at least one buffer, and a configuration setting for cache size.
6. The apparatus of claim 5 wherein the application server increases threadpool size and increases heap size when the dynamic change to the allocation of hardware resources increases a number of processors in the one logical partition and increases heap size and increases cache size when the dynamic change to the allocation of hardware resources increases memory size in the one logical partition.
7. The apparatus of claim 5 wherein the application server decreases threadpool size and increases size of the at least one buffer when the dynamic change to the allocation of hardware resources decreases a number of processors in the one logical partition and decreases heap size and decreases cache size when the dynamic change to the allocation of hardware resources decreases memory size in the one logical partition.
8. A program product comprising:
(A) a computer program that executes in one of a plurality of logical partitions, the computer program receiving a message from a dynamic partition manager in response to the dynamic partition manager determining that a dynamic change to an allocation of hardware resources is needed in the one logical partition while the one logical partition is running; and
(B) recordable media bearing the computer program.
9. The program product of claim 8 wherein the computer program, in response to receiving the message from the dynamic partition manager, autonomically changes at least one configuration setting in the computer program that potentially affects performance of the computer program.
10. The program product of claim 9 wherein the computer program receives the message from the dynamic partition manager before the dynamic partition manager makes the dynamic change to the allocation of hardware resources in the one logical partition, and responds with a message to the dynamic partition manager after the computer program autonomically changes the at least one configuration setting in the computer program.
11. The program product of claim 9 wherein the computer program collects performance statistics for the one logical partition and compares the performance statistics to at least one specified criterion to determine whether or not to autonomically change the at least one configuration setting.
12. The program product of claim 8 wherein the computer program is an application server that includes a configuration setting for threadpool size, a configuration setting for heap size, a configuration setting for size of at least one buffer, and a configuration setting for cache size.
13. The program product of claim 12 wherein the application server increases threadpool size and increases heap size when the dynamic change to the allocation of hardware resources increases a number of processors in the one logical partition and increases heap size and increases cache size when the dynamic change to the allocation of hardware resources increases memory size in the one logical partition.
14. The program product of claim 12 wherein the application server decreases threadpool size and increases size of the at least one buffer when the dynamic change to the allocation of hardware resources decreases a number of processors in the one logical partition and decreases heap size and decreases cache size when the dynamic change to the allocation of hardware resources decreases memory size in the one logical partition.
15. An apparatus comprising:
at least one processor;
a memory coupled to the at least one processor;
a plurality of logical partitions defined on the apparatus;
a dynamic partition manager residing in the memory and executed by the at least one processor, the dynamic partition manager determining an allocation of hardware resources among the plurality of logical partitions and having an ability to dynamically change the allocation of hardware resources while the logical partitions are running; and
an application server residing in the memory and executed by the at least one processor, the application server including a configuration setting for threadpool size, a configuration setting for heap side, a configuration setting for size of at least one buffer, and a configuration setting for cache size;
the dynamic partition manager determining that a dynamic reallocation of hardware resources in the logical partition is needed;
the dynamic partition manager sending a message to the application server regarding the dynamic reallocation of hardware resources in the logical partition before the dynamic partition manager makes the dynamic change to the allocation of hardware resources in the one logical partition;
in response to receiving the message from the dynamic partition manager, the application server autonomically changing at least one of threadpool size, heap side, size of at least one buffer, and cache size in the application server, then responding with a message to the dynamic partition manager;
the application server collecting performance statistics for the one logical partition;
the application server comparing the performance statistics to at least one specified criterion to determine whether or not the application server will autonomically change the at least one configuration setting;
if the dynamic change to the allocation of hardware resources increases a number of processors in the one logical partition, the application server increases the threadpool size and the heap size;
if the dynamic change to the allocation of hardware resources increases memory size in the one logical partition, the application server increases the heap size and the cache size;
if the dynamic change to the allocation of hardware resources decreases the number of processors in the one logical partition, the application server decreases the threadpool size and the heap size; and
if the dynamic change to the allocation of hardware resources decreases the memory size in the one logical partition, the application server decreases the heap size and the cache size.
US12/058,140 2006-01-12 2008-03-28 Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change Expired - Fee Related US7904691B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/058,140 US7904691B2 (en) 2006-01-12 2008-03-28 Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/330,684 US7461231B2 (en) 2006-01-12 2006-01-12 Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change
US12/058,140 US7904691B2 (en) 2006-01-12 2008-03-28 Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/330,684 Continuation US7461231B2 (en) 2006-01-12 2006-01-12 Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change

Publications (2)

Publication Number Publication Date
US20080177976A1 true US20080177976A1 (en) 2008-07-24
US7904691B2 US7904691B2 (en) 2011-03-08

Family

ID=38234099

Family Applications (3)

Application Number Title Priority Date Filing Date
US11/330,684 Expired - Fee Related US7461231B2 (en) 2006-01-12 2006-01-12 Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change
US12/058,340 Abandoned US20080177977A1 (en) 2006-01-12 2008-03-28 Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change
US12/058,140 Expired - Fee Related US7904691B2 (en) 2006-01-12 2008-03-28 Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US11/330,684 Expired - Fee Related US7461231B2 (en) 2006-01-12 2006-01-12 Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change
US12/058,340 Abandoned US20080177977A1 (en) 2006-01-12 2008-03-28 Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change

Country Status (1)

Country Link
US (3) US7461231B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120054466A1 (en) * 2010-08-27 2012-03-01 International Business Machines Corporation Application run-time memory optimizer
WO2015200376A1 (en) * 2014-06-23 2015-12-30 Oracle International Corporation System and method for providing a work manager in a multitenant application server environment
US9916153B2 (en) 2014-09-24 2018-03-13 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US9961011B2 (en) 2014-01-21 2018-05-01 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US10250512B2 (en) 2015-01-21 2019-04-02 Oracle International Corporation System and method for traffic director support in a multitenant application server environment
US10318280B2 (en) 2014-09-24 2019-06-11 Oracle International Corporation System and method for supporting patching in a multitenant application server environment

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051963B1 (en) * 2003-10-21 2006-05-30 Links Medical Products, Inc. Pill crusher pouch and method of using same
US7461231B2 (en) * 2006-01-12 2008-12-02 International Business Machines Corporation Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change
US7797395B1 (en) 2006-01-19 2010-09-14 Sprint Communications Company L.P. Assignment of data flows to storage systems in a data storage infrastructure for a communication network
US7752437B1 (en) 2006-01-19 2010-07-06 Sprint Communications Company L.P. Classification of data in data flows in a data storage infrastructure for a communication network
US7788302B1 (en) 2006-01-19 2010-08-31 Sprint Communications Company L.P. Interactive display of a data storage infrastructure for a communication network
US8510429B1 (en) * 2006-01-19 2013-08-13 Sprint Communications Company L.P. Inventory modeling in a data storage infrastructure for a communication network
US7895295B1 (en) 2006-01-19 2011-02-22 Sprint Communications Company L.P. Scoring data flow characteristics to assign data flows to storage systems in a data storage infrastructure for a communication network
US7801973B1 (en) 2006-01-19 2010-09-21 Sprint Communications Company L.P. Classification of information in data flows in a data storage infrastructure for a communication network
JP4702127B2 (en) * 2006-03-22 2011-06-15 日本電気株式会社 Virtual computer system, physical resource reconfiguration method and program thereof
US7627745B2 (en) * 2006-06-30 2009-12-01 International Business Machines Corporation Method, system and program product for verifying configuration of a computer system
US9207990B2 (en) * 2007-09-28 2015-12-08 Hewlett-Packard Development Company, L.P. Method and system for migrating critical resources within computer systems
US8031704B2 (en) * 2007-10-22 2011-10-04 Infinera Corporation Network planning and optimization of equipment deployment
US20090240912A1 (en) * 2008-03-18 2009-09-24 Apple Inc. System and method for selectively storing and updating primary storage
US8146091B2 (en) * 2008-05-01 2012-03-27 International Business Machines Corporation Expansion and contraction of logical partitions on virtualized hardware
US8245234B2 (en) 2009-08-10 2012-08-14 Avaya Inc. Credit scheduler for ordering the execution of tasks
US9037717B2 (en) * 2009-09-21 2015-05-19 International Business Machines Corporation Virtual machine demand estimation
US8788783B1 (en) * 2010-06-18 2014-07-22 Disney Enterprises, Inc. Dynamically tuning the size of a cache stored in a shared memory
US8380962B2 (en) * 2010-08-16 2013-02-19 Symantec Corporation Systems and methods for efficient sequential logging on caching-enabled storage devices
US9817700B2 (en) * 2011-04-26 2017-11-14 International Business Machines Corporation Dynamic data partitioning for optimal resource utilization in a parallel data processing system
US8631131B2 (en) * 2011-09-07 2014-01-14 Red Hat Israel, Ltd. Virtual machine pool cache
US9304822B2 (en) * 2012-05-30 2016-04-05 International Business Machines Corporation Resource configuration for a network data processing system
US9251115B2 (en) * 2013-03-07 2016-02-02 Citrix Systems, Inc. Dynamic configuration in cloud computing environments
US10523709B2 (en) * 2014-09-26 2019-12-31 Oracle International Corporation System and method for dynamic security configuration in a multitenant application server environment
US9733987B2 (en) * 2015-02-20 2017-08-15 Intel Corporation Techniques to dynamically allocate resources of configurable computing resources
US10810144B2 (en) * 2016-06-08 2020-10-20 Samsung Electronics Co., Ltd. System and method for operating a DRR-compatible asynchronous memory module
US10901803B2 (en) 2018-08-17 2021-01-26 International Business Machines Corporation Allocation of resources among logical partitions
US11494110B2 (en) * 2020-08-21 2022-11-08 Vmware, Inc. Scalable segment cleaning for a log-structured file system
US11669429B2 (en) * 2021-01-13 2023-06-06 Dell Products, L.P. Configuration cluster-based performance optimization of applications in an information handling system (IHS)

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037092A1 (en) * 2000-01-28 2003-02-20 Mccarthy Clifford A. Dynamic management of virtual partition computer workloads through service level optimization
US20040168170A1 (en) * 2003-02-20 2004-08-26 International Business Machines Corporation Dynamic processor redistribution between partitions in a computing system
US20040215905A1 (en) * 2003-04-24 2004-10-28 International Business Machines Corporation Selective generation of an asynchronous notification for a partition management operation in a logically-partitioned computer
US20050071446A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation Auto-configuration of an internal vlan network interface
US20050091366A1 (en) * 2003-10-22 2005-04-28 International Business Machines Corporation Method, system, and program product for analyzing a scalability of an application server
US20050262516A1 (en) * 2004-05-21 2005-11-24 Bea Systems, Inc. Systems and methods for dynamic control of cache and pool sizes
US20050268052A1 (en) * 2004-05-27 2005-12-01 International Business Machines Corporation System and method for improving performance of dynamic memory removals by reducing file cache size
US20050281095A1 (en) * 2004-06-22 2005-12-22 Intel Corporation Partitionable memory device, system, and method
US20060047794A1 (en) * 2004-09-02 2006-03-02 Microsoft Corporation Application of genetic algorithms to computer system tuning
US20060080665A1 (en) * 2004-10-12 2006-04-13 Chavoustie Michael D Methods, systems and computer program products for spreadsheet-based autonomic management of computer systems
US20060090162A1 (en) * 2004-10-27 2006-04-27 International Business Machines Corporation Method, system, and apparatus for establishing a software configurable computing environment
US20060123217A1 (en) * 2004-12-07 2006-06-08 International Business Machines Corporation Utilization zones for automated resource management
US20060136928A1 (en) * 2004-12-21 2006-06-22 Crawford Isom L Jr System and method for associating workload management definitions with computing containers
US7461231B2 (en) * 2006-01-12 2008-12-02 International Business Machines Corporation Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037092A1 (en) * 2000-01-28 2003-02-20 Mccarthy Clifford A. Dynamic management of virtual partition computer workloads through service level optimization
US20040168170A1 (en) * 2003-02-20 2004-08-26 International Business Machines Corporation Dynamic processor redistribution between partitions in a computing system
US20040215905A1 (en) * 2003-04-24 2004-10-28 International Business Machines Corporation Selective generation of an asynchronous notification for a partition management operation in a logically-partitioned computer
US20050071446A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation Auto-configuration of an internal vlan network interface
US20050091366A1 (en) * 2003-10-22 2005-04-28 International Business Machines Corporation Method, system, and program product for analyzing a scalability of an application server
US20050262516A1 (en) * 2004-05-21 2005-11-24 Bea Systems, Inc. Systems and methods for dynamic control of cache and pool sizes
US20050268052A1 (en) * 2004-05-27 2005-12-01 International Business Machines Corporation System and method for improving performance of dynamic memory removals by reducing file cache size
US20050281095A1 (en) * 2004-06-22 2005-12-22 Intel Corporation Partitionable memory device, system, and method
US20060047794A1 (en) * 2004-09-02 2006-03-02 Microsoft Corporation Application of genetic algorithms to computer system tuning
US20060080665A1 (en) * 2004-10-12 2006-04-13 Chavoustie Michael D Methods, systems and computer program products for spreadsheet-based autonomic management of computer systems
US20060090162A1 (en) * 2004-10-27 2006-04-27 International Business Machines Corporation Method, system, and apparatus for establishing a software configurable computing environment
US20060123217A1 (en) * 2004-12-07 2006-06-08 International Business Machines Corporation Utilization zones for automated resource management
US20060136928A1 (en) * 2004-12-21 2006-06-22 Crawford Isom L Jr System and method for associating workload management definitions with computing containers
US7461231B2 (en) * 2006-01-12 2008-12-02 International Business Machines Corporation Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120054466A1 (en) * 2010-08-27 2012-03-01 International Business Machines Corporation Application run-time memory optimizer
US8464023B2 (en) * 2010-08-27 2013-06-11 International Business Machines Corporation Application run-time memory optimizer
US11343200B2 (en) 2014-01-21 2022-05-24 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US10742568B2 (en) 2014-01-21 2020-08-11 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US9961011B2 (en) 2014-01-21 2018-05-01 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US11683274B2 (en) 2014-01-21 2023-06-20 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
WO2015200376A1 (en) * 2014-06-23 2015-12-30 Oracle International Corporation System and method for providing a work manager in a multitenant application server environment
US10027595B2 (en) 2014-06-23 2018-07-17 Oracle International Corporation System and method for providing a work manager in a multitenant application server environment
US10318280B2 (en) 2014-09-24 2019-06-11 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US10394550B2 (en) 2014-09-24 2019-08-27 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US10853055B2 (en) 2014-09-24 2020-12-01 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US10853056B2 (en) 2014-09-24 2020-12-01 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US9916153B2 (en) 2014-09-24 2018-03-13 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US11449330B2 (en) 2014-09-24 2022-09-20 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US11880679B2 (en) 2014-09-24 2024-01-23 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US10250512B2 (en) 2015-01-21 2019-04-02 Oracle International Corporation System and method for traffic director support in a multitenant application server environment

Also Published As

Publication number Publication date
US20080177977A1 (en) 2008-07-24
US20070162720A1 (en) 2007-07-12
US7904691B2 (en) 2011-03-08
US7461231B2 (en) 2008-12-02

Similar Documents

Publication Publication Date Title
US7904691B2 (en) Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change
US8285966B2 (en) Autonomic self-tuning of database management system in dynamic logical partitioning environment
US9977689B2 (en) Dynamic scaling of management infrastructure in virtual environments
US7673114B2 (en) Dynamically improving memory affinity of logical partitions
US8688923B2 (en) Dynamic control of partition memory affinity in a shared memory partition data processing system
US6587938B1 (en) Method, system and program products for managing central processing unit resources of a computing environment
US8078824B2 (en) Method for dynamic load balancing on partitioned systems
US7290260B2 (en) Dynamic processor redistribution between partitions in a computing system
US6324620B1 (en) Dynamic DASD data management and partitioning based on access frequency utilization and capacity
US6519660B1 (en) Method, system and program products for determining I/O configuration entropy
US6986137B1 (en) Method, system and program products for managing logical processors of a computing environment
JP3978199B2 (en) Resource utilization and application performance monitoring system and monitoring method
US7007276B1 (en) Method, system and program products for managing groups of partitions of a computing environment
US6651125B2 (en) Processing channel subsystem pending I/O work queues based on priorities
US7979863B2 (en) Method and apparatus for dynamic CPU resource management
CA2382017C (en) Workload management in a computing environment
US20050262505A1 (en) Method and apparatus for dynamic memory resource management
GB2418274A (en) System and method for allocating computing resources in a grid computing environment
US20070124274A1 (en) Apparatus and method for autonomic adjustment of resources in a logical partition to improve partitioned query performance
US20120144389A1 (en) Optimizing virtual image deployment for hardware architecture and resources
US7568052B1 (en) Method, system and program products for managing I/O configurations of a computing environment
JP2004152060A (en) Computer system and its disk subsystem

Legal Events

Date Code Title Description
REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
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: 20150308