WO1990007746A1 - Appareil ameliorant les performances de memoire d'un systeme informatique - Google Patents

Appareil ameliorant les performances de memoire d'un systeme informatique Download PDF

Info

Publication number
WO1990007746A1
WO1990007746A1 PCT/US1989/005709 US8905709W WO9007746A1 WO 1990007746 A1 WO1990007746 A1 WO 1990007746A1 US 8905709 W US8905709 W US 8905709W WO 9007746 A1 WO9007746 A1 WO 9007746A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
data
computer system
dasd
datasets
Prior art date
Application number
PCT/US1989/005709
Other languages
English (en)
Inventor
Roger Francis Warr
Original Assignee
Storage Technology Corporation
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 Storage Technology Corporation filed Critical Storage Technology Corporation
Publication of WO1990007746A1 publication Critical patent/WO1990007746A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller

Definitions

  • This invention relates to computer memory systems and, in particular, to computer system memory performance improvement apparatus that both monitors the data retrievability efficiency of the computer system memory and modifies data set storage locations in response to memory performance conflicts detected in the computer system memory.
  • This apparatus makes use of a knowledge based (expert) system to monitor the performance of the computer system data storage devices, identifymemory per ormance conflicts and resolve these conflicts by directing the relocation of data sets to other segments of the computer system memory.
  • the subj ct apparatus includes a number of data bases which are used by the expert system software to manage the computer system data storage devices.
  • One element provided in this apparatus is a set of data storage device configuration data that provides a description of the various data storage devices and their interconnection in the computer system.
  • a second element is a knowledge data base that includes a set of functional rules that describe the data storage device management function. These rules indicate the operational characteristics of the various data storage devices and the steps that need to be taken to provide the various improvement functions required of the computer system memory.
  • an expert system which is a computer program that uses explicitly represented knowledge and computational inference techniques to achieve a level of performance compatible to that of a human expert in that application area or domain.
  • the expert system includes an inference engine that executes the rules which comprise the basic intelligence of the expert system.
  • the inference engine allows a virtually infinite number of rules or conditional statements to be chained together in a variety of ways.
  • the inference engine manages the rules and the flow of data through those rules.
  • the expert system uses the data stored in the configuration data base and the knowledge data base as well as data from monitoring of the actual performance of the data storage devices in the computer system to analyze on a dynamic basis the performance of the computer system data storage devices.
  • the expert system identifies memory performance conflicts such as a performance degradation of the computer system data storage devices due to a plurality of computers in the computer system attempting to access a common data storage device.
  • the expert system identifies the performance conflict as well as the data sets stored on these data storage devices related to this conflict. Once the data sets involved in the performance conflict are identified, the expert system determines alternative memory storage locations for these data sets and activates various software routines to transport these conflict data sets to the alternative data storage locations. The relocation of these conflict data sets resolves the memory performance conflict and improves the retrievability of the data stored on these data storage devices. By performing the conflict identification and resolution on a dynamic real time basis, the data storage devices of the computer system are operated in a more efficient manner and the retrievability of the data stored on these data storage devices is significantly improved without the need for the data management personnel.
  • the computer system memory performance improvement apparatus therefore, continuously monitors and modifies the performance of the data storage devices associated with the computer system.
  • Figure 1 illustrates, in block diagram form, the architecture of the computer system memory performance improvement apparatus
  • Figure 2 illustrates in block diagram form, the architecture of the cache tuning and DASD performance optimizer elements of the computer system memory performance improvement apparatus
  • Figures 3 and 4 illustrate the elements that comprise the cache tuning and DASD performance optimizer elements of the computer system memory performance improvement apparatus.
  • the computer system memory performance improvement apparatus functions to monitor the performance of a computer system memory and manage this computer system memory in order to maximize performance. This function is accomplished by the use of a knowledge based (expert) system that monitors the activity of the various data storage devices in the computer system memory, identify memory performance conflicts and take steps to resolve these conflicts in order to improve the performance of the computer system memory.
  • This apparatus includes a number of databases which are used by the expert system software to manage the data storage devices.
  • FIG. 1 illustrates a typical data processing system in block diagram form, which system includes the computer system memory performance improvement apparatus.
  • This computer system consists of a mainframe 101 which can be any of a number of large computer system such as an IBM 3084, an Amdahl 5860 or a NAS 9000 series computer.
  • Each of these mainframe computers can process on the order of 100,00 instructions per second and are typically equipped with a significant amount of disk storage memory, typically on the order of 30 to 100 gigabytes of data storage capacity.
  • mainframe 101 is an IBM 3084 type of computer running an operating system 102 that typically is the MVS/XA operating system.
  • Mainframe 101 is interconnected via a plurality of channel processors 110 - 119 to the data storage devices associated with mainframe 101.
  • a number of disk storage devices 150-0 to 150-15 are illustrated in Figure 1.
  • Each of these disk drives are a commercially available device such as the 8380E disk drive system or any other ones of the multitude of similar devices.
  • sixteen disk drives 150-0 to 150-15 are connected via associated data channels 140-0, 140-15 to a device controller 130 which is typically an 8890 type of controller.
  • Device controller 130 functions to multiplex the data being read to and from the plurality of disk drives 150-0 to 150-15 onto a channel path 120 which interconnects device controller 130 with channel processor 110.
  • the computer system can be equipped with a plurality of channel processors illustrated in Figure 1 as devices 110 to 119. Each channel processor 110 is interconnected with mainframe 101 and provides access to the disk storage devices 150-0 to 150-15 to mainframe 101. While this block diagram illustrates a general computer system configuration, it in no way should be construed as limiting the applicability of Applicants' invention. In particular, various memory configurations can be used to interconnect mainframe 101 with various data storage devices.
  • the disk drive devices illustrated in Figure 1 are exemplary and many computer systems rely on tape drives to implement data storage devices. Included in the computer system illustrated in Figure 1 is a cache memory 160 which is part of device controller 130.
  • Memory performance improvement apparatus 103 is included in mainframe 101 as is operator terminal 170 which is connected via data link 160 to mainframe 101. Memory Configuration and Management
  • the computer memory illustrated in Figure 1 is viewed as a subsystem 180 that consists of sixteen volumes of disk storage 150-0 to 150-15. Each volume of this subsystem contains a plurality of data sets or data files. These data sets or data files are stored on a corresponding volume in an ordered fashion by dividing the volume up into sub-elements. For example, in the 8380E disk drive, each volume consists of 1770 cylinders each of which includes fifteen data tracks. Each data track can store 47K bytes of data.
  • mainframe 101 accesses data stored on the data volumes in subsystem 180 by transmitting a data retrieval request via the channel processor 110 associated with the data volume example 150-0 that contains the requested data.
  • This data retrieval request is transmitted by channel processor 110 over channel path 120 to device controller 130, which in turn manages the retrieval of the data from the designated data storage device 150-0.
  • This data retrieval is implemented by device controller 130 monitoring the rotation of disk drive 150-0 to identify the beginning of the data set stored on a track of the disk storage system. Once the disk in the disk storage system has rotated sufficiently to place the beginning of the requested data set under the read/write heads of the disk storage system, the data is transferred from disk drive 150-0 over data link 140-0 to device controller 130.
  • Device controller 130 temporarily stores the retrieved data for transmission to mainframe 101 via channel path 120 and channel processor 110. It is obvious from the arrangement that this is an asynchronous data transfer in that mainframe 101 transmits data retrieval requests to various device controllers where these requests are processed as the data sets become available. If too many data retrieval requests are made via one route, such as concentrating the requests on a specific volume or small subset of volumes, the performance of the computer system memory significantly degrades. It is advantageous to equalize the data retrieval requests throughout the various channel processors, channel paths and disk drives. Thus, a distribution of the data retrieval requests among the various volumes on each subsystem and across all of the subsystems significantly improves the memory performance. There are many choices available to improve memory performance such as moving data sets from one volume to another or moving a volume from one subsystem to another. It should also be noted that for purposes of this patent disclosure, the terms “string” and "subsystem” can be used interchangeably.
  • a cache memory such as cache 160 which enables the more frequently accessed volumes to load data in the cache for more rapid data retrieval times.
  • the volumes are selected as being suitable for caching based on the data sets that are stored therein. Any input and output accesses to the data that use the cache memory benefit from the cache by speeding up the data transfer time. In order to preserve data integrity, any writes that are performed cause the data to be written directly to the disk and therefore these operations gain no benefit from a cache memory.
  • a good volume for caching is one that has a high read rate, high activity and input/output accesses concentrated in a small number of tracks rather than scattered across the entire disk.
  • volumes that satisfy these conditions have a high hit ratio and therefore the input/output reads often find the desired track in cache and do not have to spend the time retrieving the data set from the disk as described above.
  • subsystems contain no volumes that are cachable or the activity of volumes that are cachable accounts for only a fraction of the total input/output activity of the subsystem.
  • the computer system memory performance improvement apparatus locates conflicts and then moves the smallest number of data sets in order to resolve the conflict. Using this approach, a small number of moves provides a large increase in performance and better utilization of the cache memory.
  • the input/output activity of the subsystem is monitored over a period of time and data is recorded on a data set basis.
  • This stored data consists of the input/output activity (the number of input and output operation to the data set) , the read percentage (percentage of operations that were reads) , and the locality of reference measure, which is defined as the number of input and output to the data set divided by the number of unique tracks covered by those inputs and outputs over the period monitored.
  • the name of the data set its size in bytes and a value called the reason code that flags data sets that are not suitable for moving.
  • This data is used by the computer system memory performance improvement apparatus in identifying the data sets that are to be moved and the target location for these data sets.
  • the computer system memory performance improvement apparatus consists of a set of integrated data storage management functions that use knowledge or expert system techniques to monitor and automatically assist in the control of performance of the direct access data storage sub-systems.
  • Figure 2 illustrates the principal components of the computer system memory performance improvement apparatus 103.
  • Memory performance improvement apparatus 103 interfaces with and runs on the MVS operating system 102 of mainframe 101.
  • the MVS operating system 102 provides device management, file management, test management, processor management, communication management and a number of other administrative functions to the computer system memory performance improvement apparatus 103.
  • Knowledge systems are computer based systems that emulate human reasoning by using an inference engine to interpret the encoded knowledge of human experts that is stored in a knowledge base. If the domain of the knowledge base is sufficiently narrow and a sufficiently large body of knowledge is properly coded in the knowledge base, then the knowledge system can achieve performance that matches or exceeds the ability of a human expert. In such a case, the knowledge system becomes an expert system.
  • One step in building an expert system is obtaining and encoding the collective knowledge of human experts into the machine readable expert system language.
  • the specific implementation details of this encoding step is largely a function of the particular syntax of the expert system programming language selected.
  • PROLOG which is described in the text "Programming In Prolog" by W. F. Clocksin and C. S. Mellish, Springer Verlag Inc. , New York, New York (1981) .
  • the expert system contains a set of rules and instructions on how the rules are to be applied to the available facts to solve a specific problem.
  • FIG. 1 illustrates some of the various routines or subsystems that are implemented in computer system memory performance improvement apparatus 103. Included are cache volume creation function 105, and DASD performance optimizer function 106. Cache subsystems often end up in a state where there are no volumes on the DASD subsystem suitable for caching, or where the number of I/Os to cached volumes account for only a fraction of the total number of I/Os to the subsystem.
  • the cache volume creation 105 creates volumes (205) on the subsystem that are suitable for caching.
  • the cache volume creation 105 monitors (201) the performance of the cache memory 160-169 and identifies where cache candidate data sets are in conflict with data sets that are unsuitable for caching (202) .
  • Cache volume creation 105 analyzes the data set conflicts and recommends data set movements (203) that separate the good candidates from the bad candidates thereby concentrating the cache candidate data sets on a few cachable volumes.
  • the cache volume creation 105 analyzes one DASD subsystem each time it is invoked by scheduler 109 and attempts to achieve the maximum effect with the minimum number of data set moves (204) .
  • DASD performance optimizer 106 makes data set movement recommendations to improve the performance and utilization of the DASD devices 150- 0 to 150-15.
  • DASD performance optimizer 106 operates in a proactive manner, moving data sets from over- utilized volumes and subsystems to under-utilized volumes and subsystems.
  • DASD performance optimizer 106 monitors (211) the activity on the DASD devices 150-0 to 150-15 and identifies (212) potential DASD performanceproblems caused by over-and under-utilized volumes and subsystems.
  • DASD performance optimizer 106 then relocates (213) data sets between volumes to avoid performance problems.
  • Scheduler 109 controls the operation of all functions and determines when activities can take place. Parameters used to establish a schedule are: installation size, peak processing times, list of functions to execute, user provided constraints.
  • Data Collection 171 records the I/O activity of all devices on a prescheduled basis (e.g. hourly totals) . In addition, detailed volume activity data and track data can be recorded. Data collection 171. creates the statistical information required by the remaining modules of the system.
  • Database 108 contains the system configuration information as well as the statistical activity data. Those skilled in this art will appreciate that in the use of the term "database”, it is contemplated that both "knowledge” and “configuration” are contained in the general data repository. Database 108 is illustrated as being stored on disk drive 150-15, although it could also be stored in computer memory performance improvement apparatus 103 on mainframe computer 101. Cache Volume creation
  • the Cache Volume Creation (CVC) module 105 is one of the performance tuning routines of the computer system memory performance improvement apparatus 103.
  • the cache volume creation module 105 uses Expert System techniques to analyze cache subsystems and make recommendations that improve input/output I/O performance in the computer system memory.
  • cache subsystems Because of the difficulty involved with using cache properly, or because of a lack of data management employees to do the job, cache subsystems often end up in a state where there are no volumes on the subsystem suitable for caching, or where the number of I/Os to cached volumes account for only a fraction of the total number of I/Os to the subsystem.
  • the purpose of the cache volume creation module is to remedy this situation by attempting to create volumes on the subsystem which are suitable for caching.
  • the job of the cache volume creation module is to identify where cache candidates are in conflict with data sets that are unsuitable for caching and recommend movements that separate the good candidates from the bad candidates, thereby concentrating the cache candidate data sets on a few cachable volumes.
  • the cache volume creation module tries to achieve the maximum performance improvement with the minimum number of moves.
  • the way that the cache volume creation module 302 operates is to first identify which data sets on the subsystem need to be cached. Those data sets that are good cache candidates are classified as good, and those which are bad cache candidates are classified as bad. Based on the classification of the data sets, the cache volume creation module 302 then determines which volumes are good cache volumes, which are bad, and which have good data sets in conflict with bad data sets. The volumes are classified as good, bad, and conflict respectively. The number of cache volumes required is then determined as are the data set moves needed to create this number of cache volumes. Then the conflict volumes are processed and the good data sets are separated from the bad data sets. Finally, the cache volume creation module 302 executes a last pass which checks if it can make significant improvements to cache candidate volumes with one or two moves.
  • the cache volume creation module 302 contains the function entry point that is called by the scheduler 109.
  • the cache volume creation module 302 then executes the sub-modules 303-308 as shown in Figure 3.
  • the cache volume creation module 302 exits it calls operating system 102 to execute the list of recommended data set movements and update the knowledge database 108 with the recommendations.
  • a pointer to a subsystem record for the subsystem being analyzed is passed. This record contains the subsystem information and also contains a pointer to the list of volume records, one for each volume of the subsystem.
  • Each of the volume records contains the volume information and a pointer to the list of data set records, one for each data set on the volume.
  • Each data set record contains information on data set activity.
  • the initialize module 303 performs the initialization required by the cache volume creation function including any data format conversion that needs to take place.
  • the initialize module 303 also looks for data sets with moves scheduled for them. At the time the data is collected for analysis, these data set moves had not been completed, but by the time any moves recommended by the current analysis are performed, these moves will have been carried out. This means that the state of the machine is different from the time the data was collected to the time the data set move recommendations are implemented and so data set move recommendations are based on the system as it would look if the moves already scheduled had been performed.
  • the initialize module 303 alters the input data to reflect this state of the system.
  • the purpose of the determine cache candidates module 304 is to determine which data sets on the subsystem to place on cached volumes. First the routine Classify Data Sets 311 is called which classifies the data sets as good, bad, or inactive based on how well they will perform if they are cached. Then the routine Determine Cutoff 312 is called. This routine determines if there is too much cache candidate data on the subsystem for the size of the cache and if so determines a cutoff that reduces the amount of cache candidate data down to the best data sets the size of cache will cope with. The Reclassify Data Sets 313 routine then reclassifies the cache candidate data sets that fall below the cutoff and flags them for possible movement to another cache subsystem.
  • the classify data set routine 311 classifies the data sets on the subsystem as good cache candidates, bad cache candidates, or inactive data sets. The classification is done by some simple rules of thumb based on the activity, the read percent, and the LORM of the data set. (The LORM is the Locality Of Reference Measure and is equal to the number of I/Os per second divided by the number of unique tracks accessed over the monitored period.)
  • the classify data sets module also classifies the good data sets into classes which reflect the degree to which the data set is suitable for caching. Thus, in selecting data sets to cache for the given cache size, the classify data sets module attempts to include the better cache candidates.
  • x, y and z are variables that are selected as optional for the particular device characteristics and the user's needs.
  • the determine cutoff routine 312 is responsible for deciding which cache candidates identified by the classify data sets routine 311 should be cached based on the size of the cache. Starting with the best cache candidates, and based on attributes of the data sets such as activity, read percent, and LORM, the determine cutoff routine 312 works its way down the list of cache candidates until a sufficient number of cache candidates are selected for the available cache size. This is where the determine cutoff routine 312 determines there should be a cutoff with those data sets above the cutoff being cached. In deciding where the cutoff is, the determine cutoff routine 312 also looks at the currently cached data and the read hit rate of the cache and devices.
  • the determine cutoff routine 312 determines that the given cache size can handle more than the amount of cachable data that is available on the subsystem, the determine cutoff routine 312 flags the subsystem as having an under-utilized cache.
  • 313 reclassifies the data sets which fall below the cutoff as bad data sets and flags them for possible movement to another cache subsystem.
  • the classify volumes routine 305 classifies the volumes of the subsystem as being good, bad, or conflict volumes based on whether the volume is a good cache candidate, a bad cache candidate, or whether there is good cache data in conflict with bad cache data on the volume.
  • the classify volumes routine 305 uses the classifications of the data sets to determine the classification of the volume. If the volume predominantly consists of good data sets, then the volume is classified as good. If the volume consists totally of bad data sets, then the volume is classified as a bad volume. If there is good data on the volume but there is also a significant amount of bad data, then there is a conflict between the good and bad data and the volume is classified as a conflict volume.
  • n is a predetermined threshold selected as a function of the characteristics of the device being monitored and the needs of the user.
  • the create cache volumes routine 306 is responsible for deciding how many cache volumes there should be on the subsystem and creating them if there are not enough good volumes already in existence.
  • First the determine number of cache volumes routine 314 is used to determine the desired number of cache volumes based on a predetermined device activity level and space constraints. The number of desired cache volumes is compared with the number of good cache volumes in existence to determine how many more good cache volumes must be created.
  • the Determine Resolution Strate y routine 315 decides how to resolve the conflicts on conflict volumes.
  • the determine resolution strategy routine 315 finds volume that will end up as good volumes by looking for volumes where the resolution strategy is to move the bad data sets off the volume. This is how the determine resolution strategy routine 315 creates the required number of cachable volumes.
  • the Create Cache Volumes routine 306 finds volumes which require the least number of moves to turn into good volumes.
  • the Data Set Placement routine 316 is used to decide where to relocate data sets needing movement to create cachable volumes.
  • the determine number of cache volumes routine 314 decides how many cache volumes there should be on the subsystem. It bases this decision on the space requirements of the identified cache candidates, the activity of the cache and non-cache candidates, the anticipated read hit rate of the cache and the devices, and the amount of space on the whole subsystem. The aim is to have enough cache volumes that device busy queuing is not a problem and space requirements for cache data are met, as well as trying to minimize device contention problems and space problems on non-cache volumes.
  • the resolve conflicts routine 307 processes the remaining conflict volumes by resolving the conflicts on the volumes.
  • a conflict is where there is cache data and a significant amount of non-cache data residing on the same volume. The volume can't be cached because the bad data would degrade the performance of the cache too much.
  • the resolve conflicts routine 307 decides on a resolution strategy, and then implements the strategy.
  • the resolution strategy is determined by the Determine Resolution Strategy routine 317 and can be one of
  • the Data Set Placement routine 317 is used to decide where to move the identified data sets.
  • the best way of eliminating the conflict must be determined, that is, the best way to separate the good and bad data from each other.
  • the good data sets can be relocated off the volume, the bad data sets can be relocated off the volume, or as many good data sets as possible can be salvaged. Salvaging the good data sets is used as a last resort where it is not possible to move the bad data sets off the volume due, perhaps, to immovable data sets or the number of moves involved and it is similarly not possible to move all of the good data sets off the volume. Under these circumstances, good data sets are salvaged by moving those good data sets that have significant activity and which are movable.
  • Each of these factors is represented as an attribute of the conflict volume whose value is derived from input data and other attributes.
  • the derivation of the value of the above attributes and the attributes from which these values are obtained are explained in detail in later sections.
  • This attribute is true if we are willing to move the bad data sets off the volume. That is, it is true if the number of moves required to move the bad data sets is less than or equal to the number of moves we are willing to make.
  • This attribute depends on the value of two other attributes: moves willing, and number of moves to move bad.
  • This attribute is true if the decision is made to move all of the good data sets off the volume. With the bad data sets, the number of moves it took to move the data sets is compared with a selected number of moves to make to determine whether to move the bad data sets. With the good data sets though, the data sets may be move candidates based on the number of moves selected, but not selected to move because there are some good data sets which aren't worth moving due to their low activity. So, this attribute is true if all of the good data sets are worth moving and the number of moves required is less than or equal to a selected number of moves.
  • This attribute depends on the value of these attributes: moves willing, and number of moves to move good.
  • the value of this attribute indicates whether it takes more moves to move the good data sets off the volume or whether it takes more moves to move the bad data sets.
  • the values it can take are: good, bad, or same. This attribute depends on the value of the following attributes: number of moves to move bad, and number of moves to move good.
  • This attribute indicates whether the activity of the good data is greater than or equal to the bad data or whether the bad data has more activity than the good data.
  • the values it can take are: good, or bad.
  • This attribute is true if the combined activity of the good data is sufficiently active to consider moving immovable data sets. This decision is based on the activity of the good data on the volume relative to the total amount of good activity on the subsystem and also on the importance of obtaining more cache data.
  • This attribute depends on the following attributes: activity classification. and importance of obtaining more cache data.
  • This attribute indicates which of the good and bad data is more immovable than the other. At the moment, one type of data is more immovable than the other if the most immovable data set of the first type is more immovable than the most immovable data set of the other type.
  • the values the attribute can have are: good. bad, or same.
  • the value of this attribute indicates the number of moves it will take to move the bad data sets off the conflict volume.
  • the number of moves is determined by the Data Set Placement module.
  • This attribute gives the number of moves required to move all of the good data sets off the conflict volume.
  • the number of moves is determined by the Data Set Placement module.
  • the procedure is to minimize the number of moves. For each conflict volume there is a number of moves that can be made based, principally, on the activity of the good data relative to the total amount of good data on the subsystem. So, where there is a lot of good data, more moves are desireable and where there is only a small amount of good data fewer moves are desireable. As well as the activity of the good data, the value of the attribute importance of obtaining more cache data is scrutinized. If it is important to put more cache data on the cache volumes then the number of moves permitted is correspondingly higher.
  • This attribute reflects how important it is to obtain more cache data. Of course, it is always important to obtain more cache data but this attribute indicates whether it is more important than usual or not. The decision about whether it is important to obtain more cache data is based on the amount of cache data so far obtained and the amount anticipated. The possible values for this attribute are: not important. important. or very important.
  • this module measures the amount of good data it anticipates will end up on good volumes is to measure the amount of good data on easily resolved conflict volumes and add this to the amount of good data already residing on good volumes. This method gives a very rough measure that is used to determine whether to work harder at getting more good data onto cache volumes.
  • conflict volume is considered to be easily resolved if :
  • the number of moves we are willing to make for the good data is greater than or equal to the number of bad data sets that would have to be moved to turn the volume into a good volume.
  • This module is used to classify the activity of some good data.
  • the classification is one of: low. moderate. high, or very high.
  • the classification is based on the percentage of the total amount of good activity on the subsystem attributable to the good data being classified.
  • t, u and v are preselected variables that are a function of device characteristics and user needs.
  • the preferred options for resolving the conflict are to move all of the selected bad data sets off the volume or to move all of the good data sets off the volume.
  • the result of the resolution process is to recommend that the good data on the volume be salvaged.
  • the salvage operation consists of examining each good data set on its own to determine whether it is worth moving to a good volume, thus making it cachable. If a good data set is not immovable, then it is worth salvaging if the number of moves permitted is enough to move it. If a good data set is immovable but not totally immovable, then not only does the number of moves permitted have to be enough to move it, but it has to have sufficient activity to warrant its movement off the volume. A totally immovable good data set can never be salvaged.
  • the data set placement routine 316 is used to decide where to place data sets that have been identified for movement. It attempts to recommend placement of a data set on the least active volume of the same classification on which it will fit. If there are no matching volumes on which the data set will fit, the data set placement routine 316 tries to find another data set on a matching volume that, when moved to another matching volume, frees enough space for the original data set. As a last resort the data set placement routine 316 considers moving the data set to another conflict volume for processing at a later date when hopefully it is easier to place.
  • the data set placement routine 316 is used during the conflict resolution process to determine how many moves are necessary to move a given set of data sets off a volume. This information is then used when deciding which of the good and bad data need more moves to be moved off a conflict volume.
  • This routine takes data set movements and adds them to the list of current recommendations.
  • Last Pass Optimization Just before the cache volume creation routine 302 finishes its analysis, the last pass optimization routine 308 is called in an attempt to find good volumes where one or two movements will result in a dramatic performance increase.
  • the last pass optimization routine 308 looks at all of the good or cache candidate volumes and identifies where there are still one or two moderately high activity bad data sets that could be moved off the volume to increase the cache suitability of the volume. If there is a bad data set on a good volume that accounts for more than a certain percentage of the total volume activity and can be moved off with only one move, then the movement of the data set off the volume is recommended (309) . Similarly, if there is a bad data set on a good volume that accounts for more than a predetermined percentage of the. total volume activity and it can be moved, then it is recommended (309) for movement off the volume.
  • the DASD Performance Optimizer (DPO) module 106 is one of the tuning analysis routines of the computer system memory performance improvement apparatus 103.
  • the DASD performance optimizer module 106 uses Expert System and artificial intelligence techniques to analyze the performance of the DASD devices in an installation and make recommendations of data set movements that improve I/O performance.
  • the purpose of the DASD performance optimizer module 106 is to make data set movement recommendations with the aim of improving the performance and utilization of the DASD devices.
  • the module tries to minimize the number of movements recommended.
  • the recommendations are based on data that has been collected as a result of monitoring the I/O activity and characteristics of the devices.
  • the module works in such a way as to prevent problems occurring rather than waiting for problems to occur before doing anything about them.
  • the DASD performance optimizer module 106 identifies devices and subsystems where problems could occur or where there is already a problem, and makes a few data set movement recommendations that will rectify the situation. In this way, data sets are moved from over-utilized volumes and subsystems to under-utilized volumes and subsystems.
  • the DPO module 402 also identifies where there are cache candidate data sets that could be moved to subsystems whose cache is being under-utilized. If necessary, it also moves data sets off cache subsystems when the cache on the subsystem is over-loaded.
  • any initial setup that is required has been done by operating system 102, it calls the DPO module 402 as a subroutine passing any information the module requires in a specified format.
  • the DPO module 402 terminates, it returns to the operating system 102 which performs any cleaning up that is needed before exiting.
  • the DASD performance optimizer module 402 tries to reorganize data sets that have been flagged for movement by the Cache Volume Creation module 105 so that they end up under cache controllers.
  • the subsystems and volumes that have problems or potential problems are identified.
  • sets of data sets on these subsystems and volumes are identified, whose movement would rectify the situation.
  • Each of the over-utilizations identified are then processed ordered by their priority and three alternative data set combinations are selected for each. The processing involves choosing the best of the sets of data sets, deciding where to move them, and generating appropriate recommendations.
  • the DASD performance optimizer module 402 controls the high level flow of execution and it calls operating system 102 to execute the list of data set move recommendations and to write these recommendations to the knowledge database 108.
  • the initialize routine 404 performs any initialization required including reformatting data if this is needed. This initialization process includes reading information from the database to create internal records for the data storage complex, each subsystem in the complex and each volume in each subsystem for which a record in the database exists.
  • the initialization routine 404 also obtains pool and host sharing information about each of the volumes stored in the data storage system and creates objects for each of the compatibility classes that exist.
  • a compatibility class is a combination user pool, set of sharing hosts and cachability type. If any moves are scheduled for data sets, then initialize routine
  • the Inter-Subsystem Cache Reorganization routine 405 exists to support the movement of cache candidate data sets across subsystems.
  • the cache volume creation function identifies where there are under ⁇ utilized caches and also where there are cache candidate data sets that can't be cached due to a lack of cache space on the subsystem.
  • DASD performance optimizer module 402 looks for under-utilized caches and tries to find cache candidate data sets that have been flagged for movement that it can move to these cache subsystems.
  • the DASD performance optimizer module 402 uses the cache suitability classification that cache volume creation 302 gives each cache candidate data set to decide which data sets should be moved to which subsystems. If the DASD performance optimizer 402 finds that there is a lot of good cache candidate data that is uncached and that there is not enough cache capacity on any of the cached subsystems, then this module writes out a message to user recommending that the user buy some more cache.
  • the job of the identification module 406 is to find subsystems and volumes which are over-utilized.
  • a volume or subsystem becomes a problem when the amount of activity is such that the amount of queuing for the device or for a path is unacceptable.
  • Volumes or subsystems are identified as over-utilized when they reach an activity level above some safety margin below the unacceptable level. This safety margin allows actual problems to be corrected as well as preventing problems from arising by detecting places that potentially could become problems.
  • the detection of these over-utilizations is based on the percent busy of a device or path, and the number of paths.
  • the percent busy measures are derived from the number of I/Os per second, the average data size transferred, the channel speed, the device service time, and the number of paths.
  • this module also decides how much data needs to be moved off the device or subsystem. This is represented by an amount of path time per second or device time per second that we need to reduce by.
  • a and b are predetermined variables.
  • a subsystem is not a cache subsystem and it is a subsystem of 8380 class devices and there are two paths and there is not actuator level buffering (ALB) and the paths are more than a busy then the subsystem is over-utilized
  • Identification module 406 in addition to identifying over-utilized subsystems and volumes, calculates the degree of over-utilization of each of these over-utilized subsystems. For example, where a particular subsystem has been identified as over- utilized, identification module 406 determines the amount of activity handled by this subsystem by for example adding up all of the input and output activities to the various volumes that constitute this subsystem. The identification module 406 then determines the capacity of the subsystem for extra activity. That is, it determines the number of extra input and output operations that the subsystem could handle without becoming overloaded. Once this calculation is completed, identification module 406 assigns a classification attribute to this particular subsystem which attribute is indicative of the degree ov over-utilization of the subsystem. This procedure is followed for each subsystem in the entire system that has been identified as over-utilized and similarly for each volume that has been identified as over-utilized.
  • the selecting alternatives routine 407 finds combinations of data sets that when moved off the volume or subsystem will solve the problem.
  • the selecting alternatives routine 407 selects three alternate combinations, known as alternatives for each over-utilized volume or subsystem. Each alternative is a set of data sets whose movement off the volume or subsystem will rectify the over-utilization. The reason for selecting three alternatives is so that, the over-utilization process, if there is a shortage of locations to place data sets, then there are three different alternatives, one of which will be able to be moved.
  • the selection of the alternatives is done by first generating candidate alternatives via the Candidate Generation routine 411, and then selecting the best three candidates via the Candidate Selection routine 412.
  • the candidate generation routine 411 generates candidate combinations of data sets whose combined activity is enough to rectify the over-utilization if they were moved off the volume or subsystem.
  • Candidate generation routine 411 determines the availability of space and activity capacity for each of the volumes in the compatibility class to which an identified over-utilized volume is assigned.
  • the availability measure is a variable that indicates how much available space and activity capacity is available on each volume. Greater significance is given to the occurrence of both space and activity capacity on a volume rather than the availability of one or the other.
  • the same calculation is performed to identify the possibility of moving data sets from one subsystem to another subsystem. This is the case where all of the volumes in the compatibility class reside on more than one subsystem in the system.
  • relocating a data set to a different subsystem maintains the data set within the same compatibility class but reduces the level of utilization of the subsystem that initially had the data set stored thereon.
  • a threshold is calculated and data sets with an activity below the threshold are ignored.
  • immovable data sets are excluded and the combined activity of the data sets are selected close to that required for movement.
  • candidates for fixing a subsystem problem candidates are identified that would also solve any volume problems there may be within the subsystem.
  • the candidate selection routine 412 selects three candidates to be the alternatives for a volume or subsystem. In performing this operation, candidate selection routine 412 calculates a measure of the difficulty of placement of a data set on another volume. This measure indicates the anticipated difficulty in moving the data set from its present location on a particular over-utilized volume to another candidate volume that is not over-utilized and yet in the same compatibility class. In investigating the placement of a data set, the candidate selection routine 412 determines whether the destination volume is compatible with the source volume. That is, the destination volume must be shared by the same set of hosts as the source volume, and must also be in the same user defined pools. In addition, candidate selection routine 412 attempts to move non-cache data sets to non-cache volumes.
  • candidate selection routine 412 Apart from finding a volume compatible with the source volume of the data set, candidate selection routine 412 must locate a volume that enough room for the data set and one which has enough capacity for extra activity resultant from the relocation of the data set.
  • One of the goals used in the selection process is to try to minimize the number of data sets in an alternative because we are trying to minimize the number of moves that need to be performed. It is still possible that some of the candidate alternatives have immovable data sets in them so another goal of the selection process is to try not to select alternatives with immovable data sets. Large data sets are excluded from alternatives and to select alternatives for a subsystem that solve any volume problems within the subsystem. Another goal is trying to make the three alternatives different from each other so that being unable to move one alternative won't necessarily mean another can't be moved.
  • the Process Over-Utilization routine 408 processes all of the over-utilizations by finding the one with the highest priority and calling the Rectify Over-Utilization routine 414 to fix it.
  • the intention is that over-utilizations that are severely impacting the I/O sub-system or over-utilizations that are difficult to fix should get a high priority and be processed first. Find Highest Over-Utilization
  • the priority of an over-utilization is based on the degree of over-utilization and the degree of difficulty anticipated in rectifying the over- utilization.
  • the degree of difficulty is based on how much space and activity capacity is available and how much, based on the selected alternatives, a given over-utilization will need.
  • the degree of over- utilization is based on the degree to which I/O performance is degraded for that device or subsystem. To find the highest priority over-utilization, the find highest priority over-utilization routine 413 balances the degree of over-utilization and the degree of difficulty.
  • the rectify over- utilization routine 414 fixes the problem by deciding which set of data sets to move off the volume or subsystem and where to move them to. This is achieved by calling the Choose Alternative routine 415 to decide which alternative to move off the volume or subsystem. The Data Set Placement routine 416 is then used to decide where to put the data sets of the alternative.
  • the choose alternative routine 415 chooses the alternative to move by picking the best one for whose data sets there is space and activity capacity available.
  • the data set placement routine 416 decides the best place to put data sets. Data sets that reside on shared volumes must only ever be moved to volumes that are shared by the same hosts and the movement of a data set should not cause the destination volume to become over-utilized. If the data set placement routine 416 finds that there is not enough space available for the data set it will consider moving one other data set to make enough room.
  • Data set placement routine 416 moves the data set from an over-utilized volume or subsystem to an under ⁇ utilized volume on an under-utilized subsystem. In the process of deciding where to move the data set to, one other data set may be moved to make room or to make enough activity capacity available. The list of moves done to achieve moving the original data set stored in memory. There are two different ways that a data set can be placed. The first is where there are under-utilized volumes on under-utilized subsystems which are in the same compatibility class as the data set and on which the data set will fit. In this case, data set placement routine 416 places the data set on the one of the volumes in this subsystem that has the least activity. The second manner in which the data set can be placed is the situation where there are no volumes that satisfy the above criteria. In this case, data set placement routine 416 identifies a pair of volumes of the same type such that if a data set is moved from one of them to the other, this move will make enough room or activity capacity available for the original data set. Summary
  • the memory performance improvement apparatus identifies memory performance conflicts, such as a performance degradation of the computer system data storage devices due to a plurality of computers in the computer system attempting to access a common data storage device.
  • the memory performance improvement apparatus identifies the performance conflict as well as the data sets stored on these data storage devices related to this conflict. Once the data sets involved in the performance conflict are identified, the memory performance improvement apparatus determines alternative memory storage locations for these data sets and activates various software routines to transport these conflict data sets to the alternative data storage locations. The relocation of these conflict data sets resolves the memory performance conflict and improves the retrievability of the data stored on these data storage devices.
  • the data storage devices of the computer system are operated in a more efficient manner and the retrievability of the data stored on these data storage devices is significantly improved without the need for the data management personnel.
  • the computer system memory performance improvement apparatus therefore continuously monitors and modifies the performance of the data storage devices associated with the computer system. While a specific embodiment of the invention has been illustrated, it is expected that those skilled in the art can and will devise variations of this system that fall within the scope of the appended claims.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

L'appareil de l'invention concerne un certain nombre de bases de données utilisées par le logiciel (103) du système expert pour gérer les dispositifs (106, 180) de stockage de données du système informatique (101). Un élément équipant cet appareil est un ensemble de données (171) de configuration du dispositif de stockage de données fournissant une description des divers dispositifs (160, 180) de stockage de données. Un second élément est une base de données (108) de connaissances comportant un ensemble de règles fonctionnelles décrivant la fonction de gestion du dispositif de stockage de données. Ces règles indiquent les caractéristiques des divers dispositifs (160, 180) de stockage de données ainsi que les démarches à entreprendre afin d'assurer les différentes fonctions d'amélioration nécessaires à la mémoire (160, 180) du système informatique.
PCT/US1989/005709 1988-12-29 1989-12-20 Appareil ameliorant les performances de memoire d'un systeme informatique WO1990007746A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US29262688A 1988-12-29 1988-12-29
US292,626 1988-12-29

Publications (1)

Publication Number Publication Date
WO1990007746A1 true WO1990007746A1 (fr) 1990-07-12

Family

ID=23125480

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1989/005709 WO1990007746A1 (fr) 1988-12-29 1989-12-20 Appareil ameliorant les performances de memoire d'un systeme informatique

Country Status (5)

Country Link
EP (1) EP0451196A4 (fr)
JP (1) JPH04502527A (fr)
AU (1) AU628911B2 (fr)
CA (1) CA2006836C (fr)
WO (1) WO1990007746A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0670543A1 (fr) * 1994-03-01 1995-09-06 International Business Machines Corporation Attribution automatisée d'espace de stockage dans un système de stockage de données
EP1860543A2 (fr) * 1996-04-08 2007-11-28 Hitachi, Ltd. Contrôleur de stockage

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4403286A (en) * 1981-03-06 1983-09-06 International Business Machines Corporation Balancing data-processing work loads
US4542458A (en) * 1982-05-21 1985-09-17 Hitachi, Ltd. Method of and apparatus for assigning software resources to memory devices
US4603382A (en) * 1984-02-27 1986-07-29 International Business Machines Corporation Dynamic buffer reallocation
US4633387A (en) * 1983-02-25 1986-12-30 International Business Machines Corporation Load balancing in a multiunit system
US4636946A (en) * 1982-02-24 1987-01-13 International Business Machines Corporation Method and apparatus for grouping asynchronous recording operations
US4680703A (en) * 1984-06-25 1987-07-14 International Business Machines Corp. Data processing system with reorganization of disk storage for improved paging
US4703422A (en) * 1983-12-28 1987-10-27 Hitachi, Ltd. Memory hierarchy control method with replacement based on request frequency
US4839798A (en) * 1984-11-07 1989-06-13 Hitachi, Ltd. Method and apparatus for controlling job transfer between computer systems

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4403286A (en) * 1981-03-06 1983-09-06 International Business Machines Corporation Balancing data-processing work loads
US4636946A (en) * 1982-02-24 1987-01-13 International Business Machines Corporation Method and apparatus for grouping asynchronous recording operations
US4542458A (en) * 1982-05-21 1985-09-17 Hitachi, Ltd. Method of and apparatus for assigning software resources to memory devices
US4633387A (en) * 1983-02-25 1986-12-30 International Business Machines Corporation Load balancing in a multiunit system
US4703422A (en) * 1983-12-28 1987-10-27 Hitachi, Ltd. Memory hierarchy control method with replacement based on request frequency
US4603382A (en) * 1984-02-27 1986-07-29 International Business Machines Corporation Dynamic buffer reallocation
US4680703A (en) * 1984-06-25 1987-07-14 International Business Machines Corp. Data processing system with reorganization of disk storage for improved paging
US4839798A (en) * 1984-11-07 1989-06-13 Hitachi, Ltd. Method and apparatus for controlling job transfer between computer systems

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0670543A1 (fr) * 1994-03-01 1995-09-06 International Business Machines Corporation Attribution automatisée d'espace de stockage dans un système de stockage de données
US5790886A (en) * 1994-03-01 1998-08-04 International Business Machines Corporation Method and system for automated data storage system space allocation utilizing prioritized data set parameters
EP1860543A2 (fr) * 1996-04-08 2007-11-28 Hitachi, Ltd. Contrôleur de stockage
EP1860543A3 (fr) * 1996-04-08 2011-05-11 Hitachi, Ltd. Contrôleur de stockage

Also Published As

Publication number Publication date
JPH04502527A (ja) 1992-05-07
AU628911B2 (en) 1992-09-24
CA2006836C (fr) 1995-08-29
AU4829290A (en) 1990-08-01
EP0451196A4 (en) 1992-12-23
EP0451196A1 (fr) 1991-10-16
CA2006836A1 (fr) 1990-06-29

Similar Documents

Publication Publication Date Title
US5131087A (en) Computer system having apparatus for automatically redistributing data records stored therein
US5325505A (en) Intelligent storage manager for data storage apparatus having simulation capability
US7734616B2 (en) Storage system having means for acquiring execution information of database management system
Thiébaut et al. Improving disk cache hit-ratios through cache partitioning
US6871272B2 (en) Data sorting in information storage systems
US5734861A (en) Log-structured disk array with garbage collection regrouping of tracks to preserve seek affinity
JP4405935B2 (ja) マルチパス・コンピュータ・システムにおけるパス間でワークロードのバランスを取る方法および装置
US8380947B2 (en) Storage application performance matching
US6912635B2 (en) Distributing workload evenly across storage media in a storage array
US5345584A (en) System for managing data storage based on vector-summed size-frequency vectors for data sets, devices, and residual storage on devices
US7783852B2 (en) Techniques for automated allocation of memory among a plurality of pools
US7058764B2 (en) Method of adaptive cache partitioning to increase host I/O performance
US6256704B1 (en) Task management for data accesses to multiple logical partitions on physical disk drives in computer systems
CN109740037A (zh) 多源、异构流态大数据分布式在线实时处理方法及系统
EP0974908A2 (fr) Gestion de mémoire virtuelle optimisé pour des types de données dynamique
US20130297873A1 (en) Enhancing tiering storage performance
US20070005556A1 (en) Probabilistic techniques for detecting duplicate tuples
EP0356773A2 (fr) Système d'attribution de fichier
JPH0326419B2 (fr)
Herodotou et al. Automating distributed tiered storage management in cluster computing
US6961727B2 (en) Method of automatically generating and disbanding data mirrors according to workload conditions
Salkhordeh et al. ReCA: An efficient reconfigurable cache architecture for storage systems with online workload characterization
US8095768B2 (en) VSAM smart reorganization
AU628911B2 (en) Computer system memory performance improvement apparatus
Ebrahimi et al. Rc-rnn: Reconfigurable cache architecture for storage systems using recurrent neural networks

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU JP

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE ES FR GB IT LU NL SE

WWE Wipo information: entry into national phase

Ref document number: 1990901419

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1990901419

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1990901419

Country of ref document: EP