NLRUQ parameter: Difference between revisions
m (minor formatting) |
m (→Description: add 7.7 impact) |
||
Line 16: | Line 16: | ||
==Description== | ==Description== | ||
<p> | <p> | ||
The <var>NLRUQ</var> parameter reduces contention on the [[Performance monitoring and tuning#Multiprocessing (MP/204)|MP]] lock that protects the reuse queues. This MP lock is a primary source of MP overhead. </p> | The <var>NLRUQ</var> parameter reduces contention on the [[Performance monitoring and tuning#Multiprocessing (MP/204)|MP]] lock that protects the reuse queues. This MP lock is a primary source of MP overhead. | ||
</p> | |||
<p> | <p> | ||
Setting <var>NLRUQ</var> greater than 1 has no benefit in a non-MP run. In fact, in all cases, a setting greater than 1 might result in a slight increase in disk I/O, owing to a loss in precision in the least-recently-used algorithm for managing the disk buffer pool. With <var>NLRUQ</var> greater than 1, it would be possible for a page to be stolen from the buffer pool before one that was less recently used.</p> | Setting <var>NLRUQ</var> greater than 1 has no benefit in a non-MP run. In fact, in all cases, a setting greater than 1 might result in a slight increase in disk I/O, owing to a loss in precision in the least-recently-used algorithm for managing the below the bar (BTB) disk buffer pool. With <var>NLRUQ</var> greater than 1, it would be possible for a page to be stolen from the BTB buffer pool before one that was less recently used. | ||
< | </p> | ||
< | <blockquote class="note"><b>Note:</b> As of version 7.7 of Model 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> | ||
<var>NLRUQ</var> is used as a multiplier to determine the minimum number of disk buffers used in an Online: | 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 204 prior to 7.7): </p> | ||
<ul> | |||
<li><code>NLRUQ=1</code> preserves the single reuse queue model used in releases of <var class="product">Model 204</var> before V6R1.0. </li> | |||
<li><var>NLRUQ</var> is used as a multiplier to determine the minimum number of BTB disk buffers used in an Online: | |||
<p class="code"><var>[[MINBUF parameter|MINBUF]]</var> >= NLRUQ * ((<var>[[NSERVS parameter|NSERVS]]</var> + <var>[[NSUBTKS parameter|NSUBTKS]]</var>) * <var>[[MAXOBUF parameter|MAXOBUF]]</var> + 15) | <p class="code"><var>[[MINBUF parameter|MINBUF]]</var> >= NLRUQ * ((<var>[[NSERVS parameter|NSERVS]]</var> + <var>[[NSUBTKS parameter|NSUBTKS]]</var>) * <var>[[MAXOBUF parameter|MAXOBUF]]</var> + 15) | ||
</p> | </p> </li> | ||
< | |||
A reasonable guess for a proper <var>NLRUQ</var> value adds two for each MP subtask, so a setting of <code>[[NMPSUBS parameter|NMPSUBS]]=1</code> suggests <code>NLRUQ=3</code>, and <code>NMPSUBS=7</code> suggests <code>NLRUQ=15</code>. </ | <li>A reasonable guess for a proper <var>NLRUQ</var> value adds two for each MP subtask, so a setting of <code>[[NMPSUBS parameter|NMPSUBS]]=1</code> suggests <code>NLRUQ=3</code>, and <code>NMPSUBS=7</code> suggests <code>NLRUQ=15</code>. </li> | ||
< | |||
If <var>NLRUQ</var> is set greater than 1, the values of <var>[[LDKBMWND parameter|LDKBMWND]]</var>, <var>[[MAXBUF parameter|MAXBUF]]</var>, and <var>MINBUF</var> are all rounded up to a multiple of <var>NLRUQ</var>. The maximum setting for <var>NLRUQ</var> is 255. </ | <li>If <var>NLRUQ</var> is set greater than 1, the values of <var>[[LDKBMWND parameter|LDKBMWND]]</var>, <var>[[MAXBUF parameter|MAXBUF]]</var>, and <var>MINBUF</var> are all rounded up to a multiple of <var>NLRUQ</var>. The maximum setting for <var>NLRUQ</var> is 255. </li> | ||
< | |||
If a <var>[[MONITOR MPLOCK command|MONITOR MPLOCK]]</var> command output reveals a high conflict count for LRU queue locks, increase <var>NLRUQ</var> and <var>[[ | <li>If a <var>[[MONITOR MPLOCK command|MONITOR MPLOCK]]</var> command output reveals a high conflict count for LRU queue locks, increase <var>NLRUQ</var> and <var>[[NLRUQG parameter|NLRUQG]]</var>.</li> | ||
</ul> | |||
[[Category:System parameters]] | [[Category:System parameters]] | ||
[[Category:Parameters]] | [[Category:Parameters]] |
Revision as of 00:17, 24 August 2016
# of DKBM LRU queues
Summary
- Default value
- 1 (also the minimum)
- Parameter type
- System
- Where set
- Not resettable
- Related products
- All
- Introduced
- Model 204 V6.1
Description
The NLRUQ parameter reduces contention on the MP lock that protects the reuse queues. This MP lock is a primary source of MP overhead.
Setting NLRUQ greater than 1 has no benefit in a non-MP run. In fact, in all cases, a setting greater than 1 might result in a slight increase in disk I/O, owing to a loss in precision in the least-recently-used algorithm for managing the below the bar (BTB) disk buffer pool. With NLRUQ greater than 1, it would be possible for a page to be stolen from the BTB buffer pool before one that was less recently used.
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):
NLRUQ=1
preserves the single reuse queue model used in releases of Model 204 before V6R1.0.- NLRUQ is used as a multiplier to determine the minimum number of BTB disk buffers used in an Online:
- A reasonable guess for a proper NLRUQ value adds two for each MP subtask, so a setting of
NMPSUBS=1
suggestsNLRUQ=3
, andNMPSUBS=7
suggestsNLRUQ=15
. - If NLRUQ is set greater than 1, the values of LDKBMWND, MAXBUF, and MINBUF are all rounded up to a multiple of NLRUQ. The maximum setting for NLRUQ is 255.
- If a MONITOR MPLOCK command output reveals a high conflict count for LRU queue locks, increase NLRUQ and NLRUQG.