java - 仅包含实时 lucene 索引的目录中的可用磁盘减少

标签 java linux lucene filesystems

我正在 Linux 系统上运行基于 lucene 的应用程序。

应用程序在同一目录下写入和读取许多 lucene 索引,该目录不包含其他数据。

我们正在监控索引目录,并注意到 df util 计算的磁盘使用量增长速度比 du util 计算的增长速度更快。

当我们终止应用程序时,使用两个 utils 计算的磁盘使用量是相同的,并且它是应用程序运行时使用 du 计算的磁盘使用量。

你能找出原因是什么吗?

最佳答案

du 通过遍历文件目录并将所有文件大小相加来计算磁盘使用情况。

df 通过读取文件表索引来计算磁盘使用情况。

确保以 sudo 方式运行 du 以获得更好的阅读效果,以便该实用程序可以访问系统上的所有文件。 df 计算出的可用空间比 du 少,因为 du 在计算时可能无法访问系统上的所有文件。

应用程序必须在运行时将一些读保护的文件写入文件系统,并在退出时删除它们。

为了验证情况是否如此,可以使用可以监视磁盘写入的软件来分析应用程序。在 Windows 上,我将使用进程监视器和过滤器来创建/写入文件。我发现了一个类似的工具可以在 Linux 上执行此操作,名为 monks 。不要在生产服务器上运行它。这可以帮助您找到应用程序写入了哪些文件,并进一步发现是否有任何文件被读锁定。

关于java - 仅包含实时 lucene 索引的目录中的可用磁盘减少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59843134/

相关文章:

java - 使用java将下载保存到浏览器下载而不是系统下载

java - 如何使用 netapp ontap api (8.1) 和 java 获取存储系统的磁盘、聚合和 LUN 信息?

linux - 一条命令即可判断是 windows、osx 还是 linux/unix

json - 使用 jq 将 JSON 转换为 CSV

java - 使用 intelliJ 运行 spring mvc 应用程序

java - 为什么删除会使实现函数类型复杂化?

c++ - 无法获取小部件的高度/宽度 - gtkmm

lucene - 如何使用 Lucene MultiFieldQueryParser 更改默认连接

java - 为什么我在使用 lucene 时查询解析器总是出现错误

elasticsearch - 调整仅某些查询的相关性得分