ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzaks_5.4.0.1/rzaksaboutmempools.htm

123 lines
8.8 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="concept" />
<meta name="DC.Title" content="Memory pools" />
<meta name="abstract" content="A memory pool is a logical division of main memory or storage that is reserved for processing a job or group of jobs. On the iSeries server, all main storage can be divided into logical allocations called memory pools. By default, the system manages the transfer of data and programs into memory pools." />
<meta name="description" content="A memory pool is a logical division of main memory or storage that is reserved for processing a job or group of jobs. On the iSeries server, all main storage can be divided into logical allocations called memory pools. By default, the system manages the transfer of data and programs into memory pools." />
<meta name="DC.Relation" scheme="URI" content="rzaksconcepts.htm" />
<meta name="DC.Relation" scheme="URI" content="rzakstypesmempools.htm" />
<meta name="DC.Relation" scheme="URI" content="rzakspoolnbrscheme.htm" />
<meta name="DC.Relation" scheme="URI" content="rzakspoolallocation.htm" />
<meta name="DC.Relation" scheme="URI" content="rzaksmempoolactlevel.htm" />
<meta name="DC.Relation" scheme="URI" content="../apis/qwcrssts.htm" />
<meta name="DC.Relation" scheme="URI" content="rzaksmanagemp1.htm" />
<meta name="DC.Relation" scheme="URI" content="../rzahx/rzahxmngparent.htm" />
<meta name="DC.Relation" scheme="URI" content="../rzahx/rzahxtune.htm" />
<meta name="DC.Relation" scheme="URI" content="../rzahx/rzahxapsparent.htm" />
<meta name="DC.Relation" scheme="URI" content="../experience/work3abstract.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 2004-2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2004-2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rzaksaboutmempools" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>Memory pools</title>
</head>
<body id="rzaksaboutmempools"><a name="rzaksaboutmempools"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Memory pools</h1>
<div><p>A memory pool is a logical division of main memory or storage that
is reserved for processing a job or group of jobs. On the iSeries™ server,
all main storage can be divided into logical allocations called memory pools.
By default, the system manages the transfer of data and programs into memory
pools.</p>
<p>The memory pool from which user jobs get their memory is always the same
pool that limits their activity level. (The activity level of a memory pool
is the number of threads that can be active at same time in a memory pool.)
Exceptions to this are system jobs (such as Scpf, Qsysarb, and Qlus) that
get their memory from the Base pool but use the machine pool activity level.
Additionally, subsystem monitors get their memory from the first subsystem
description pool, but it uses the machine pool activity level. This allows
a subsystem monitor to always be able to run regardless of the activity level
setting. </p>
<div class="section"><h4 class="sectiontitle">Why use memory pools</h4><p>You can control how much work
can be done in a subsystem by controlling the number and size of the pools.
The greater the size of the pools in a subsystem, the more work can be done
in that subsystem. </p>
<p>Using shared memory pools allows the system to distribute
jobs for interactive users across multiple subsystems while still allowing
their jobs to run in the same memory pool.</p>
<div class="p">Multiple pools in a subsystem
help you to control the jobs' competition for system resources. The advantages
of having multiple pools in a subsystem are that you can separate the amount
of work done and the response time for these jobs. For example, during the
day you may want interactive jobs to run with good response time. For better
efficiency you can make the interactive pool larger. At night you might
be running many batch jobs, so you make the batch pool larger.<div class="note"><span class="notetitle">Note:</span> Although
tuning and managing your system can help the efficiency of the flow of work
through your iSeries server,
it cannot account for inadequate hardware resources. Consider a hardware upgrade
if the demands of your workload are significant. </div>
</div>
</div>
<div class="section"><h4 class="sectiontitle">How data is handled in memory pools</h4><p>If data is already
in main storage, it can be referred to independently of the memory pool it
is in. However, if the needed data does not exist in any memory pool, it is
brought into the same memory pool for the job that referred to it (this is
known as a page fault). As data is transferred into a memory pool, other data
is displaced and, if changed, is automatically recorded in auxiliary storage
(this is called paging). The memory pool size should be large enough to keep
data transfers (paging) at a reasonable level as the rate affects performance.</p>
</div>
</div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="rzakstypesmempools.htm">Types of memory pools</a></strong><br />
On the iSeries server, all main storage can be divided into
logical allocations called <dfn class="term">memory pools</dfn>. All memory
pools in a system are either private or shared. There are private memory pools,
shared memory pools, and special shared memory pools. As many as 64 memory
pools, in any combination of private and shared pools, can be active at the
same time.</li>
<li class="ulchildlink"><strong><a href="rzakspoolnbrscheme.htm">Pool numbering schemes</a></strong><br />
Pools have two sets of numbering schemes: one is used within a
subsystem and one is system-wide. The subsystem uses a set of numbers that
refer to the pools it uses. Thus, when you create or change a subsystem description
you can define one or more pools and label them 1, 2, 3, and so on. These
are the designations of the subsystem pools, and they do not correspond to
the pool numbers shown on the Work with System Status (<span class="cmdname">WRKSYSSTS</span>)
display.</li>
<li class="ulchildlink"><strong><a href="rzakspoolallocation.htm">Memory pool allocation</a></strong><br />
When you start a subsystem, the system attempts to allocate the user-defined storage pools that are defined in the subsystem description of the started subsystem.</li>
<li class="ulchildlink"><strong><a href="rzaksmempoolactlevel.htm">Memory pool activity level</a></strong><br />
The activity level of a memory pool is the number of threads that can actively use the CPU at the same time in a memory pool. This allows for efficient use of system resources. The system manages the control of the activity level.</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzaksconcepts.htm" title="Whether you are new to work management or have been using work management tools for years, you will find something useful in the Concepts section of the Work management topic collection.">Concepts</a></div>
</div>
<div class="relconcepts"><strong>Related concepts</strong><br />
<div><a href="rzaksmanagemp1.htm" title="Making sure that jobs get enough memory to complete efficiently is important. If too much memory is given to subsystem A and not enough to subsystem B, jobs in subsystem B might begin to run poorly. The following information describes the various tasks that are involved in managing memory pools.">Manage memory pools</a></div>
</div>
<div class="relinfo"><strong>Related information</strong><br />
<div><a href="../apis/qwcrssts.htm">Retrieve System Status (QWCRSSTS) API</a></div>
<div><a href="../rzahx/rzahxmngparent.htm">Manage iSeries performance</a></div>
<div><a href="../rzahx/rzahxtune.htm">Basic performance tuning</a></div>
<div><a href="../rzahx/rzahxapsparent.htm">Applications for performance management</a></div>
<div><a href="../experience/work3abstract.htm">Experience report: The Performance Adjuster</a></div>
</div>
</div>
</body>
</html>