【问题标题】:Why is CockroachDB's memory usage increasing even though I'm not sending it any traffic?为什么即使我没有向 CockroachDB 发送任何流量,它的内存使用量也会增加?
【发布时间】:2017-10-26 11:50:59
【问题描述】:

我今天早些时候启动了一个 CockroachDB 进程,尽管我没有使用它,但它的内存使用量在后台一直在增加。这是怎么回事?有什么办法可以阻止它生长?

【问题讨论】:

    标签: cockroachdb


    【解决方案1】:

    如果您启动 CockroachDB 节点并让它运行数小时或数天,这并不意外,因为它的内存使用量会稳定增长一段时间,然后稳定在计算机总内存的 25% 左右。有两个因素在起作用:

    1. CockroachDB 将内部时序监控数据存储到自身中,以便为其admin UI 中的图表提供动力。这意味着即使您没有向系统发送流量,也会定期写入数据。

    2. 与大多数数据库一样,CockroachDB 将最近访问的数据缓存在内存中,以便提供更快的读取速度。时间序列写入包含在其中,因此时间序列数据会在内存中累积,直到系统达到其配置的内存限制。

    缓存大小限制默认为机器内存的 25%,但可以通过在运行 cockroach start 时设置 --cache 标志来控制。例如,您可以运行 cockroach start --cache=512MiB 将缓存大小限制为 2^29 字节。

    如果您根本不关心管理 UI,您还可以通过在启动 CockroachDB 进程之前设置 COCKROACH_METRICS_SAMPLE_INTERVAL 环境变量来选择降低对时间序列数据进行采样的频率。默认每 10 秒采样一次,所以你可以将其设置为COCKROACH_METRICS_SAMPLE_INTERVAL=1m 以减少 6 倍写入的数据量。

    【讨论】:

      猜你喜欢
      • 2017-10-26
      • 2013-02-14
      • 2014-07-11
      • 2019-11-29
      • 1970-01-01
      • 2020-01-18
      • 1970-01-01
      • 2015-04-07
      • 2011-06-14
      相关资源
      最近更新 更多