【问题标题】:Cassandra: NoSpamLogger log Maximum memory usage reachedCassandra:NoSpamLogger 日志已达到最大内存使用量
【发布时间】:2019-01-06 13:03:18
【问题描述】:

每 15 分钟我会看到此日志条目:

2018-07-30 10:29:57,529 INFO [pool-1-thread-2] NoSpamLogger.java:91 日志已达到最大内存使用量 (512.000MiB),无法分配 1.000MiB 的块

我一直在阅读这个问题,但我看不出我的表格有什么问题: NoSpamLogger.java Maximum memory usage reached Cassandra

我有 4 张大桌子:

iot_data/derived_device_data histograms
Percentile  SSTables     Write Latency      Read Latency    Partition Size        Cell Count
                          (micros)          (micros)           (bytes)
50%             0.00              0.00              0.00               642                12
75%             0.00              0.00              0.00             17084               642
95%             0.00              0.00              0.00            263210             11864
98%             0.00              0.00              0.00           1629722             61214
99%             0.00              0.00              0.00           1955666             88148
Min             0.00              0.00              0.00               150                 0
Max             0.00              0.00              0.00           4055269            152321


iot_data/derived_device_data_by_year histograms
Percentile  SSTables     Write Latency      Read Latency    Partition Size        Cell Count
                          (micros)          (micros)           (bytes)
50%             0.00              0.00              0.00             51012              1597
75%             0.00              0.00              0.00           2346799             61214
95%             0.00              0.00              0.00          52066354           1629722
98%             0.00              0.00              0.00          52066354           1629722
99%             0.00              0.00              0.00          52066354           1629722
Min             0.00              0.00              0.00              6867               216
Max             0.00              0.00              0.00          52066354           1629722

iot_data/device_data histograms
Percentile  SSTables     Write Latency      Read Latency    Partition Size        Cell Count
                          (micros)          (micros)           (bytes)
50%             0.00             29.52              0.00              2299               149
75%             0.00             42.51              0.00            182785              9887
95%             0.00             61.21              0.00           2816159            152321
98%             0.00             61.21              0.00           4055269            219342
99%             0.00             61.21              0.00          17436917           1131752
Min             0.00             17.09              0.00                43                 0
Max             0.00             61.21              0.00          74975550           4866323

iot_data/device_data_by_week_sensor histograms
Percentile  SSTables     Write Latency      Read Latency    Partition Size        Cell Count
                          (micros)          (micros)           (bytes)
50%             0.00             35.43              0.00              8239               446
75%             0.00             51.01              0.00            152321              8239
95%             0.00             61.21              0.00           2816159            152321
98%             0.00             61.21              0.00           4055269            219342
99%             0.00             61.21              0.00          12108970            785939
Min             0.00             20.50              0.00                43                 0
Max             0.00             61.21              0.00          74975550           4866323

虽然我知道 derived_device_data //derived_device_data_by_year 表需要一些重构,但它们都没有接近 100MB 标记。为什么我会收到此日志条目?

编辑: 我注意到我的测试系统上有相同的日志条目,它们运行时几乎没有数据,但配置与 prod 相同。 12GB 内存,卡桑德拉 3.11.2

【问题讨论】:

    标签: cassandra elassandra


    【解决方案1】:

    您可能需要检查vm.max_map_count 的值和交换设置。如果启用了交换,则可能会影响两个系统的性能。 vm.max_map_count 的默认值也可能太低,并且影响 Cassandra 和 Elasticsearch(请参阅 recommendation for ES)。

    此外,您可能需要为 Cassandra 和 file_cache_size_in_mb 显式设置堆大小 - 使用 12Gb RAM,Cassandra 将使用 1/4 即 3Gb,file_cache_size_in_mb 将使用 ~750Mb(堆的 1/4) - 那可能太低了。

    附:因为它被记录为INFO,所以它被认为是无害的。见https://issues.apache.org/jira/browse/CASSANDRA-12221 & https://issues.apache.org/jira/browse/CASSANDRA-11681

    【讨论】:

    • 谢谢。我更改了 vm.max_map_count 设置,但日志条目再次出现。我认为您对堆设置是正确的。我在监控中看到 100% 的堆使用率,但只有 ~ 2GB 的内存使用率。
    【解决方案2】:

    不确定这个具体问题,但可以尝试检查 Cassandra 配置目录中的 jvm.options 文件。您可能想要增加 Xmx 或其他设置。

    【讨论】:

      猜你喜欢
      • 2018-03-29
      • 1970-01-01
      • 2010-11-13
      • 1970-01-01
      • 2010-10-17
      • 2012-10-18
      • 1970-01-01
      • 1970-01-01
      • 2016-11-22
      相关资源
      最近更新 更多