Ramifications of -mf parameter

kdefilip

Member
Hi
We are observing very high "partial writes" on the BI log. From progress, possibilities include:
  • - An APW attempts to write a DB block whose changes are recorded in a BI buffer that has not been written. Because BI notes must be flushed before the AI note is flushed, the APW writes the data in the BI buffer before the buffer is full so it can do the AI write.
  • - An after-image writer (AIW) runs ahead of the BIW. Because BI notes must be flushed before the AI notes can be written, the AIW writes the BI buffer before it is full so it can do the AI write.
  • - The Suppress BI File Write (-Mf) parameter's timer expires before the buffer was filled.

Our -mf parameter is set to 3. Does anyone know the ramifications of this setting?

Thanks.
 

TheMadDBA

Active Member
I wouldn't set it any higher (3 is the default), it is supposed to delay the writing of BI blocks to disk when a transaction is completed. Meaning you could potentially lose completed transactions in case of a crash.

Partial writes aren't usually much of an issue by themselves... a lot of times it will just be because the APWs are doing the writes instead of the BIW.

Things to watch out for are frequent checkpoints, buffers flushed at checkpoint, busy/empty buffer waits and the actual amount of time it takes to write the BI to disk.

Use promon R&D,2,5 to check the BI Busy buffer waits, Empty buffer waits as well as the Bytes written... use the per second values for a smallish sample during peak times.
promon, R&D,2,6 to check the AI specific values.

Use promon R&D,debghb <to activate the extra fields/menus>,3,4 to check the flushes, checkpoint duration and sync times.

If you have busy or empty buffers you can raise the value of -bibufs and/or -aibufs , making sure to keep the value of -aibufs 1.5 times the size of -bibufs. Each buffer takes up basically a BI/AI blocksize chunk of memory.
 

kdefilip

Member
This is the best of any 5 minute period I've captured - it is usually much worse:
upload_2014-10-31_15-51-29.png

and there are ALWAYS buffer busy waits on the BI
 

kdefilip

Member
These are the changes we are making tonight at 10PM
upload_2014-10-31_16-0-48.png
 

Attachments

  • upload_2014-10-31_15-59-59.png
    upload_2014-10-31_15-59-59.png
    59.7 KB · Views: 4

TheMadDBA

Active Member
Looks like a decent start... one suggestion and one question

I would set aibufs to 300 instead of 200 - you want it to be larger than bibufs.

When you say increase the cluster size and number.. what do you mean by that?
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
My understanding is that the guidance on setting -aibufs to 1.5 * -bibufs dates back to a time when AI notes were larger in size than the corresponding BI notes, and that now they are essentially the same so equal parameter values can be used.
 

TheMadDBA

Active Member
Hmmm.. I can't seem to find anything in the usual spot that says that has changed. If you happen to know a link where this is discussed or a version where the AI note size changed I would appreciate it.
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
I'm looking (and listening). May have been a verbal comment at a conference, but I'm pretty convinced I've heard it more than once in the last year or so.
 

kdefilip

Member
Note that the parameter name is -omsize, not -omcachesize. How did you choose the number? Do you actually have 5200 storage objects?
Yes, sorry, shooting from the hip...

Oh, I forgot part 2 of your question. I wanted vendor to query the PUB objects table for an appropriate setting, but he chose to do a count of db objects. Again, that value not my call, understanding that it appears he did not use the recommended method of arriving at this value. However, the current value of 1024 is NOT working.
 
Last edited:

kdefilip

Member
Looks like a decent start... one suggestion and one question

I would set aibufs to 300 instead of 200 - you want it to be larger than bibufs.

When you say increase the cluster size and number.. what do you mean by that?
Most everything I know and love about BI I found here:
http://knowledgebase.progress.com/articles/Article/P54984
see section labeled;
Providing More BI Buffers
Increasing the BI Cluster Size
Increasing the Number of BI Clusters

We have reason to believe all these things should happen...
 

TheMadDBA

Active Member
Just to clarify something... proutil bigrow will increase the number of clusters when the database is first started up, but once those are used you are back to the regular settings/allocation methods. I wouldn't expect too much from that. Allocating clusters isn't usually a big deal unless you have seriously brutal hardware issues.

The BI cluster size, block size and buffers can all help if they are bottlenecks... from what you have posted before they probably are to some extent.

I assume you have tested all of this somewhere else first? There are a lot of steps and you will have to disable AI for a number of these steps.
 

kdefilip

Member
Yes, re BI, we are only changing cluster size, block size and buffers, we may also start a BIW as well.

RE the testing, "oh my side, somebody make him stop". No, this turnkey system has no test system. Although I have their "technical" guy on the hook to make all the DB changes and to be available Monday AM when we reach full load to handle any potential negative ramifacation.
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
I'm looking (and listening). May have been a verbal comment at a conference, but I'm pretty convinced I've heard it more than once in the last year or so.
Gus kind of referenced it in his BI talk at PCA 2013, that the content of BI and AI notes is now more or less the same, aside from a few AI-specific notes like for AI extent switches. George Potemkin on the PEG also called the 1.5 times rule "a myth" (05/06/2013).
 

kdefilip

Member
You may start a BIW? You should always run a BIW, an AIW, a WDOG, and at least one APW. Always. (On Enterprise, specifically.)
Sorry, should have been more specific. There was a time when no BIW was running on this system. It is running now?? It will be a point of discussion in the future with vendor because, as I understand it, that process is a manual start.
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
Never mind, I answered my own question from your other thread. According to the startup portion of your DB log, you are already configured to run a BIW:
Code:
[2014/10/05@11:27:34.845-0400] P-7924  T-7928  I BIW  187: (-----) Login by SYSTEM.
 
Top