z/OS Communications Server: SNA Network Implementation Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Guidelines for dynamic expansion

z/OS Communications Server: SNA Network Implementation Guide
SC27-3672-01

The following guidelines help you determine appropriate buffer pool values for your system.

If xpanno or xpanpt has a value of 0, no expansion occurs.
  • Set baseno for the I/O buffer to the steady state value plus xpanpt.

    You can determine steady state by issuing the DISPLAY BFRUSE operator command. CURR TOTAL minus CURR AVAIL gives the number of buffers in use. Repeat this procedure several times, and take the average to determine the steady state value. Be sure to include in your calculation displays taken during times of peak network usage.

    Any additional buffers needed can be obtained using dynamic expansion.

  • Define dynamic expansion so that pools are expanded one page at a time.

    To do this, define xpanno to be the number of buffers that fit on one page. To calculate xpanno for I/O buffers, use Table 2, and do the following steps:

    1. Find the bufsize range in the table that includes the bufsize value that was specified for your system.
    2. Round up the current bufsize to the largest even number that appears in that range. (Some channel-attached SNA devices require that the I/O bufsize be an even number of bytes. Therefore, VTAM® rounds up bufsize to an even number if an odd number is specified.)
    3. For one-page expansion, specify an xpanno value that is equal to the number in the left column of this row (the number of I/O buffers for each page).
  • Tune the expansion increments (xpanno) and expansion points (xpanpt) to keep CPU overhead from dynamic buffering low.
    • Expansion and contraction of buffer pools increase the amount of real storage that VTAM requires. If the buffer pools are continually expanding and contracting, you should change the values specified for xpanno and xpanpt. You can determine what values to specify by monitoring the output of the DISPLAY BFRUSE operator command or the SMS buffer trace and by modifying the values for xpanno and xpanpt accordingly.
    • If the expansion point is set too small, VTAM might not be able to expand the buffer pool fast enough if there is a rapid demand for buffers. Setting the expansion point too small also causes the buffer pool to contract frequently.

      Message IST561I might indicate that storage is temporarily unavailable because of this rapid demand. Adjust the xpanpt and xpanno values to eliminate this problem.

      The expansion point for I/O buffers should be larger than the largest single request for buffers. Following are examples of the largest single request:
      • MAXBFRU allocation
      • NetView® session monitor trace buffer size
      • JES/NJE TPBFSIZ
    • If excessive expansion and contraction are a problem (especially for LPBUF and CRPLBUF), define these buffers to expand two pages at a time.

      The buffer pool can expand and contract too frequently if the expansion increment and expansion point are not large enough to handle normal fluctuation in the pool. The I/O buffer pool is prone to this type of thrashing from application programs that send very large messages. VTAM always rounds up an expansion increment to fill a multiple of a full page.

  • Initially allocate one page to SFBUF.

    Any elements (where an element consists of a buffer, whose size is rounded to a multiple of 8 bytes, plus a 16-byte header) that are required over a page should be controlled by dynamic expansion.

  • Set CRPLBUF.

    In environments where many sessions come up simultaneously because of either the VARY LOGON operator command or the LOGAPPL operand on a definition statement, you might need to preallocate enough CRPLBUF buffers to handle the influx of requests.

  • Set LFBUF.

    LFBUF is used only for EAS values (on APPL definition statements) less than 30. Because this pool is not used often, a baseno value of 2 is recommended. If you are using TSO, a buffer from the LFBUF buffer pool is used for each TSO user who is logged on. The pool should be expanded one page at a time.

  • Specify xpanlim for the IOBUF pool.

    xpanlim is useful in constraining the I/O buffer pool from excessive growth, particularly when a logical unit attempts to flood VTAM with requests (HOT I/O). Typically, the logical unit is malfunctioning; however, the logical unit may be functioning correctly but may not have had proper session parameters specified. Specifying xpanlim allows VTAM to detect such sessions before complete CSA exhaustion and, if the HOTIOTRM Start Option is also specified, terminate such sessions without the system being impacted.

    To set xpanlim, issue DISPLAY BFRUSE,BUFFER=IO find the peak usage, and set the limit somewhat above that peak. Because xpanlim is specified in units of 1024 (K) bytes, you will need to convert buffers to KB. Use Table 2 to determine the number of I/O buffers of a given size that fit on a 4K page. Use the equation K=(number of buffers/number of buffers per page)*4.

    Tip: You can modify the xpanlim value after VTAM startup using the MODIFY BFRUSE command. See z/OS Communications Server: SNA Operation for information about this command.

    Also, bear in mind that in order for the expansion limit to be meaningful, CSA must be available were the expansion limit to be reached and VTAM must not reach any CSA limit value that has been specified. In other words, ensure that you have adequate CSA available in the system and your CSA limits allow VTAM to actually allocate buffers up to your expansion limit.

    Note: In Table 2, where it lists a range of buffer sizes for a given buffers per page value, whenever possible use the highest value in the range. Some devices have specific I/O buffer size requirements that may prevent using the highest value.

Table 1 lists the number of buffers per page for the different buffer pools.

Table 1. Number of buffers per page
Buffer pool Default storage type Buffers per page
APBUF Fixed 56
BSBUF Fixed 14
CRA4 Pageable 1
CRA8 Pageable NA
CRPLBUF Pageable 25
LFBUF Fixed 30
LPBUF Pageable 2
SFBUF Fixed 32
SPBUF Pageable 21
TIBUF Fixed 6
T1BUF Fixed 4
T2BUF Fixed 2
XDBUF Fixed 5
Table 2. I/O buffer size and number of buffers per page
Number of buffers per page Range of buffer sizes for MVS™ (with 4K paging) Range of buffer sizes for MVS using data encryption facility (with 4K paging)
1 1958 - 3992 1951 - 3985
2 1270 - 1957 1263 - 1950
3 934 - 1269 927 - 1262
4 726 - 933 719 - 926
5 590 - 725 583 - 718
6 494 - 589 487 - 582
7 422 - 493 415 - 486
8 358 - 421 351 - 414
9 318 - 357 311 - 350
10 278 - 317 271 - 310
11 256 - 277 256 - 270
Note: The buffer size in the table is the size coded on the IOBUF start parameter. For information about the calculations used in arriving at these values, see the z/OS Communications Server: SNA Resource Definition Reference.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014