Template:SirTune size requirement for SIRTUNED: Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (1 revision: SirTune doc)
m (add links)
Line 3: Line 3:
You've been warned.  ..  (Page built by JAL at the SIRIUS VM; file: FUNPGNEW SYSUT2) -->
You've been warned.  ..  (Page built by JAL at the SIRIUS VM; file: FUNPGNEW SYSUT2) -->
<!-- Page name: SirTune size requirement for SIRTUNED -->
<!-- Page name: SirTune size requirement for SIRTUNED -->
<p></p>
It is recommended that you do not spend a lot of time trying to size
It is recommended that you do not spend a lot of time trying to size
SIRTUNED, because the consequences of under- or
[[SirTune data collection under MVS#sirtuned|SIRTUNED]], because the consequences of under- or over-estimating the SIRTUNED space requirements
over-estimating the SIRTUNED space requirements
are relatively benign.
are relatively benign.
However, if
However, if you do want to size SIRTUNED, this page provides some basic
you want to size SIRTUNED, this page provides some basic
rules of thumb for estimating the correct size.
rules of thumb for estimating the correct size.


Line 16: Line 13:
<!--Caution: <div> above-->
<!--Caution: <div> above-->


<p></p>
The size of SIRTUNED is mainly determined by these factors:
The size of SIRTUNED is mainly determined by these factors:
<ul>
<ul>
<li>The number of lines of compilations saved.
<li>The number of lines of compilations saved.
This is the number of lines
This is the number of lines in precompiled APSY procedures compiled in the run, or if the [[SirTune_configuration_statements#allcomp|ALLCOMP]] statement is specified for <var class="product">SirTune</var>, the number of lines of all compiled procedures.
in pre-compiled APSY procedures compiled in the run, or if the ALLCOMP statement
In any case, a line counts as 1 each time it is compiled. </li>
is specified for <var class="product">SirTune</var>, the number of lines of all compiled procedures.
 
In any case, a line counts as 1 each time it is compiled.
<li>The number of samples collected. </li>
<li>The number of samples collected.
 
<li>The average number of users for which data is collected per sample.
<li>The average number of users for which data is collected per sample. </li>
</ul>
</ul>
<p></p>
 
To estimate the number of lines of compilations saved when the ALLCOMP statement
To estimate the number of lines of compilations saved when the ALLCOMP statement has not been specified, and when subsystems are not START'ed and STOP'ed multiple times in a run, simply total the number of lines in all precompiled procedures in START'ed subsystems.
has not been specified, and when subsystems are not START'ed and STOP'ed
multiple times in a run, simply total the number of lines in all
pre-compiled procedures in START'ed subsystems.
To get an estimate of this:
To get an estimate of this:
<ol>
<ol>
<li>Count the total number of pre-compiled procedures.
<li>Count the total number of precompiled procedures. </li>
<li>Estimate the average number of lines per pre-compiled
 
procedure by entering the editor for a representative sample of them.
<li>Estimate the average number of lines per precompiled
<li>Multiply these two values.
procedure by entering the editor for a representative sample of them. </li>
<li>Multiply these two values. </li>
</ol>
</ol>
Call the number of compiled lines <code>COMP_LINES</code>.
Call the number of compiled lines <code>COMP_LINES</code>.
<p></p>
 
To estimate the number of samples, divide the number of seconds over which data
To estimate the number of samples, divide the number of seconds over which data is to be collected, by the sample interval length (1 or whatever was specified on the [[SirTune_configuration_statements#INTerval num_sec|INTERVAL]] statement).
is to be collected, by the sample interval length (1 or whatever was specified
on the INTERVAL statement).
Call this value <code>NUM_SAMP</code>.
Call this value <code>NUM_SAMP</code>.
<p></p>
 
The best guide to estimating the number of users for which data is collected
The best guide to estimating the number of users for which data is collected per sample is the <var class="product">Model&nbsp;204</var> performance monitor. There are certain worst-case
per sample is the <var class="product">Model 204</var> performance monitor.
There are certain worst case
values that one can assume, however:
values that one can assume, however:
<ul>
<ul>
<li>If only state RUNG is being collected, at most
<li>If only state RUNG is being collected, at most
1 user will have data collected per sample, unless MP/204 is installed (in which
1 user will have data collected per sample, unless MP/204 is installed (in which case, the upper limit is 1 plus the number of subtasks). </li>
case, the upper limit is 1 plus the number of subtasks).
 
<li>If only REDY, RUNG, BLKIN,
<li>If only REDY, RUNG, BLKIN, BLKIU, SWPGI, SWPGOW, SWPGOBN, and/or SWPGOBU states are being collected, the upper limit is the number of servers. </li>
BLKIU, SWPGI, SWPGOW, SWPGOBN, and/or SWPGOBU states are being collected, the
 
upper limit is the number of servers.
<li>Otherwise, a crude upper limit is the number of users. </li>
<li>Otherwise, a crude upper limit is the number of
users.
</ul>
</ul>
Call whatever value one comes up with <code>AVG_USERS</code>.
Call whatever value one comes up with <code>AVG_USERS</code>.


The total number of bytes required for SIRTUNED can be estimated by this:
The total number of bytes required for SIRTUNED can be estimated by this:
<p class="code"><nowiki>100,000 + ( 12 * COMP_LINES ) + ( NUM_SAMP * 64 * ( 1  + AVG_USERS ) )
<p class="code">100,000 + ( 12 * COMP_LINES ) + ( NUM_SAMP * 64 * ( 1  + AVG_USERS ) )
</nowiki></p>
</p>
This estimator provides a fairly generous estimate without being
This estimator provides a fairly generous estimate without being
excessive.
excessive. To determine the number of disk tracks required, divide
To determine the number of disk tracks required, divide
the number of bytes produced by this estimator by the number of bytes
the number of bytes produced by this estimator by the number of bytes
per track at the block size for SIRTUNED (46,952 is the default bytes
per track at the block size for SIRTUNED (46,952 is the default bytes
Line 77: Line 65:
User Language code, expects to collect samples over 8 hours at 1 per
User Language code, expects to collect samples over 8 hours at 1 per
second, is collecting data for states RUNG, REDY, and BLKIN, and has
second, is collecting data for states RUNG, REDY, and BLKIN, and has
30 servers defined in the ONLINE.
30 servers defined in the Online.
These factors are clear:</p>
These factors are clear:</p>
<p class="code"><nowiki>COMP_LINES = 100,000
<p class="code">COMP_LINES = 100,000
NUM_SAMP = 8 * 60 * 60 / 1 = 28,800
NUM_SAMP = 8 * 60 * 60 / 1 = 28,800
</nowiki></p>
</p>


Since all the users in a collected state must be in a server,
Since all the users in a collected state must be in a server,
use the number of servers as a gross estimator for AVG_USERS, that is:
use the number of servers as a gross estimator for AVG_USERS, that is:
<p class="code"><nowiki>AVG_USERS = 30
<p class="code">AVG_USERS = 30
</nowiki></p>
</p>


This means that the estimated space requirements in this case is:
This means that the estimated space requirements in this case is:
<p class="code"><nowiki>100,000 + ( 12 * 100,000 ) +
<p class="code">100,000 + ( 12 * 100,000 ) +
28,800 * 64 * ( 1  + 30 ) = 58,439,200
28,800 * 64 * ( 1  + 30 ) = 58,439,200
</nowiki></p>
</p>


If the sample data was going to a 3380 with the <var class="product">SirTune</var> default block
If the sample data was going to a 3380 with the <var class="product">SirTune</var> default block
Line 100: Line 88:
If sampling is limited to some key hours to restrict
If sampling is limited to some key hours to restrict
the number of samples collected to 10,000, the estimator becomes:
the number of samples collected to 10,000, the estimator becomes:
<p class="code"><nowiki>100,000 + ( 12 * 100,000 ) +
<p class="code">100,000 + ( 12 * 100,000 ) +
10,000 * 64 * ( 1  + 30 ) = 21,140,000
10,000 * 64 * ( 1  + 30 ) = 21,140,000
</nowiki></p>
</p>


If the sample data in this case was going to a 3380 with the <var class="product">SirTune</var> default
If the sample data in this case was going to a 3380 with the <var class="product">SirTune</var> default

Revision as of 22:41, 12 November 2015

It is recommended that you do not spend a lot of time trying to size SIRTUNED, because the consequences of under- or over-estimating the SIRTUNED space requirements are relatively benign. However, if you do want to size SIRTUNED, this page provides some basic rules of thumb for estimating the correct size.

A formula for the estimate

The size of SIRTUNED is mainly determined by these factors:

  • The number of lines of compilations saved. This is the number of lines in precompiled APSY procedures compiled in the run, or if the ALLCOMP statement is specified for SirTune, the number of lines of all compiled procedures. In any case, a line counts as 1 each time it is compiled.
  • The number of samples collected.
  • The average number of users for which data is collected per sample.

To estimate the number of lines of compilations saved when the ALLCOMP statement has not been specified, and when subsystems are not START'ed and STOP'ed multiple times in a run, simply total the number of lines in all precompiled procedures in START'ed subsystems. To get an estimate of this:

  1. Count the total number of precompiled procedures.
  2. Estimate the average number of lines per precompiled procedure by entering the editor for a representative sample of them.
  3. Multiply these two values.

Call the number of compiled lines COMP_LINES.

To estimate the number of samples, divide the number of seconds over which data is to be collected, by the sample interval length (1 or whatever was specified on the INTERVAL statement). Call this value NUM_SAMP.

The best guide to estimating the number of users for which data is collected per sample is the Model 204 performance monitor. There are certain worst-case values that one can assume, however:

  • If only state RUNG is being collected, at most 1 user will have data collected per sample, unless MP/204 is installed (in which case, the upper limit is 1 plus the number of subtasks).
  • If only REDY, RUNG, BLKIN, BLKIU, SWPGI, SWPGOW, SWPGOBN, and/or SWPGOBU states are being collected, the upper limit is the number of servers.
  • Otherwise, a crude upper limit is the number of users.

Call whatever value one comes up with AVG_USERS.

The total number of bytes required for SIRTUNED can be estimated by this:

100,000 + ( 12 * COMP_LINES ) + ( NUM_SAMP * 64 * ( 1 + AVG_USERS ) )

This estimator provides a fairly generous estimate without being excessive. To determine the number of disk tracks required, divide the number of bytes produced by this estimator by the number of bytes per track at the block size for SIRTUNED (46,952 is the default bytes per track on a 3380, and 55,996 is the default on a 3390).

An example estimate

Suppose a shop has 100,000 lines of pre-compiled User Language code, expects to collect samples over 8 hours at 1 per second, is collecting data for states RUNG, REDY, and BLKIN, and has 30 servers defined in the Online. These factors are clear:

COMP_LINES = 100,000 NUM_SAMP = 8 * 60 * 60 / 1 = 28,800

Since all the users in a collected state must be in a server, use the number of servers as a gross estimator for AVG_USERS, that is:

AVG_USERS = 30

This means that the estimated space requirements in this case is:

100,000 + ( 12 * 100,000 ) + 28,800 * 64 * ( 1 + 30 ) = 58,439,200

If the sample data was going to a 3380 with the SirTune default block size, it would require 1245 tracks or 83 cylinders.

The number of samples collected in this example is fairly extreme: generally there is not much benefit to collecting more than 10,000 samples. If sampling is limited to some key hours to restrict the number of samples collected to 10,000, the estimator becomes:

100,000 + ( 12 * 100,000 ) + 10,000 * 64 * ( 1 + 30 ) = 21,140,000

If the sample data in this case was going to a 3380 with the SirTune default block size, it would require 451 tracks or 31 cylinders.

See also