【问题标题】:How to limit the RAM used by multiple embedded HSLQDB DB instances as a whole?如何限制多个嵌入式 HSQLDB 数据库实例整体使用的 RAM?
【发布时间】:2013-04-06 13:31:43
【问题描述】:

给定:

  1. HSQLDB 嵌入式
  2. 50 个不同的数据库(我有 50 个不同的数据源)
  3. 所有数据库均为file:/ 类型
  4. 所有表都已缓存
  5. 所有嵌入式数据库实例组合允许使用的 RAM 量是有限的,并在 java 进程启动时给出。
  6. LOG 文件被禁用(崩溃时无需恢复)

我的理解是单个数据库实例使用的 RAM 由以下几部分组成:

  • 所有表的缓存(我所有的表都是CACHED)
  • 数据库实例内部状态

此外,据我所知,我有这两个属性来控制单个数据库实例的缓存总大小:

  • 设置文件缓存大小
  • 设置文件缓存行

但是,它们仅控制数据库实例使用的 RAM 的缓存部分。另外,它们是针对每个数据库实例的,而我想将所有实例作为一个整体进行限制。

那么,我想知道是否可以指示 HSQLDB 保持在包括所有数据库实例在内的总 RAM 量内?

【问题讨论】:

    标签: hsqldb


    【解决方案1】:

    您只能限制每个数据库实例的 CACHE 内存使用。每个实例相互独立。

    您可以减少每个数据库的 CACHE SIZE 和 CACHE ROWS 以适应您的应用程序。

    HSQLDB 不使用很多其他内存,但是当它使用时,它会使用 JVM 的内存,这些内存在不同的数据库实例之间共享。

    【讨论】:

    • 是否有可能以某种方式计算 hsqldb 使用的 RAM 量? TaskMgr对我没有帮助,因为它报告了java进程占用的RAM,其中hsqldb只是其中的一部分。
    • 没有。因为它们都在同一个 Java 进程中。
    猜你喜欢
    • 1970-01-01
    • 2014-09-09
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 2011-09-24
    • 2015-03-25
    • 2011-01-01
    • 2014-07-22
    相关资源
    最近更新 更多