如何定义“内存池”的大小?

时间:2014-07-10 09:44:37

标签: ingres

psf_memoryopf_memory中,我们提供了我们希望这两个设施可用的内存池的百分比。但是,目前还不清楚如何控制内存池本身。我理解它会随着允许的连接数量而变化,但是有没有办法简单地给它一个具体的值,或者换句话说告诉Ingres使用固定数量的gibibytes作为内存池?

1 个答案:

答案 0 :(得分:1)

  

在psf_memory和opf_memory中,我们给出了我们希望这两个设施可用的内存池的百分比。

不完全。有多个内存池。 opf和psf是两个,还有其他。

opf_memory和psf_memory是这些池的大小。它们是派生参数,因此从其他参数计算。要在CBF中查看它们,您必须选择' Derived'在'配置DBMS'中的菜单项。正如您所说,他们从中获得的主要价值是连接会话。但是,与所有派生参数一样,您可以根据需要直接更改它们。如果你这样做,那么保护它们以阻止它们在其他东西发生变化时重新计算是一个好主意。

百分比参数 - opf_maxmemf和psf_maxmemf - 是允许单个会话的内存量。因此,如果你的opf_memory是120M但是opf_maxmemf是50那么没有一个会话可以使用超过60M的opf内存(120M的50%)。

您可以查看用于派生参数的规则,它们位于$ II_SYSTEM \ ingres \ files中的* .crs文件中。例如,在dbms.crs中,您将看到:

ii.$.dbms.$.opf_memory:         20M + (256K * ii.$.dbms.$.opf_active_limit),
                            MIN = 1M, SIZETYPE;

这意味着opf_memory为每个活动会话计算到20M + 265K - opf_active_limit - 它本身是从connect_limit派生的。它的最小值为1M,它是一个SIZETYPE值(整数) - 这意味着如果您自己设置它,CBF不会让您输入较小的值或小数。

HTH 保罗