Getting to know how the memory pools (each has a very different role) interact may be slightly daunting at first, however once you understand it, it's really quite easy. It's a bit unfortunate that the names are so similar but once you process it, it will be clear. (You are not alone, almost every PowerUp conference I go to I wind up spending quite some time helping folks understand this concept)
There are two absolutely required shared pools: *MACHINE and *BASE.
*MACHINE is where IBM I, and 90% of it's parts run.
*BASE is the default shared pool.
IBM provides a total of 64 shared pools: *MACHINE, *BASE, *INTERACT, *SPOOL, and 60 shared pools.
If the system were in restricted state, then all the memory not assigned to *MACHINE will be in *BASE.
As each of the shared pools is used, the system will allocate memory from *BASE to that shared pool, in this case *SHRPOOL1
Using *BASE as the first subsystem memory pool is a best practice since that is where the subsystem job gets it's memory and activity level. That way the subsystem can act with the job queues assigned to it, start/stop jobs without having to fight with the application programs running in that subsystem.
If the autotune function is turned on (system value: QPFRADJ) then the system monitors faulting/paging and adjusts the system as necessary. For most workloads this works well. In more advanced systems manual is better.
As to my memory, sadly it's not as good as POWER System is, but even after nearly 40 years of doing this some things have stuck, thanks.
As an Amazon Associate we earn from qualifying purchases.
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.