【问题标题】:how to increase berkeley db cache size如何增加 berkeley db 缓存大小
【发布时间】:2013-06-29 03:26:39
【问题描述】:

我正在尝试为 bdb 文件设置以千兆字节为单位的缓存大小。我正在为 bdb 使用 python 接口。我看到 bdb 的底层 'C' api 有这个选项。

int DB->set_cachesize(DB *db, u_int32_t gbytes, u_int32_t bytes, int ncache);

但我只能将一个 cachesize 参数传递给 btopen 函数,该函数被解释为以字节为单位的 cache_size。这将最大 cache_size 限制为 2GB。我希望能够将缓存大小设置为至少 4gb。

任何能够设置/增加缓存大小的帮助将不胜感激,在此先感谢!

下面是我用来设置cache_size的python函数。

cache_size = (2*1024*1024*1024) - 1

db = bsddb.btopen(self._bdbFileName, cachesize=cache_size, flag='n')

【问题讨论】:

  • 如果您运行的操作系统有自己的缓冲区缓存,则可能不需要这样做。使用较小的缓存大小评估应用程序的性能,例如 1 GiB 与 2 GiB。如果您的操作系统已经在缓存数据库文件,您可能会发现让操作系统执行此操作比将内存专用于 BDB 时您的应用程序性能更好。

标签: python performance caching python-2.7 berkeley-db


【解决方案1】:

我不熟悉BDB的python接口。当我使用 c api 时,我非常感谢使用 环境 打开 bdb 并在环境中设置很多配置。

例如,使用 environment 打开一个 bdb 文件,并将 env dir 设置为 ~/env/。然后在~/env/中放一个名为DB_CONFIG的文件,内容为:

set_cachesize 4 0 1

缓存大小将设置为 4GB。无需代码。

您可以在 DB_CONFIG 中查看this 中的所有可用配置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-18
    • 2013-02-10
    相关资源
    最近更新 更多