SCHDOPT parameter: Difference between revisions

From m204wiki
Jump to navigation Jump to search
 
(15 intermediate revisions by 4 users not shown)
Line 11: Line 11:
<dd>All
<dd>All
<dt>Introduced
<dt>Introduced
<dd><var class="product">Model 204 V6.1</var> or earlier
<dd><var class="product">Model 204 V2.2</var> or earlier
</dl>
</dl>
==Description==
==Description==
<p>
<p>
Control of the main task scheduler operation and accounting. </p>
Control of the maintask scheduler operation and accounting. </p>
<ul>
<ul>
<li>Setting X'10' is relevant to all sites.</li>
<li>Setting X'10' is relevant to all sites.</li>


<li>All other settings are relevant only to sites running MP/204. </li>
<li>All other settings are relevant only to sites running [[Performance monitoring and tuning#Multiprocessing (MP/204)|MP/204]] and / or <var>[[Performance_monitoring_and_tuning#Offloading_Model_204_work_to_zIIP_processors|M204 HPO]]</var>. </li>
</ul>
</ul>
<p>
<p>
Line 27: Line 28:
<tr class="head"><th>Setting</th><th>Meaning</th></tr>
<tr class="head"><th>Setting</th><th>Meaning</th></tr>


<tr><th align="right"><var>X'00'</var></th><td>No scheduler overhead tracking, no forced offload. This is the default.</td></tr>
<tr><th align="right"><var>X'00'</var></th>
<td>No scheduler overhead tracking, no forced offload. This is the default.</td></tr>


<tr><th align="right"><var>X'01'</var></th><td>Maintain MAINTASK scheduler overhead.</td></tr>
<tr><th align="right"><var>X'01'</var></th>
<td>Maintain MAINTASK scheduler overhead.</td></tr>
 
<tr><th align="right"><var>X'02'</var></th>
<td>Do not allow the maintask to steal (run) work intended to run on a MP subtask. This parameter only has an effect if MP subtasks are defined and active (<var>[[NMPSUBS parameter|NMPSUBS]]</var> and <var>[[AMPSUBS parameter|AMPSUBS]]</var> parameters).
<p>
Setting this bit might cause increased CPU overhead because of the maintask going idle and then having to be redispatched. However, it might increase maintask responsiveness and provide somewhat better offload to MP subtasks. </p>
<p>
If this bit is not set, the maintask always runs maintask-only work before stealing any MP subtask work.</p></td></tr>


<tr><th align="right"><var>X'02'</var></th><td>Do not allow the maintask to steal (run) work intended to run on an MP subtask. This parameter only has an effect if MP subtasks are defined and active ([[NMPSUBS parameter]] and [[AMPSUBS parameter]]). Setting this bit might cause increased CPU overhead because of the maintask going idle and then having to be redispatched. However, it might increase maintask responsiveness and provide somewhat better offload to MP subtasks. The maintask will always run maintask-only work before stealing any MP subtask work if this bit is not set.</td></tr>
<tr><th><var>X'04'</var></th>
<td>Defer page releases until server swap.</td></tr>


<tr><th align="right"><var>X'04'</var></th><td>Defer page releases until server swap.</td></tr>
<tr><th><var>X'08'</var></th>
<td>Do server I/O on MP subtask.
<p>
<b>Note:</b> As of version 7.6 of Model 204, this setting is disabled (has no effect) because server swapping is always allowed on an MP subtask or zIIP SRB. That is, version 7.6 and later behave as earlier versions did with this bit on.</p></td></tr>


<tr><th align="right"><var>X'08'</var></th><td>Do server I/O on MP subtask.
<tr><th><var>X'10'</var></th>
<p><b>Note:</b> As of version 7.6 of Model 204, this setting is disabled (has no effect).</p></td></tr>
<td>In CSLICE, check maximum values even if there is an SWAIT. This check applies to the maximum values as set by the following parameters - <var>[[MBSCAN_parameter|MBSCAN]]</var>, <var>[[MCNCT_parameter|MCNCT]]</var>, <var>[[MCPU_parameter|MCPU]]</var>, <var>[[MDKRD_parameter|MDKRD]]</var>, <var>[[MDKWR_parameter|MDKWR]]</var>, <var>[[MOUT_parameter|MOUT]]</var>, <var>[[MUDD_parameter|MUDD]]</var>, <var>[[SQLBSCAN_parameter|SQLBSCAN]]</var>, and <var>[[SQLLPLIM_parameter|SQLLPLIM]]</var>.</td></tr>


<tr><th align="right"><var>X'10'</var></th><td>In CSLICE, check maximum values even if there is an SWAIT.</td></tr>
<tr><th align="right"><var>X'20'</var></th>
<td>If zIIP SRBs are defined and active (<var>[[NMPSUBZ parameter|NMPSUBZ]]</var> and <var>[[AMPSUBZ parameter|AMPSUBZ]]</var> parameters), do not allow the maintask to steal (run) work intended to run on a zIIP SRB. If zIIP SRBs are not defined and active, this bit has no effect.
<p>
Setting this bit might cause increased CPU overhead because of the maintask going idle and then having to be redispatched. However, it might increase maintask responsiveness and provide somewhat better offload to zIIP SRBs. The maintask always runs maintask-only work and MP subtask-only work before stealing any zIIP SRB work if this bit is not set.</p>
<blockquote class="note"><b>Note:</b> Under Model 204 7.7 and later, even when this bit is off, the maintask will only run zIIP workload if the zIIP SRBs appear totally saturated. (Saturation is defined as a zIIP subtask queue length of at least <code>[[SCHDOFLZ parameter|SCHDOFLZ]]*[[AMPSUBZ parameter|AMPSUBZ]]</code>.) Although this weakens arguments for setting this bit with Model 204 7.7 and later, setting X'20' <i>is recommended</i> because:
<ul>
<li>If all SRB subtasks are busy, it is probably better if the MP subtasks pick up queued work rather than the maintask. </li>


<tr><th align="right"><var>X'20'</var></th><td>Do not allow the maintask to steal (run) work intended to run on an zIIP SRB. This parameter only has an effect if zIIP SRBs are defined and active ([[NMPSUBZ parameter]] and [[AMPSUBZ parameter]]). Setting this bit might cause increased CPU overhead because of the maintask going idle and then having to be redispatched. However, it might increase maintask responsiveness and provide somewhat better offload to zIIP SRBs. The maintask will always run maintask-only work and MP subtask-only work before stealing any zIIP SRB work if this bit is not set.</td></tr>
<li>Even if all the (non-SRB) MP subtasks were saturated, running everything but the maintask totally saturated might still get better performance. </li>
</ul>
</blockquote></td></tr>  


<tr><th align="right"><var>X'40'</var></th><td>Do not allow the MP subtasks to steal (run) work intended to run on an zIIP SRB. This parameter only has an effect if both MP subtasks ([[NMPSUBZ parameter]] and [[AMPSUBZ parameter]]) and zIIP SRBs are defined and active ([[NMPSUBZ parameter]] and [[AMPSUBZ parameter]]). Setting this bit means that the MP subtasks can't pick up some of the CPU load if all zIIP SRBs are saturated. However, under Model 204 7.4 and 7.5 setting this bit would probably provide better zIIP utilization if there are MP subtasks also available. Under Model 204 7.6, even if this bit is not set, MP subtasks will only steal work from zIIP SRBs if those SRBs seem unable to keep up with the workload. As such, it is probably a bad idea to set this bit in Model 204 7.6 and later.   
<tr><th><var>X'40'</var></th>
</td></tr>
<td>Do not allow the MP subtasks to steal (run) work intended to run on a zIIP SRB. This parameter only has an effect if both MP subtasks (<var>NMPSUBS</var> and <var>AMPSUBS</var> parameters) and zIIP SRBs are defined and active (<var>NMPSUBZ</var> and <var>AMPSUBZ</var> parameters).  
<p>
Setting this bit means that the MP subtasks can't pick up some of the CPU load if all zIIP SRBs are saturated. However, under Model&nbsp;204 7.4 and 7.5, setting this bit would probably provide better zIIP utilization if there were MP subtasks also available. Under Model 204 7.6, even if this bit is not set, MP subtasks only steal work from zIIP SRBs if those SRBs seem unable to keep up with the workload. As such, setting this bit in Model 204 7.6 and later <b><i>is not recommended</i></b></p></td></tr>


<tr><th align="right"><var>X'80'</var></th>
<tr><th><var>X'80'</var></th>
<td>Allow server swapping to be offloaded to zIIP processors. If you have <code>SCHDOPT=80</code> set, then you probably want to set <code>[[SCHDOPT1 parameter|SCHDOPT1]]=01</code>.
<td>Allow server swapping to be offloaded to zIIP processors. If you have <code>SCHDOPT=X'80'</code> set, then you probably want to set <code>SCHDOPT1=X'01'</code>.
<p><b>Note:</b> As of version 7.6 of Model 204, SCHDOPT X'80' and SCHDOPT1 X'01' are disabled (have no effect).</p>
<p class="note"><b>Note:</b> As of version 7.6 of Model 204, the <var>SCHDOPT</var> X'80' bit and the <var>[[SCHDOPT1 parameter|SCHDOPT1]]</var> X'01' bit are disabled (have no effect). This is because server swapping is <b>always</b> enabled for MP subtasks and zIIP SRBs. That is, Model&nbsp;204 7.6 and later behave as earlier releases did with <var>SCHDOPT</var> X'80 and <var>SCHDOPT1</var> X'01' set.</p>
<p>
<p>
The X'80' setting is only valid when CCASERVR is in memory (servers swapped into memory). If you set <code>SCHDOPT=X'80'</code> when CCASERVR is not in memory, the X'80' setting is reset and message 2914 is issued:</p>
The X'80' setting is only valid when <var>[[Creating_server_data_sets_(CCASERVR)|CCASERVR]]</var> is in memory (servers swapped into memory). If you set <code>SCHDOPT=X'80'</code> when CCASERVR is not in memory, the X'80' setting is reset and message 2914 is issued:</p>
<p class="code">SCHDOPT INDICATION OF SERVER SWAPPING DONE BY ZIIP IS ONLY VALID WHEN CCASERVR IS IN MEMORY</p>
<p class="code">M204.2914 SCHDOPT INDICATION OF SERVER SWAPPING DONE BY ZIIP IS  
          ONLY VALID WHEN CCASERVR IS IN MEMORY</p>
<p>
<p>
Initialization then continues.</p></td></tr>
Initialization then continues.</p></td></tr>
</table>
</table>
==Usage Notes==
<ul>
<li>If X’80’ is on and X’08’ is off, then only the zIIP subtask will do server swapping.</li>
<li>SCHDOPT=08: An MP subtask will always execute a swap unit of work before a user unit of work. This could mean that every MP subtask is busy swapping.</li>
<li>SCHDOPT=80: The zIIP subtask is doing the swap work and the MP subtasks will do real user work.</li>
<li>SCHDOPT=88: The zIIP subtask is behaving exactly as an MP subtask. Both zIIP and MP subtasks could be busy doing swapping while no work is actually being done.</li>
<li>SCHDOPT=80 and SCHDOPT1=01: The zIIP subtask will do the swapping before doing any work and the MP subtasks will do real user work. But if there is no user work to do, the MP subtask will help the zIIP subtask by executing a swap unit of work. That way, it the zIIP subtask gets behind on its swapping, then the MP subtask can assist.</li>
</ul>


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

Latest revision as of 13:13, 24 May 2017

Scheduler options

Summary

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

Description

Control of the maintask scheduler operation and accounting.

  • Setting X'10' is relevant to all sites.
  • All other settings are relevant only to sites running MP/204 and / or M204 HPO.

Valid settings of SCHDOPT, which can be summed, are as follows:

SettingMeaning
X'00' No scheduler overhead tracking, no forced offload. This is the default.
X'01' Maintain MAINTASK scheduler overhead.
X'02' Do not allow the maintask to steal (run) work intended to run on a MP subtask. This parameter only has an effect if MP subtasks are defined and active (NMPSUBS and AMPSUBS parameters).

Setting this bit might cause increased CPU overhead because of the maintask going idle and then having to be redispatched. However, it might increase maintask responsiveness and provide somewhat better offload to MP subtasks.

If this bit is not set, the maintask always runs maintask-only work before stealing any MP subtask work.

X'04' Defer page releases until server swap.
X'08' Do server I/O on MP subtask.

Note: As of version 7.6 of Model 204, this setting is disabled (has no effect) because server swapping is always allowed on an MP subtask or zIIP SRB. That is, version 7.6 and later behave as earlier versions did with this bit on.

X'10' In CSLICE, check maximum values even if there is an SWAIT. This check applies to the maximum values as set by the following parameters - MBSCAN, MCNCT, MCPU, MDKRD, MDKWR, MOUT, MUDD, SQLBSCAN, and SQLLPLIM.
X'20' If zIIP SRBs are defined and active (NMPSUBZ and AMPSUBZ parameters), do not allow the maintask to steal (run) work intended to run on a zIIP SRB. If zIIP SRBs are not defined and active, this bit has no effect.

Setting this bit might cause increased CPU overhead because of the maintask going idle and then having to be redispatched. However, it might increase maintask responsiveness and provide somewhat better offload to zIIP SRBs. The maintask always runs maintask-only work and MP subtask-only work before stealing any zIIP SRB work if this bit is not set.

Note: Under Model 204 7.7 and later, even when this bit is off, the maintask will only run zIIP workload if the zIIP SRBs appear totally saturated. (Saturation is defined as a zIIP subtask queue length of at least SCHDOFLZ*AMPSUBZ.) Although this weakens arguments for setting this bit with Model 204 7.7 and later, setting X'20' is recommended because:

  • If all SRB subtasks are busy, it is probably better if the MP subtasks pick up queued work rather than the maintask.
  • Even if all the (non-SRB) MP subtasks were saturated, running everything but the maintask totally saturated might still get better performance.
X'40' Do not allow the MP subtasks to steal (run) work intended to run on a zIIP SRB. This parameter only has an effect if both MP subtasks (NMPSUBS and AMPSUBS parameters) and zIIP SRBs are defined and active (NMPSUBZ and AMPSUBZ parameters).

Setting this bit means that the MP subtasks can't pick up some of the CPU load if all zIIP SRBs are saturated. However, under Model 204 7.4 and 7.5, setting this bit would probably provide better zIIP utilization if there were MP subtasks also available. Under Model 204 7.6, even if this bit is not set, MP subtasks only steal work from zIIP SRBs if those SRBs seem unable to keep up with the workload. As such, setting this bit in Model 204 7.6 and later is not recommended.

X'80' Allow server swapping to be offloaded to zIIP processors. If you have SCHDOPT=X'80' set, then you probably want to set SCHDOPT1=X'01'.

Note: As of version 7.6 of Model 204, the SCHDOPT X'80' bit and the SCHDOPT1 X'01' bit are disabled (have no effect). This is because server swapping is always enabled for MP subtasks and zIIP SRBs. That is, Model 204 7.6 and later behave as earlier releases did with SCHDOPT X'80 and SCHDOPT1 X'01' set.

The X'80' setting is only valid when CCASERVR is in memory (servers swapped into memory). If you set SCHDOPT=X'80' when CCASERVR is not in memory, the X'80' setting is reset and message 2914 is issued:

M204.2914 SCHDOPT INDICATION OF SERVER SWAPPING DONE BY ZIIP IS ONLY VALID WHEN CCASERVR IS IN MEMORY

Initialization then continues.

Usage Notes

  • If X’80’ is on and X’08’ is off, then only the zIIP subtask will do server swapping.
  • SCHDOPT=08: An MP subtask will always execute a swap unit of work before a user unit of work. This could mean that every MP subtask is busy swapping.
  • SCHDOPT=80: The zIIP subtask is doing the swap work and the MP subtasks will do real user work.
  • SCHDOPT=88: The zIIP subtask is behaving exactly as an MP subtask. Both zIIP and MP subtasks could be busy doing swapping while no work is actually being done.
  • SCHDOPT=80 and SCHDOPT1=01: The zIIP subtask will do the swapping before doing any work and the MP subtasks will do real user work. But if there is no user work to do, the MP subtask will help the zIIP subtask by executing a swap unit of work. That way, it the zIIP subtask gets behind on its swapping, then the MP subtask can assist.