【发布时间】:2018-12-11 09:35:16
【问题描述】:
我正在调试系统中的磁盘空间问题,发现 .jdb 文件占用了大部分空间。
在浏览时,发现此链接https://backstage.forgerock.com/knowledge/kb/article/a14630082,在我的情况下,lnSizeCorrectionFactor 约为 1.4 并且 fileDeleted=false。 我运行磁盘空间命令来查找空间利用率,结果证明所有 jdb 文件的空间利用率都不为零,但大多数文件的利用率为 2-9 之间的单个数字值。
我使用的是 je-5.0.58 版本,不是最新的。我的问题是根据 BDB doc https://docs.oracle.com/cd/E17277_02/html/GettingStartedGuide/backgroundthreads.html#cleaner,如果 jdb 文件低于默认值 50%,则需要清理它。在我的情况下,即使它们是个位数,为什么它们没有被清理?
我没有明确设置任何环境配置,所以它应该使用默认值。下面是创建 bdb 存储库的代码。
private static Repository createBDBRepository(File environmentHome) throws
RepositoryException {
BDBRepositoryBuilder builder = new BDBRepositoryBuilder();
builder.setName("localbdb");
builder.setEnvironmentHomeFile(environmentHome);
builder.setTransactionNoSync(false);
// Set BDB-JE flavor
builder.setProduct("JE");
builder.setCacheSize(20 * 1024 * 1024L);
return builder.build();
}
je.info 文件中的日志行
Chose lowest utilized file for cleaning. fileChosen: 0x50cbecc totalUtilization: 49 bestFileUtilization: 8 lnSizeCorrectionFactor: 1.1012049 isProbe: false
No file selected for cleaning. totalUtilization: 50 bestFileUtilization: 8 lnSizeCorrectionFactor: 1.1012049 isProbe: false
【问题讨论】:
标签: java berkeley-db-je