我正在调试系统中的磁盘空间问题,发现 .jdb 文件占用了大部分空间。
浏览时,发现此链接https://backstage.forgerock.com/knowledge/kb/article/a14630082,在我的情况下,lnSizeCorrectionFactor 约为 1.4 并且 fileDeleted=false。我运行磁盘空间命令来查找空间利用率,结果证明所有 jdb 文件的空间利用率都不为零,但大多数文件的利用率为 2-9 范围内的单个数字值。
我正在使用 je-5.0.58 版本,它不是最新的。我的问题是根据 BDB 文档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