On Sep 9, 2020, at 10:06 PM, Steve <s.anderson.au@gmail.com> wrote:
Hi there
Memory utilisation in our production box gets as high as 98% each day. With Ingres occupying most of the memory, I would like to reduce how much it uses. Am I right in thinking Ingres pre-allocates all the memory it requires at startup?
Previously, Actian had recommended reducing the QSF pool size, as its utilisation was low. So I guess that's an obvious candidate to recover some memory.
Where should one start when wanting to reduce the amount of memory Ingres uses? I would like to reduce the installation's memory footprint by 5%.
<div dir="auto"><br><div dir="auto"><br></div></div></div></div>
On Thursday, September 10, 2020 at 12:18:04 PM UTC+10, Karl Schendel wrote:
I'd start by looking at the DMF buffer cache sizes / numbers to make sure that
it's not overallocated.
The other step would be to use trace point SC916
to print out the current sizes of the various ULM memory pools (these
are the ones that grow). You can also use the DBMS log, if enabled, to
see when the ULM pools grow.
Finally, I'd make sure that you're looking at memory actually in use by
the DBMS server, and not simply used as a file page cache.
If it's a Linux box, 'free' memory can be misleading. The Linux OS uses as much free memory as possible as I/O buffers.
If will free up more memory if needed.
Check the actual memory size of the DBMS processes. If the server is a dedicated Ingres DB server, it would be normal for Ingres to use most of it.
Hi Steve. I would consider reducing DBMS cache. Do you know how to run a DM420 tracepoint which reports statistics for each cache.
Look at page calls versus hits. I aim for 90% to 95%. If you find a cache with 100% hit rate then it may be a candidate for reduction. And perhaps you have a cache which is not often used also can be reduced.
On Sep 23, 2020, at 4:00 AM, Steve <s.anderson.au@gmail.com> wrote:
On Thursday, September 10, 2020 at 12:18:04 PM UTC+10, Karl Schendel wrote: >>
I'd start by looking at the DMF buffer cache sizes / numbers to make sure that
it's not overallocated.
Thanks Karl. Would I do that by setting trace point DM420 that Paul suggested?
The other step would be to use trace point SC916
to print out the current sizes of the various ULM memory pools (these
are the ones that grow). You can also use the DBMS log, if enabled, to
see when the ULM pools grow.
Am I right to think most/all trace points can be set without needing to restart Ingres?
Also, if the DBMS log is not enabled (i.e. II_DBMS_LOG is not set), am I right in thinking I must specify the log file using the SET TRACE OUTPUT statement?
Is there any issue using the SET TRACE OUTPUT statement with multiple DBMS servers running? I see, for example, one can use %d and %p when setting II_DBMS_LOG.
Finally, I'd make sure that you're looking at memory actually in use by
the DBMS server, and not simply used as a file page cache.
I am naively looking at the RSS figure returned by prstat -t (installation is running on Solaris).
In wanting to tweak the memory footprint of Ingres, it's not so much that there is a problem with Ingres, it's just that Ingres is the only thing under my control, the server is managed by another outfit.
Thanks
Steve
_______________________________________________
Info-ingres mailing list
Info-ingres@lists.planetingres.org https://lists.planetingres.org/mailman/listinfo/info-ingres
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 339 |
Nodes: | 16 (1 / 15) |
Uptime: | 88:51:36 |
Calls: | 7,480 |
Files: | 12,703 |
Messages: | 5,634,323 |