0

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

4

1 回答 1

1

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

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

opf_memory 和 psf_memory 是这些池的大小。它们是派生参数,因此是从其他参数计算的。要在 CBF 中查看它们,您必须在“配置 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 保罗

于 2014-07-11T11:43:37.467 回答