我们的代理停止工作,恢复它的唯一方法是在每个节点重新启动代理,我们得到错误:
ERROR [clojure-agent-send-off-pool-11618] df failed on execute;
returning default value - Cannot run program "df": error=24, Too many open files
为什么需要打开这么多文件?我们如何重置它而无需重启代理并自动完成。
答案 0 :(得分:1)
根据DSE documentation on production settings,确保您对/etc/security/limits.d/cassandra.conf文件进行了以下调整:
cassandra - memlock unlimited
cassandra - nofile 100000
cassandra - nproc 32768
cassandra - as unlimited
注意:这假设您正在以cassandra
用户身份运行Cassandra。如果不是这样,请相应调整。
为什么需要打开这么多文件?
Cassandra最终将其数据写入底层文件系统上的SSTable文件。它还必须提供上述任何文件的读取。此外,如果您的行已经大量更新,因此随着时间的推移包含过时的数据(并且压缩没有运行),则完全有可能需要从多个文件中读取单行。
简而言之,数据库需要同时处理许多文件,Cassandra也不例外。