Fixing Buffer Pools on DB2 v11 z/OS

Philip Sevetson

Fixing Buffer Pools on DB2 v11 z/OS
We have not changed the way we use BPs in the last several releases. In the mean time, with cheap memory, we have plenty of that; my DB2 sysprog tells me that our systems are experiencing _no paging_. (We are too using our computer. Shut up.)

Is there, other than memory paging, any reason to change our page frame size or to fix any bufferpools? Theory, or "look at this Redbook here," would be appreciated.

-phil


********

Philip Sevetson
Computer Systems Manager
FISA-OPA
5 Manhattan West
New York, NY 10001
[login to unmask email]
212-857-1688 w
917-991-7052 m
212-857-1659 f
[cid:[login to unmask email]

**This e-mail, including any attachments, may be confidential, privileged, or otherwise legally protected. It is intended only for the addressee. If you received this e-mail in error or from someone who was not authorized to send it to you, do not disseminate, copy, or otherwise use this e-mail or its attachments. Please notify the sender immediately by reply e-mail and delete the e-mail from your system.**
Attachments

  • image001.png (3.3k)

Avram Friedman

RE: Fixing Buffer Pools on DB2 v11 z/OS
(in response to Philip Sevetson)

Paged fixed buffer pools have a much shorter path through IOS
All  phyasical I/O requires real addresses (Take a look at the description of a CCW)
Even in the case where there is no paging IOS must check and rechek the physical address before doing a SIO,
unless the buffer and prefix are page fixed o V=R

Just like the old saying fewer buffers is better than paging
So to is fewer buffers and page fixing is better than address verification for an active pool.

This is a good time to remind people of one of the famous Av's laws
The principal activity of any data processing system is to process data.
and its almost as well known corollary 
Attempts to remove the processing of data from data processing is likely to fail.

Avram Friedman
DB2-L hall of fame contributor
DB2-L 'past' administrator

[login to unmask email]

Bill Gallagher

[External] Fixing Buffer Pools on DB2 v11 z/OS
(in response to Philip Sevetson)
Not directly answering your question, but this is more of an "aside".

Many moons ago, I heard that a good rule of thumb is to have at least a little bit of paging, as it indicates that your memory is allocated pretty close to "just right".

A lot of paging is bad for obvious performance reasons. But no paging at all can indicate that you have too much memory allocated to whatever, and perhaps some of that memory can and should be reassigned to some other whatever that needs it.

Bill Gallagher | Senior Systems Engineer, DBA | Data Administration

[cid:[login to unmask email]

From: Sevetson, Phil <[login to unmask email]>
Sent: Friday, May 24, 2019 1:08 PM
To: [login to unmask email]
Subject: [External] [DB2-L] - Fixing Buffer Pools on DB2 v11 z/OS

We have not changed the way we use BPs in the last several releases. In the mean time, with cheap memory, we have plenty of that; my DB2 sysprog tells me that our systems are experiencing _no paging_. (We are too using our computer. Shut up.)

Is there, other than memory paging, any reason to change our page frame size or to fix any bufferpools? Theory, or "look at this Redbook here," would be appreciated.

-phil


********

Philip Sevetson
Computer Systems Manager
FISA-OPA
5 Manhattan West
New York, NY 10001
[login to unmask email]<mailto:[login to unmask email]>
212-857-1688 w
917-991-7052 m
212-857-1659 f
[cid:[login to unmask email]

**This e-mail, including any attachments, may be confidential, privileged, or otherwise legally protected. It is intended only for the addressee. If you received this e-mail in error or from someone who was not authorized to send it to you, do not disseminate, copy, or otherwise use this e-mail or its attachments. Please notify the sender immediately by reply e-mail and delete the e-mail from your system.**
-----End Original Message-----
________________________________
This message (including any attachments) may contain confidential, proprietary, privileged and/or private information. The information is intended to be for the use of the individual or entity designated above. If you are not the intended recipient of this message, please notify the sender immediately, and delete the message and any attachments. Any disclosure, reproduction, distribution or other use of this message or any attachments by an individual or entity other than the intended recipient is prohibited.

TRVDiscDefault::1201
Attachments

  • image001.png (5.6k)

Philip Sevetson

[External] Fixing Buffer Pools on DB2 v11 z/OS
(in response to Bill Gallagher)
Bill -

I'm aware of the theory, but it's outside of my area of responsibility unless I enlarge the bufferpools so grossly that it _creates_ paging. I don't have the data to support that; in fact, I suspect that the data, if I had it, wouldn't support that.

-phil (sevetson)

From: Gallagher,Bill R [mailto:[login to unmask email]
Sent: Friday, May 24, 2019 2:54 PM
To: [login to unmask email]
Subject: [DB2-L] - RE: [External] Fixing Buffer Pools on DB2 v11 z/OS

Not directly answering your question, but this is more of an "aside".

Many moons ago, I heard that a good rule of thumb is to have at least a little bit of paging, as it indicates that your memory is allocated pretty close to "just right".

A lot of paging is bad for obvious performance reasons. But no paging at all can indicate that you have too much memory allocated to whatever, and perhaps some of that memory can and should be reassigned to some other whatever that needs it.

Bill Gallagher | Senior Systems Engineer, DBA | Data Administration

[cid:[login to unmask email]

From: Sevetson, Phil <[login to unmask email]>
Sent: Friday, May 24, 2019 1:08 PM
To: [login to unmask email]
Subject: [External] [DB2-L] - Fixing Buffer Pools on DB2 v11 z/OS

We have not changed the way we use BPs in the last several releases. In the mean time, with cheap memory, we have plenty of that; my DB2 sysprog tells me that our systems are experiencing _no paging_. (We are too using our computer. Shut up.)

Is there, other than memory paging, any reason to change our page frame size or to fix any bufferpools? Theory, or "look at this Redbook here," would be appreciated.

-phil


********

Philip Sevetson
Computer Systems Manager
FISA-OPA
5 Manhattan West
New York, NY 10001
[login to unmask email]<mailto:[login to unmask email]>
212-857-1688 w
917-991-7052 m
212-857-1659 f
[cid:[login to unmask email]

**This e-mail, including any attachments, may be confidential, privileged, or otherwise legally protected. It is intended only for the addressee. If you received this e-mail in error or from someone who was not authorized to send it to you, do not disseminate, copy, or otherwise use this e-mail or its attachments. Please notify the sender immediately by reply e-mail and delete the e-mail from your system.**
-----End Original Message-----
________________________________
This message (including any attachments) may contain confidential, proprietary, privileged and/or private information. The information is intended to be for the use of the individual or entity designated above. If you are not the intended recipient of this message, please notify the sender immediately, and delete the message and any attachments. Any disclosure, reproduction, distribution or other use of this message or any attachments by an individual or entity other than the intended recipient is prohibited.

TRVDiscDefault::1201
-----End Original Message-----
**This e-mail, including any attachments, may be confidential, privileged, or otherwise legally protected. It is intended only for the addressee. If you received this e-mail in error or from someone who was not authorized to send it to you, do not disseminate, copy, or otherwise use this e-mail or its attachments. Please notify the sender immediately by reply e-mail and delete the e-mail from your system.**

Joel Goldstein

[External] Fixing Buffer Pools on DB2 v11 z/OS
(in response to Bill Gallagher)
Unless you have an excess of memory, only pagefix the pools with high IO
rates.





If the system has paging, it means there is more memory allocated than the
machine has physically..

1 or 2 pages a sec, not a big deal. Double digits or more, not good.
Paging of DB2 address spaces is BAD.



No paging at all is GOOD..





I have never seen a system that could not be improved with better pool
tuning !!!



Joel Goldstein
Responsive Systems
Buffer Pool Tool(R) for DB2, the worldwide industry standard

Predicts the IO rate/Sec for tuning changes
Performance software that works......
Predicts Group Buffer Pool performance too!
www.responsivesystems.com http://www.responsivesystems.com
tel. (732) 972-1261
fax.(732) 972-9416

[login to unmask email]



From: Gallagher,Bill R [mailto:[login to unmask email]
Sent: Friday, May 24, 2019 11:54 AM
To: [login to unmask email]
Subject: [DB2-L] - RE: [External] Fixing Buffer Pools on DB2 v11 z/OS



Not directly answering your question, but this is more of an "aside".



Many moons ago, I heard that a good rule of thumb is to have at least a
little bit of paging, as it indicates that your memory is allocated pretty
close to "just right".



A lot of paging is bad for obvious performance reasons. But no paging at
all can indicate that you have too much memory allocated to whatever, and
perhaps some of that memory can and should be reassigned to some other
whatever that needs it.



Bill Gallagher | Senior Systems Engineer, DBA | Data Administration



cid:[login to unmask email]



From: Sevetson, Phil <[login to unmask email]>
Sent: Friday, May 24, 2019 1:08 PM
To: [login to unmask email]
Subject: [External] [DB2-L] - Fixing Buffer Pools on DB2 v11 z/OS



We have not changed the way we use BPs in the last several releases. In the
mean time, with cheap memory, we have plenty of that; my DB2 sysprog tells
me that our systems are experiencing _no paging_. (We are too using our
computer. Shut up.)



Is there, other than memory paging, any reason to change our page frame size
or to fix any bufferpools? Theory, or "look at this Redbook here," would be
appreciated.



-phil





********



Philip Sevetson

Computer Systems Manager

FISA-OPA

5 Manhattan West

New York, NY 10001

[login to unmask email]

212-857-1688 w

917-991-7052 m

212-857-1659 f

cid:[login to unmask email]



**This e-mail, including any attachments, may be confidential, privileged,
or otherwise legally protected. It is intended only for the addressee. If
you received this e-mail in error or from someone who was not authorized to
send it to you, do not disseminate, copy, or otherwise use this e-mail or
its attachments. Please notify the sender immediately by reply e-mail and
delete the e-mail from your system.**

-----End Original Message-----

_____

This message (including any attachments) may contain confidential,
proprietary, privileged and/or private information. The information is
intended to be for the use of the individual or entity designated above. If
you are not the intended recipient of this message, please notify the sender
immediately, and delete the message and any attachments. Any disclosure,
reproduction, distribution or other use of this message or any attachments
by an individual or entity other than the intended recipient is prohibited.

TRVDiscDefault::1201

-----End Original Message-----

Michael Hannan

RE: [External] Fixing Buffer Pools on DB2 v11 z/OS
(in response to Joel Goldstein)

So what percentage of the CPU cost for a Sync I/O is consumed by fixing the target page? That seems to be the critical info to me. Then one could estimate the  savings for Page Fixing a Buffer Pool. It might well be unmeasurable against a varying workload, if a small percentage, but would be nice to know its magnitude, and therefore its relative importance.  In the old days Akira used to give approx costs of various operations, like a Getpage for example. Has the overhead of fixing a page ever been specified, and overhead for fixing a set of pages for a Prefetch I/O?

Michael Hannan,
DB2 Application Performance Specialist
CPT Global Ltd

Joel Goldstein

[External] Fixing Buffer Pools on DB2 v11 z/OS
(in response to Michael Hannan)
Hi Michael,



As far as I know, IBM has never provided any guesstimate – other than mentioning it has overhead.



I think some of the numbers Akira used to provide came from looking at the actual instruction path lengths – since he had access to the source code.

Unfortunately nobody has the dedicated staff resources, or dedicated hardware environments, to run true benchmarks for low level functions like that anymore.



It’s been more than 30 yrs since I had opportunities to run serious dedicated benchmarks.



Thinking about prefetch, unless you are really doing a scan into an pool that does not already contain any pages of an object,

a prefetch reads anyplace from 0 – 32 or 0 -64 pages. Only reads the pages not already in the pool.



A DB2 IO trace shows the start IO for a prefetch, and then pages returned as 0 if all pages are already in the pool.

The missing instrumentation for prefetch – we cannot know which pages were actually read in by any specific prefetch…

unless we know what pages were already in the pool prior to the initiation of a prefetch.



Then to really muck things up, we have dynamic and list prefetch.



It would really be fun to be able to design and run benchmarks at those levels again.



Joel



Joel Goldstein
Responsive Systems
Buffer Pool Tool(R) for DB2, the worldwide industry standard

Predicts the IO rate/Sec for tuning changes
Performance software that works......
Predicts Group Buffer Pool performance too!
www.responsivesystems.com http://www.responsivesystems.com
tel. (732) 972-1261
fax.(732) 972-9416

[login to unmask email]



From: Michael Hannan [mailto:[login to unmask email]
Sent: Friday, May 24, 2019 7:50 PM
To: [login to unmask email]
Subject: [DB2-L] - RE: [External] Fixing Buffer Pools on DB2 v11 z/OS



So what percentage of the CPU cost for a Sync I/O is consumed by fixing the target page? That seems to be the critical info to me. Then one could estimate the savings for Page Fixing a Buffer Pool. It might well be unmeasurable against a varying workload, if a small percentage, but would be nice to know its magnitude, and therefore its relative importance. In the old days Akira used to give approx costs of various operations, like a Getpage for example. Has the overhead of fixing a page ever been specified, and overhead for fixing a set of pages for a Prefetch I/O?

Michael Hannan,
DB2 Application Performance Specialist
CPT Global Ltd



-----End Original Message-----

Michael Hannan

RE: [External] Fixing Buffer Pools on DB2 v11 z/OS
(in response to Joel Goldstein)



In Reply to Joel Goldstein:

As far as I know, IBM has never provided any guesstimate – other than mentioning it has overhead.
I think some of the numbers Akira used to provide came from looking at the actual instruction path lengths – since he had access to the source code.

It would really be fun to be able to design and run benchmarks at those levels again.

Joel

I agree with you, completely. It gets so hard to benchmark so the instruction path length would be useful.

I do intend to do benchmarks of my own design to get performance numbers, however in an easier area more related to my specialities.

Fix a page overhead must be rather low one would think. I don't like to recommend savings to be made unless are visible and worthwhile. So unfortunately I have no clue for this one. A good question to put to John Campbell I guess. In old days I used to ask Jim Teng a lot of Data Manager and Bufferpool questions. He was very helpful.

Michael Hannan,
DB2 Application Performance Specialist
CPT Global Ltd

Edited By:
Michael Hannan[Organization Members] @ May 26, 2019 - 12:10 PM (Europe/Berlin)

James Campbell

[External] Fixing Buffer Pools on DB2 v11 z/OS
(in response to Michael Hannan)
For a wet finger in the air:

"Long-term page fix option for buffer pool (BP) with frequent I/O´s (CM)
...
Up to 8% reduction in overall IRWW transaction cpu time"

(DB2 9 for z/OS Performance Update
Gareth Jones)

As always, YMWV.

James Campbell


On 26 May 2019 at 3:08, Michael Hannan wrote:

>
>
>
> In Reply to Joel Goldstein:
> As far as I know, IBM has never provided any guesstimate - other than mentioning it has
> overhead.
> I think some of the numbers Akira used to provide came from looking at the actual
> instruction path lengths - since he had access to the source code.
>
> It would really be fun to be able to design and run benchmarks at those levels again.
>
> Joel
> I agree with you, completely. It gets so hard to benchmark so the instruction path length
> would be useful.
> I do intend to do benchmarks of my own design to get performance numbers, however in an
> easier area more related to my specialities.
> Fix a page overhead must be rather low one would think. I don't like to recommend savings
> to be made unless are visible and worthwhile. So unfortunately I have no clue for this one. A
> good question to put to John Campbell I guess. In old days I used to ask Jim Teng a lot of
> Data Manager and Bufferpool questions. He was very helpful.
> Michael Hannan,
> DB2 Application Performance Specialist
> CPT Global Ltd
>
>


---
This email has been checked for viruses by AVG.
https://www.avg.com

Michael Hannan

RE: [External] Fixing Buffer Pools on DB2 v11 z/OS
(in response to James Campbell)

In Reply to James Campbell:

For a wet finger in the air:

"Long-term page fix option for buffer pool (BP) with frequent I/O´s (CM)
...
Up to 8% reduction in overall IRWW transaction cpu time"

(DB2 9 for z/OS Performance Update
Gareth Jones)

As always, YMWV.

James Campbell

These "Up to x%" type numbers can severely mislead people. I hate them. I want a cost (not percentage) per page fixed for a sync I/O, or similar, a CPU (for a specific engine) or SUs number. So then when we see the total number of I/Os in the BP reported, we could estimate a maximum save, which may turn out to be a very small number (or not). 

So based on the cost of the actual operation saved, and then the "workload" is irrelevant, just the I/Os matter.

We could get an idea if the save might be noticable or measurable.

Michael Hannan,
DB2 Application Performance Specialist
CPT Global Ltd

Edited By:
Michael Hannan[Organization Members] @ May 31, 2019 - 12:17 PM (Europe/Berlin)

Avram Friedman

RE: [External] Fixing Buffer Pools on DB2 v11 z/OS
(in response to Michael Hannan)

I agree with Joel in that it is only beneficial to fix pools with high amounts of I/O.
Before considering page fixing reduce the candidate pools to the point where it 'hurts'
There is a good reason for this,  with large storage consumption and high I/O rates you are not saving much it anything via large pool sizes.

I mentioned in an earlier post that what page fixes frees up is the page fix page release process for I/O  ALL IO operateds from fixed real pages regardless of page fixing settings.  ALL OF IT!!!!  What page fixing avoides is the page fix overhead.  IOS can tell if the storage is pagefixed from the storage storage pool.

Easy test write a program to copy a sequential file and run it with and without the i/o area being pagefixed.
It is best to do this well outside DB2 to eliminate background considerations.

Avram Friedman
DB2-L hall of fame contributor
DB2-L 'past' administrator

[login to unmask email]