SCHDOPT parameter: Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (misc formatting)
 
(8 intermediate revisions by 3 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>


Line 20: Line 20:
<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 [[Performance monitoring and tuning#Multiprocessing (MP/204)|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 50: Line 50:


<tr><th><var>X'10'</var></th>
<tr><th><var>X'10'</var></th>
<td>In CSLICE, check maximum values even if there is an SWAIT.</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'20'</var></th>
<tr><th align="right"><var>X'20'</var></th>
<td>Do not allow the maintask to steal (run) work intended to run on a zIIP SRB. This parameter only has an effect if zIIP SRBs are defined and active (<var>[[NMPSUBZ parameter|NMPSUBZ]]</var> and <var>[[AMPSUBZ parameter|AMPSUBZ]]</var> parameters).  
<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>
<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>
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>
<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:
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. This weakens arguments for setting this bit with Model 204 7.7 and later.
<ul>
</p></td></tr>  
<li>If all SRB subtasks are busy, it is probably better if the MP subtasks pick up queued work rather than the maintask. </li>
 
<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><var>X'40'</var></th>
<tr><th><var>X'40'</var></th>
Line 69: Line 73:
<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 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">M204.2914 SCHDOPT INDICATION OF SERVER SWAPPING DONE BY ZIIP IS  
<p class="code">M204.2914 SCHDOPT INDICATION OF SERVER SWAPPING DONE BY ZIIP IS  
           ONLY VALID WHEN CCASERVR IS IN MEMORY</p>
           ONLY VALID WHEN CCASERVR IS IN MEMORY</p>
Line 75: Line 79:
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.