【问题标题】:DSE Cannot run program df - Too many open filesDSE 无法运行程序 df - 打开的文件太多
【发布时间】:2018-07-03 14:57:22
【问题描述】:

我们的代理停止工作,恢复它的唯一方法是在每个节点中重新启动代理,我们得到的错误:

ERROR [clojure-agent-send-off-pool-11618] df failed on execute;
returning default value - Cannot run program "df": error=24, Too many open files

为什么需要打开这么多文件?我们如何在不需要重新启动代理的情况下重置它并使其自动生成。

【问题讨论】:

    标签: cassandra datastax datastax-enterprise opscenter datastax-startup


    【解决方案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 也不例外。

    【讨论】:

      猜你喜欢
      • 2016-07-21
      • 2014-09-21
      • 2013-04-02
      • 2015-12-17
      • 2012-08-14
      • 2021-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多