Preserving SMF Data

SMF records may be created by SMF itself or by other components of the operating system or certain application programs (such as CICS® and DB2®). These records are then passed to SMF, which copies them to buffers and then asynchronously writes them to the SMF data sets. The control interval size you select for the SMF data sets determines the size of each SMF buffer. To keep real storage use to a minimum, SMF automatically obtains and releases more buffers as SMF activity increases and decreases.

When no output data sets are available for use or when SMF collects data more quickly than it can write records, SMF holds the data in its address space. You must correct the condition causing the problem before SMF uses all of the available storage, or data will be lost.

SMF writes message IEE986E to the console when the percentage of buffers in use in the SMF address space reaches or exceeds the buffer usage warning percentage for all available storage. The buffer usage warning percentage is specified with the BUFUSEWARN parameter (the default value is 25 percent, see Using SMFPRMxx parameters for more information). The maximum amount of storage available to SMF is set with the BUFSIZMAX parameter (the default is 128M, see Using SMFPRMxx parameters). Until the percentage of buffers in use decreases below the specified BUFUSEWARN value, message IEE986E is redisplayed with updated percentage values as each additional SMF buffer is made ready for use or becomes available. When the percentage of buffers in use decreases below the specified BUFUSEWARN value, the message is deleted. If the percentage of use does not decrease the following possible operator actions can be taken:
  1. Use the DISPLAY SMF command to check on the status of the SMF data sets. If no data sets are active or available, use the SMF dump program (IFASMFDP) to clear one and make it available for use."
  2. The DISPLAY SMF, O command can be used to determine the maximum amount of buffer space available for SMF to use. If the percentage of buffer space in use is approaching or has reached the 100 percent level of all available storage for SMF buffering, then consider increasing the BUFSIZMAX value to allow for additional SMF record buffering. This action can aid in reducing the loss of SMF record data when there is a spike in SMF recording activity or there is a temporary inhibitor to making the SMF data set available for use. Since the BUFSIZMAX value can also be reduced from its current setting, if an increase is put into effect to handle a temporary constraint condition, then the BUFSIZMAX value can be reduced when the constraint clears.
  3. In addition, use the DISPLAY SMF,O command to check the record types that are being collected. Reducing the number of records being collected will slow the allocation and use of the buffers.
After taking the possible actions, if the percentage of use does not decrease SMF will eventually run out of storage for its buffers and stop recording data resulting in lost SMF records. Use the SMF NOBUFFS parameter (see Using SMFPRMxx parameters), to specify what the system is to do in this situation. The possible system actions are:
  1. continue processing with the loss of SMF data or
  2. enter a restartable wait state.

In the same way, you can control system action when the last available SMF data set is filled using the SMF LASTDS parameter.

Use the MAXDORM parameter to minimize the amount of data lost because of system failure. By specifying MAXDORM, your installation specifies the period of real time that data is permitted to remain in the SMF buffer before it is written. (See Using SMFPRMxx parameters.)

When there is a system failure, data in the SMF address space is lost, because it has not yet been written to a data set. If the events recorded in SMF records are very important to your installation, you should take a system dump that includes the SMF address space. You can then use the Interactive Problem Control System (IPCS) subcommand SMFDATA to read the dump, extract the data in the SMF buffers, and write it to an SMF data set. For more information on SMFDATA, see z/OS MVS IPCS Commands.