<html><head></head><body>Hi,<br /><br />I'm looking for some advice on cache sizes in Ingres.<br /><br />The following is the output of &quot;top&quot; for my current Ingres installation:<br /><br />
<div>&nbsp; &nbsp;PID USER&nbsp; &nbsp; &nbsp; PR&nbsp; NI&nbsp; &nbsp; VIRT&nbsp; &nbsp; RES&nbsp; &nbsp; SHR S&nbsp; %CPU %MEM&nbsp; &nbsp; &nbsp;TIME+ COMMAND</div>
<div>&nbsp; 4601 ingres&nbsp; &nbsp; 20&nbsp; &nbsp;0 7430084 2.144g&nbsp; 33984 S 431.3&nbsp; 7.8&nbsp; &nbsp;1985:18 iidbms</div>
<div>&nbsp;</div>
<div><span style="font-size: 11pt;">If I use pmap to look at the memory usage of the process, a la &quot;pmap -x 4601&quot; it seems Ingres is using&nbsp;</span><span style="font-size: 14.6667px;">&nbsp;7430084kb</span><span style="font-size: 11pt;">&nbsp;of memory, which is...</span><span style="font-size: 14.6667px;">8gb-ish.</span></div>
<div><span style="font-size: 14.6667px;"><br /></span>I have a lot more than 8GB of RAM, though.&nbsp; I've got 32GB, and I'd like to use a much larger portion of the available memory for logging.&nbsp; I could pretty easily field 96GB if there was a reason to.<br /><br />I currently have the cache guideline for each of the caches set to &quot;huge&quot;, which is the largest of the guidelines.<br /><br />2k:<br />
<div>&nbsp; &nbsp;│cache_guideline&nbsp; &nbsp; &nbsp;│huge&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │string&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │</div>
<div>&nbsp; &nbsp;│dmf_group_size&nbsp; &nbsp; &nbsp; │8&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│data pages&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │</div>
<div>&nbsp; &nbsp;│dmf_write_behind&nbsp; &nbsp; │ON&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │boolean&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│</div>
<div><br />4k:<br />
<div>&nbsp; &nbsp;│cache_guideline&nbsp; &nbsp; &nbsp;│huge&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │</div>
<div>&nbsp; &nbsp;│dmf_group_size&nbsp; &nbsp; &nbsp; │8&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│data pages&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │</div>
<div>&nbsp; &nbsp;│dmf_separate&nbsp; &nbsp; &nbsp; &nbsp; │OFF&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│boolean&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│</div>
<div>&nbsp; &nbsp;│dmf_write_behind&nbsp; &nbsp; │ON&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │boolean&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│</div>
<br />8k:<br />
<div>&nbsp; &nbsp;│cache_guideline&nbsp; &nbsp; &nbsp;│huge&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │</div>
<div>&nbsp; &nbsp;│dmf_group_size&nbsp; &nbsp; &nbsp; │8&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│data pages&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │</div>
<div>&nbsp; &nbsp;│dmf_separate&nbsp; &nbsp; &nbsp; &nbsp; │OFF&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│boolean&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│</div>
<div>&nbsp; &nbsp;│dmf_write_behind&nbsp; &nbsp; │ON&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │boolean&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│<br /><br /></div>
16k:<br />
<div>&nbsp; &nbsp;│cache_guideline&nbsp; &nbsp; &nbsp;│huge&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │</div>
<div>&nbsp; &nbsp;│dmf_group_size&nbsp; &nbsp; &nbsp; │8&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│data pages&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │</div>
<div>&nbsp; &nbsp;│dmf_separate&nbsp; &nbsp; &nbsp; &nbsp; │OFF&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│boolean&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│</div>
<div>&nbsp; &nbsp;│dmf_write_behind&nbsp; &nbsp; │ON&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │boolean&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│</div>
<br />32k:<br />
<div>&nbsp; &nbsp;│cache_guideline&nbsp; &nbsp; &nbsp;│huge&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │</div>
<div>&nbsp; &nbsp;│dmf_group_size&nbsp; &nbsp; &nbsp; │8&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│data pages&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │</div>
<div>&nbsp; &nbsp;│dmf_separate&nbsp; &nbsp; &nbsp; &nbsp; │OFF&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│boolean&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│</div>
<div>&nbsp; &nbsp;│dmf_write_behind&nbsp; &nbsp; │ON&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │boolean&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│<br /><br /></div>
64k:<br />
<div>&nbsp; &nbsp;│cache_guideline&nbsp; &nbsp; &nbsp;│huge&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │</div>
<div>&nbsp; &nbsp;│dmf_group_size&nbsp; &nbsp; &nbsp; │8&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│data pages&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │</div>
<div>&nbsp; &nbsp;│dmf_separate&nbsp; &nbsp; &nbsp; &nbsp; │OFF&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│boolean&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│</div>
<div>&nbsp; &nbsp;│dmf_write_behind&nbsp; &nbsp; │ON&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │boolean&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│</div>
<div>&nbsp;</div>
It -seems- like I should be able to go into the derived parameter set for each configuration section and change the dmf_cache_size parameter to specify a larger number of data pages.<br /><br />I actually tried this some time ago, though, and while I did use more memory the net effect on performance observed was actually negative.&nbsp; I'm not sure if my experience was atypical, though, or if there really is a reason you shouldn't just use as much memory as you can (ie: memory that isn't being used by other services on the server).<br /><br />So, some specific questions I am hoping to find answers to:<br /><br />1.&nbsp; Is increasing dmf_cache_size the correct approach toward the goal of consuming more memory and increasing overall read performance by not having to hit the physical disk?<br />2.&nbsp; Are there negative consequences to setting this value too high?<br />3.&nbsp; I've noticed that the output of &quot;help table sometable;&quot; shows a field called &quot;cac!
 he priority&quot;.&nbsp; If I know which of my tables I consider to be most cache-worthy, can I use this setting to purposely bias the cache in favor of the tables I care about?&nbsp; If so, how can I do that?&nbsp; I've never seen anything that indicates how I could set this.&nbsp;<br />4.&nbsp; I realize this is super-general, but what do people generally consider &quot;good&quot; cache hit rates?&nbsp; I mean, if I keep throwing more memory at the cache can I reasonably expect to drive cache hit rates up to values approaching 100% (ie: if the cache were larger than the actual database itself)?</div>
</div>
<br />-Michel<br />
<article></article></body></html>