知识库

lucene-1.0: Too many open files 错误的解释

如果在 $NEO4J_HOME/logs/debug.log 中遇到类似以下的“打开文件过多”错误

Caused by: java.nio.file.FileSystemException: /data/neo4j/db/schema/index/lucene_native-2.0/1612/lucene-1.0: Too many open files
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(UnixFileSystemProvider.java:427)
    at java.nio.file.Files.newDirectoryStream(Files.java:457)

可以通过在 $NEO4J_HOME/conf/neo4j.conf 中设置以下参数来解决

dbms.jvm.additional=-Dorg.neo4j.io.pagecache.implSingleFilePageSwapper.channelStripePower=0

如果不设置此参数,每个索引会在同一文件上保持多个打开的文件句柄,每个句柄负责文件的一部分。而设置如上参数后,每个文件仅保持一个打开的文件句柄,从而减少打开的文件句柄数量。

需要注意的是,在 Neo4j 4.0 中此参数将自动默认值为 0。

© . This site is unofficial and not affiliated with Neo4j, Inc.