如何限制多个嵌入式 HSQLDB 数据库实例整体使用的 RAM?
Posted
技术标签:
【中文标题】如何限制多个嵌入式 HSQLDB 数据库实例整体使用的 RAM?【英文标题】:How to limit the RAM used by multiple embedded HSLQDB DB instances as a whole? 【发布时间】:2013-04-06 13:31:43 【问题描述】:给定:
-
HSQLDB 嵌入式
50 个不同的数据库(我有 50 个不同的数据源)
所有数据库均为
file:/
类型
所有表都已缓存
所有嵌入式数据库实例组合允许使用的 RAM 量是有限的,并在 java 进程启动时给出。
LOG 文件被禁用(崩溃时无需恢复)
我的理解是单个数据库实例使用的 RAM 由以下几部分组成:
所有表的缓存(我所有的表都是CACHED) 数据库实例内部状态此外,据我所知,我有这两个属性来控制单个数据库实例的缓存总大小:
设置文件缓存大小 设置文件缓存行但是,它们仅控制数据库实例使用的 RAM 的缓存部分。另外,它们是针对每个数据库实例的,而我想将所有实例作为一个整体进行限制。
那么,我想知道是否可以指示 HSQLDB 保持在包括所有数据库实例在内的总 RAM 量内?
【问题讨论】:
【参考方案1】:您只能限制每个数据库实例的 CACHE 内存使用。每个实例相互独立。
您可以减少每个数据库的 CACHE SIZE 和 CACHE ROWS 以适应您的应用程序。
HSQLDB 不使用很多其他内存,但是当它使用时,它会使用 JVM 的内存,这些内存在不同的数据库实例之间共享。
【讨论】:
是否有可能以某种方式计算 hsqldb 使用的 RAM 量? TaskMgr对我没有帮助,因为它报告了java进程占用的RAM,其中hsqldb只是其中的一部分。 没有。因为它们都在同一个 Java 进程中。以上是关于如何限制多个嵌入式 HSQLDB 数据库实例整体使用的 RAM?的主要内容,如果未能解决你的问题,请参考以下文章