MAXBUF parameter: Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (→‎If BTB buffers are used: add X'02' as possible (V7.7) XMEMOPT default)
 
(3 intermediate revisions by 2 users not shown)
Line 16: Line 16:
==Description==
==Description==
<p>
<p>
The maximum number of in-memory file page buffers that can be allocated during <var class="product">Model&nbsp;204</var> initialization</p>
<var>MAXBUF</var> specifies the maximum number of in-memory file page buffers that can be allocated below the bar (BTB) during <var class="product">Model&nbsp;204</var> initialization.</p>
<p>
<p>
The actual number of pages allocated to the disk buffer pool can be identified by viewing the parameter <var>[[NUMBUF parameter|NUMBUF]]</var>.</p>
The actual number of BTB pages allocated to the disk buffer pool can be identified by viewing the parameter <var>[[NUMBUF parameter|NUMBUF]]</var>.</p>
<blockquote class="note"><b>Note:</b> As of version 7.7 of Model&nbsp;204, whether BTB buffers are used at all depends entirely on the setting of <var>[[NUMBUFG parameter|NUMBUFG]]</var>, which activates buffer storage above the bar.
<ul>
<li>If <var>NUMBUFG</var> is greater than 0, <i>all</i> buffer pool buffers are forced above the bar — no buffers are below the bar. The <var>MINBUF</var> and <var>NUMBUF</var> parameters are forced to 0, and the other parameters that affect BTB storage (<var>MAXBUF</var>, <var>SPCORE</var>, <var>LDKBMWND</var>, and <var>NLRUQ</var>) are ignored. </li>
 
<li>If <var>NUMBUFG</var> is set to 0, all buffers are below the bar, and the settings of the BTB-related parameters are respected and calculated as in pre-7.7 versions. </li>
</ul>
</blockquote>
 
===If BTB buffers are used===
<p>
<p>
If <var>[[NLRUQ parameter|NLRUQ]]</var> is set greater than 1, then the value of <var>MAXBUF</var> is rounded up to a multiple of <var>NLRUQ</var>. The maximum setting is 300000. Also, you must set <var>[[XMEMOPT_parameter|XMEMOPT]]</var>=X'02' to get more than about 15000-18000 or so actually allocated to <var>NUMBUF</var>. From V7.4 onwards, if the M204XSVC module has been linked into the nucleus, then <var>XMEMOPT</var> defaults to X'03', which includes the X'02' setting, and thus the <var>MAXBUF</var> setting should always be achieved, provided that sufficient REGION is available. </p>
When BTB buffers are being used (that is, <var>NUMBUFG</var> is 0 under version 7.7 or higher, or <var>NUMBUFG</var> is any value under Model&nbsp;204 prior to 7.7): </p>
<ul>
<li>If <var>[[NLRUQ parameter|NLRUQ]]</var> is set greater than 1, then the value of <var>MAXBUF</var> is rounded up to a multiple of <var>NLRUQ</var>. The maximum setting is 300000. </li>
 
<li>You must set the <var>[[XMEMOPT parameter|XMEMOPT]]</var> X'02' bit to get more than about 15000-18000 actually allocated to <var>NUMBUF</var>.  
<p>
<p>
If <var>MAXBUF</var> is set to a value less than <var>[[MINBUF_parameter|MINBUF]]</var>, <var>MAXBUF</var> is automatically reset to the value of <var>MINBUF</var> and the following message is issued: </p>
If the M204XSVC module is linked into the nucleus, <var>XMEMOPT</var> defaults to X'03' (as of version 7.4) or X'02' (as of version 7.7), so the <var>MAXBUF</var> setting should be achieved, provided that sufficient [[Defining the runtime environment (CCAIN)#Calculating region size|REGION]] is available. </p></li>
<p class="code">M204.1190: MAXBUF SET TO SAME VALUE AS MINBUF -%C
 
<li>If <var>MAXBUF</var> is set to a value less than <var>[[MINBUF parameter|MINBUF]]</var>, <var>MAXBUF</var> is automatically reset to the value of <var>MINBUF</var>, and the following message is issued:  
<p class="code">M204.1190: MAXBUF SET TO SAME VALUE AS MINBUF -<i>%C</i>
</p></li>
 
<li>You can use the <var>[[MONITOR command: Disk buffers|MONITOR DISKBUFF]]</var> command to display, from each table of each file, the number of BTB pages that are currently located in the disk buffers.</li>
 
<li>If the prefetch feature is enabled (<var>[[SEQOPT parameter|SEQOPT]]</var>=1), then the <var>MAXBUF</var> parameter must be resized based on the following formula:
<p class="code">MAXBUF = [[NUSERS parameter|NUSERS]] * (4 + 2 * (Maximum FOR EACH RECORD loop nest level))
</p>
</p>
<p>
<p>
You can use the <var>[[MONITOR_command:_Disk_buffers|MONITOR DISKBUFF]]</var> command to display, from each table of each file, the number of pages that are currently located in the disk buffers.</p>
The prefetch feature is described in [[Record loops#The prefetch (look-ahead read) feature|The prefetch (look-ahead read) feature]] and in [[Performance monitoring and tuning#Prefetch feature|Prefetch feature]].  </p></li>
<p>
</ul>
If the prefetch feature is enabled (<var>[[SEQOPT_parameter|SEQOPT]]</var>=1), then the <var>MAXBUF</var> parameter must be resized based on the following formula: </p>
<p class="code">MAXBUF = NUSERS * (4 + 2 * (Maximum FOR EACH RECORD loop nest level))
</p>
<p>
The prefetch feature is described in [[Record loops#The prefetch (look-ahead read) feature|The prefetch (look-ahead read) feature]] and in [[Performance monitoring and tuning#Prefetch feature|Prefetchfeature]].  </p>


[[Category:System parameters]]
[[Category:System parameters]]
[[Category:Parameters]]
[[Category:Parameters]]

Latest revision as of 01:13, 26 January 2017

Maximum number of buffers

Summary

Default value
256
Parameter type
System
Where set
On User 0's parameter line
Related products
All
Introduced
Model 204 V2.2 or earlier

Description

MAXBUF specifies the maximum number of in-memory file page buffers that can be allocated below the bar (BTB) during Model 204 initialization.

The actual number of BTB pages allocated to the disk buffer pool can be identified by viewing the parameter NUMBUF.

Note: As of version 7.7 of Model 204, whether BTB buffers are used at all depends entirely on the setting of NUMBUFG, which activates buffer storage above the bar.

  • If NUMBUFG is greater than 0, all buffer pool buffers are forced above the bar — no buffers are below the bar. The MINBUF and NUMBUF parameters are forced to 0, and the other parameters that affect BTB storage (MAXBUF, SPCORE, LDKBMWND, and NLRUQ) are ignored.
  • If NUMBUFG is set to 0, all buffers are below the bar, and the settings of the BTB-related parameters are respected and calculated as in pre-7.7 versions.

If BTB buffers are used

When BTB buffers are being used (that is, NUMBUFG is 0 under version 7.7 or higher, or NUMBUFG is any value under Model 204 prior to 7.7):

  • If NLRUQ is set greater than 1, then the value of MAXBUF is rounded up to a multiple of NLRUQ. The maximum setting is 300000.
  • You must set the XMEMOPT X'02' bit to get more than about 15000-18000 actually allocated to NUMBUF.

    If the M204XSVC module is linked into the nucleus, XMEMOPT defaults to X'03' (as of version 7.4) or X'02' (as of version 7.7), so the MAXBUF setting should be achieved, provided that sufficient REGION is available.

  • If MAXBUF is set to a value less than MINBUF, MAXBUF is automatically reset to the value of MINBUF, and the following message is issued:

    M204.1190: MAXBUF SET TO SAME VALUE AS MINBUF -%C

  • You can use the MONITOR DISKBUFF command to display, from each table of each file, the number of BTB pages that are currently located in the disk buffers.
  • If the prefetch feature is enabled (SEQOPT=1), then the MAXBUF parameter must be resized based on the following formula:

    MAXBUF = NUSERS * (4 + 2 * (Maximum FOR EACH RECORD loop nest level))

    The prefetch feature is described in The prefetch (look-ahead read) feature and in Prefetch feature.