Cassandra:NoSpamLogger 日志达到最大内存使用量

标签 cassandra elassandra

每 15 分钟我就会看到这个日志条目:

2018-07-30 10:29:57,529 INFO [pool-1-thread-2] NoSpamLogger.java:91 log Maximum memory usage reached (512.000MiB), cannot allocate chunk of 1.000MiB



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

我有 4 张大 table :
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

虽然我知道导出的设备数据//导出的设备数据_按年表需要一些重构,但没有一个接近 100MB 标记。为什么我会收到这个日志条目?

编辑:
我注意到我的测试系统上有相同的日志条目,它们几乎在没有数据的情况下运行,但具有与 prod 相同的配置。 12GB 内存,cassandra 3.11.2

最佳答案

您可能需要检查 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

关于Cassandra:NoSpamLogger 日志达到最大内存使用量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51591253/

相关文章:

json - 连接 Cassandra NoSQL DB 并获取 JSON 响应形式的响应

cassandra - Cassandra 何时从 SSTable 中删除数据

cassandra - Apache Cassandra 多个分区键还是单个计算键?

curl - 仅从 elasticsearch 查询返回 _source 数据

elasticsearch - 在 Elasticsearch 中映射解析器异常

来自 JSON 格式字符串的 Elasticsearch 查询?

elasticsearch - Elassandra单节点群集未启动。陷入突变阶段

cassandra - Cassandra 中的单分区批处理如何实现多列更新?

用于存储支付信息的 Cassandra

cassandra - 为什么我们在 Cassandra 中拍摄快照?