Plan the page sets and buffer pools
Information to help you with planning the initial number, and sizes of your page data sets, and buffer pools.
This topic contains the following sections:
- Plan your page sets
- Calculate the size of your page sets
- Enabling dynamic page set expansion
- Defining your buffer pools
Plan your page sets
- Page set usage
For short-lived messages, few pages are normally used on the page set and there is little or no I/O to the data sets except at startup, during a checkpoint, or at shutdown.
For long-lived messages, those pages containing messages are normally written out to disk. This operation is performed by the queue manager in order to reduce restart time.
Separate short-lived messages from long-lived messages by placing them on different page sets and in different buffer pools.
- Number of page sets
Use several large page sets can make the role of the IBM MQ administrator easier because it means that you need fewer page sets, making the mapping of queues to page sets simpler.
Use multiple, smaller page sets has a number of advantages. For example, they take less time to back up, and I/O can be carried out in parallel during backup and restart. However, consider that this adds a significant performance cost to the role of the IBM MQ administrator, who is required to map each queue to one of a much greater number of page sets.
Define at least five page sets, as follows:
- A page set reserved for object definitions (page set zero)
- A page set for system-related messages
- A page set for performance-critical long-lived messages
- A page set for performance-critical short-lived messages
- A page set for all other messages
Defining your buffer pools explains the performance advantages of distributing your messages on page sets in this way.
- Size of page sets
Define sufficient space in your page sets for the expected peak message capacity. Consider for any unexpected peak capacity, such as when a build-up of messages develops because a queue server program is not running. We can be do this by allocating the page set with secondary extents or, alternatively, by enabling dynamic page set expansion. For more information, see Enabling dynamic page set expansion.
When planning page set sizes, consider all messages that might be generated, including non-application message data. For example, trigger messages, event messages and any report messages that our application has requested.
The size of the page set determines the time taken to recover a page set when restoring from a backup, because a large page set takes longer to restore.
Note: Recovery of a page set also depends on the time the queue manager takes to process the log records written since the backup was taken; this time period is determined by the backup frequency. For more information, see Plan for backup and recovery. Note: Page sets larger than 4 GB require the use of SMS extended addressability.
Calculate the size of your page sets
For queue manager object definitions (for example, queues and processes), it is simple to calculate the storage requirement because these objects are of fixed size and are permanent. For messages however, the calculation is more complex for the following reasons:
- Messages vary in size.
- Messages are transitory.
- Space occupied by messages that have been retrieved is reclaimed periodically by an asynchronous process.
Large page sets of greater than 4 GB that provide extra capacity for messages if the network stops, can be created if required. It is not possible to modify the existing page sets. Instead, new page sets with extended addressability and extended format attributes, must be created. The new page sets must be the same physical size as the old ones, and the old page sets must then be copied to the new ones. If backward migration is required, page set zero must not be changed. If page sets less than 4 GB are adequate, no action is needed.
- Page set zero
- For page set zero, the storage required is:
(maximum number of local queue definitions x 1010) (excluding shared queues) + (maximum number of model queue definitions x 746) + (maximum number of alias queue definitions x 338) + (maximum number of remote queue definitions x 434) + (maximum number of permanent dynamic queue definitions x 1010) + (maximum number of process definitions x 674) + (maximum number of namelist definitions x 12320) + (maximum number of message channel definitions x 2026) + (maximum number of client-connection channel definitions x 5170) + (maximum number of server-connection channel definitions x 2026) + (maximum number of storage class definitions x 266) + (maximum number of authentication information definitions x 1010) + (maximum number of administrative topic definitions x 15000) + (total length of topic strings defined in administrative topic definitions)Divide this value by 4096 to determine the number of records to specify in the cluster for the page set data set.
You do not need to allow for objects that are stored in the shared repository, but you must allow for objects that are stored or copied to page set zero (objects with a disposition of GROUP or QMGR).
The total number of objects that we can create is limited by the capacity of page set zero. The number of local queues that we can define is limited to 524 287.
- Page sets 01 - 99
For page sets 01 - 99, the storage required for each page set is determined by the number and size of the messages stored on that page set. (Messages on shared queues are not stored on page sets.)
Divide this value by 4096 to determine the number of records to specify in the cluster for the page set data set.
- Calculating the storage requirement for messages
This section describes how messages are stored on pages. Understanding this can help you calculate how much page set storage you must define for your messages. To calculate the approximate space required for all messages on a page set you must consider maximum queue depth of all the queues that map to the page set and the average size of messages on those queues.
Note: The sizes of the structures and control information given in this section are liable to change between major releases. For details specific to your release of IBM MQ, refer to SupportPac MP16 - WebSphere MQ for z/OSĀ® Capacity planning & tuning and MP1E / MP1F / MP1G - WebSphere MQ for z/OS Vx.x.x Performance reportYou must allow for the possibility that message "gets" might be delayed for reasons outside the control of IBM MQ (for example, because of a problem with your communications protocol). In this case, the "put" rate of messages might far exceed the "get" rate. This can lead to a large increase in the number of messages stored in the page sets and a consequent increase in the storage size demanded.
Each page in the page set is 4096 bytes long. Allowing for fixed header information, each page has 4057 bytes of space available for storing messages.
When calculating the space required for each message, the first thing you must consider is whether the message fits on one page (a short message) or whether it needs to be split over two or more pages (a long message). When messages are split in this way, you must allow for additional control information in your space calculations.
For the purposes of space calculation, a message can be represented as the following:
The message header section contains the message descriptor and other control information, the size of which varies depending on the size of the message. The message data section contains all the actual message data, and any other headers (for example, the transmission header or the IMS bridge header).
A minimum of two pages are required for page set control information which, is typically less than 1% of the total space required for messages.
- Short messages
A short message is defined as a message that fits on one page.
From IBM WebSphere MQ Version 7.0.1, small messages are stored one on each page.
- Long messages
- If the size of the message data is greater than 3596 bytes, but not greater than 4 MB, the message is classed as a long message. When presented with a long message, IBM MQ stores the message on a series of pages, and stores control information that points to these pages in the same way that it would store a short message. This is shown in Figure 1:
- Very long messages
Very long messages are messages with a size greater than 4 MB. These are stored so that each 4 MB uses 1037 pages. Any remainder is stored in the same way as a long message, as described above.