具有许多目录的WatchService性能

Mic*_*che 5 java performance watchservice

我想使用Java WatchService来监听大量目录(数十万)的变化,但我不知道它是否适合这样数量的监视目录.

有没有人有WatchService这么多目录的经验?

如果有帮助,WatchService将在带有EXT4文件系统的CentOS 6.5上使用.

谢谢,Mickael

Pet*_*rey 6

这种情况对于 IDE 来说相当常见。他们经常使用目录监视来监视复杂的目录结构和数十甚至数千个文件。

有两点需要注意:

为了防止这种情况,建议增加手表限制(例如,512K)。您可以通过将以下行添加到 /etc/sysctl.conf 文件来完成此操作:

    fs.inotify.max_user_watches = 524288
Run Code Online (Sandbox Code Playgroud)

此示例调整系统以监视 512k 文件。

  • 如果您有 HDD,它不会使其旋转得更快,并且很可能达到 80 - 120 IOPS(每秒 IO),这更有可能成为性能瓶颈,超出您的预期。

与 Java 中的许多 IO 操作一样,它是实际由操作系统实现的设施的包装。