我們使用的是Apache Cassandra 3.0.7版本,關閉後,我們發現幾乎所有節點都佔用了90%的內存,即使磁盤很少被使用。我們有5個節點的集羣,每個節點有15 GB內存,4個內核,200 GB SSD。Cassandra爲正在寫入的數據佔用太多內存
我們通過YAML以及表級別屬性嘗試了所有類型的配置,但似乎沒有任何幫助。內存使用量不斷增加,幾乎與數據成正比。考慮到我們的應用程序是一個寫入密集型應用程序的事實,我們可以減少讀取性能,但希望儘可能少地使用內存。要做到這一點,我們的想法是禁用所有可能的緩存或避免在內存中保留任何不必要的內容。但目前爲止似乎沒有任何幫助。
這裏是我們的YAML:http://pastebin.com/yeRGcHRt
,這裏是我們的表配置:
CREATE KEYSPACE如果不存在test_ks使用複製= { '類': 'SimpleStrategy', 'replication_factor':' 1' }; CREATE TABLE如果不存在 test_ks.test_cf(ID BIGINT PRIMARY KEY,key_str的文本,VALUE1 INT,值2 INT,update_ts BIGINT)WITH bloom_filter_fp_chance = 1 AND 評論= '' 和壓實= { '類': 「組織。 apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold':'32','min_threshold':'4'} AND compression = {'chunk_length_in_kb':'64','class': 'org.apache .cassandra.io.compress.LZ4Compressor'} AND crc_check_chance = 1.0和dclocal_read_repair_chance = 0.1,default_time_to_live = 0 AND gc_grace_seconds = 864000 AND max_index_interval = 10240, memtable_flush_period_in_ms = 3600000 AND min_index_interval = 10240 AND read_repair_chance = 0.0和窺鏡tive_retry ='99PERCENTILE' AND caching = {'keys':'NONE','rows_per_partition':'NONE'};
我們已經看到,大部分消費的是離堆,堆內存在4.5 G.加蓋所以出總共14個G的節點上,僅4.5G由堆消耗。
有沒有人試過這樣的配置?請讓我們知道,如果禁用緩存將幫助我們在這種情況下。如果是,我們如何才能完全禁用緩存。期待您的幫助。
謝謝Sabik公司的評論。我錯過了在我的問題中添加的一個觀察結果,堆不是問題,我們看到它大部分都是由堆外消耗的。爲了給您一個想法,我們的14G內存,我們的堆用量限制在4.5G,剩下的都是堆外的。 – Mani