Cassandra:NoSpamLogger 日志达到最大内存使用率
Cassandra: NoSpamLogger log Maximum memory usage reached
我每 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
我一直在阅读这个问题,但我看不出我的表格有什么问题:
我有 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 表需要一些重构,但其中 none 接近 100MB 标记。为什么我会收到此日志条目?
编辑:
我注意到我的测试系统上有相同的日志条目,运行 几乎没有数据,但配置与 prod 相同。 12GB 内存,cassandra 3.11.2
不确定这个具体问题,但可以尝试检查 Cassandra 配置目录中的 jvm.options
文件。您可能想要增加 Xmx 或其他设置。
您可能需要检查 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 个堆)- 可能太低了。
P.S。因为它被记录为 INFO
,所以它被认为是无害的。参见 https://issues.apache.org/jira/browse/CASSANDRA-12221 & https://issues.apache.org/jira/browse/CASSANDRA-11681
我每 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
我一直在阅读这个问题,但我看不出我的表格有什么问题:
我有 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 表需要一些重构,但其中 none 接近 100MB 标记。为什么我会收到此日志条目?
编辑: 我注意到我的测试系统上有相同的日志条目,运行 几乎没有数据,但配置与 prod 相同。 12GB 内存,cassandra 3.11.2
不确定这个具体问题,但可以尝试检查 Cassandra 配置目录中的 jvm.options
文件。您可能想要增加 Xmx 或其他设置。
您可能需要检查 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 个堆)- 可能太低了。
P.S。因为它被记录为 INFO
,所以它被认为是无害的。参见 https://issues.apache.org/jira/browse/CASSANDRA-12221 & https://issues.apache.org/jira/browse/CASSANDRA-11681