配置memtable閾值過程詳情

2021-12-30 02:32:45 字數 2590 閱讀 5740

配置memtable閾值可以提高寫入效能。cassandra將memtables重新整理到磁碟,並在超過提交日誌空間閾值或memtable清除閾值時建立sstables 。配置cassandra.yaml中每個節點的提交日誌空間閾值 。如何調整memtable的閾值取決於資料和寫入負載。在這些條件下增加memtable閾值:

寫入負載在較小的一組資料上包含大量的更新。

連續的寫入發生。這一行動導致更有效的壓縮。

為memtables分配記憶體將減少可用於快取和其他內部cassandra結構的記憶體,因此請仔細調整並以小增量調整。

memtable_allocation_type:預設heap_buffers,cassandra用來分配和管理memtable記憶體的方法。在版本3.2.0和3.2.1中,唯一有效的選項是: heap-buffers(在堆nio (非阻塞i / o)緩衝區上)。

memtable_cleanup_threshold:預設1 /(memtable_flush_writers + 1)

file_cache_size_in_mb:預設較小的1/4 heap或512,用於sstable讀緩衝區的總記憶體。

buffer_pool_use_heap_if_exhausted:預設true,?指示當sstable緩衝池耗盡(當緩衝池超過最大記憶體file_cache_size_in_mb時),cassandra是否分配堆內或堆外記憶體,超出此數量時,cassandra會停止快取緩衝區,但根據要求分配。

memtable_flush_writers:預設核心數量最少為2,最多為8,memtable重新整理寫入程式執行緒的數量。這些執行緒被磁碟i / o阻塞,每個執行緒在被阻塞的時候在記憶體中儲存乙個memtable。如果您的資料目錄由ssd支援,請將此設定增加到核心數量。

commitlog_sync:預設periodic,用於確認寫入的方法,以毫秒為單位:

periodic:10000毫秒(10秒)使用 commitlog_sync_period_in_ms控制提交日誌同步到磁碟的頻率。定期同步立即得到確認。

batch:預設disabled,通過 commitlog_sync_batch_window_in_ms (預設值:2 ms)控制cassandra在執行同步之前等待其他寫入的時間。啟用此方法後,cassandra不會確認寫入,直到它們被磁碟讀取為止。

commitlog_segment_size_in_mb:預設32 mb,單個提交日誌檔案段的大小。在將所有資料重新整理到sstable之後,可以對commitlog段進行歸檔,刪除或**。這些資料可能包含系統中每個表的提交日誌段。預設大小通常適用於大多數提交日誌歸檔,但如果您想要更精細的粒度,則8或16 mb是合理的。

預設情況下,max_mutation_size_in_kb被設定為的一半commitlog_segment_size_in_kb。

max_mutation_size_in_kb:預設commitlog_segment_size_in_mb的 1/2 。如果突變的大小超過這個值,則突變被拒絕。在增加commitlog段的commitlog段的大小之前,調查為什麼突變比預期的大。查詢訪問模式和資料模型的基本問題,因為增加commitlog段的大小是乙個有限的修復。

注意:如果max_mutation_size_in_kb 明確設定 ,則必須commitlog_segment_size_in_mb至少設定 max_mutation_size_in_kb / 1024的兩倍。

commitlog_compression:預設not enabled,壓縮提交日誌時使用的壓縮器。有效值: lz4,snappy或 deflate。如果沒有為此屬性設定值,則提交日誌將被解壓縮。

cdc_total_space_in_mb:預設4096 mb和占用的驅動器總空間的1/8cdc_raw_directory 。

注意:如果空間超過這個值,cassandra將會丟擲 writetimeoutexception包括啟用cdc的表在內的mutations。cdccompactor(消費者)負責解析原始cdc日誌,並在解析完成時將其刪除。

cdc_free_space_check_interval_ms:預設250 ms,當達到cdc_raw限制並且cdccompactor執行在後面或遇到背壓時,將檢查此間隔以檢視cdc跟蹤表的任何新空間是否已經可用。

commitlog_total_space_in_mb:預設32位jvm為32 mb,64位jvm為8192 mb。

注意:用於提交日誌的總空間。如果所有提交日誌使用的總空間高於此值,則cassandra將捨入到下乙個最接近的多個資料塊,並將memtables重新整理到最舊的commitlog段的磁碟,從提交日誌中刪除這些日誌段。這減少了在啟動時重播的資料量,並防止不經常更新的表無限期地保持提交日誌段。如果 commitlog_total_space_in_mb 很小,結果是在較不活躍的**上更具活性。

配置memtable閾值

配置memtable閾值可以提高寫入效能。cassandra將memtables重新整理到磁碟,並在超過提交日誌空間閾值或memtable清除閾值時建立sstables 配置cassandra.yaml中每個節點的提交日誌空間閾值 如何調整memtable的閾值取決於資料和寫入負載。在這些條件下增加...

Spring Cloud中Feign配置詳解

到目前為止,小夥伴們對feign的使用已經掌握的差不多了,我們在前文也提到feign是對ribbon和hystrix的整合,那麼在feign中,我們要如何配置ribbon和hystrix呢?帶著這兩個問題,我們來看看本文的內容。1.使用spring cloud搭建服務註冊中心 2.使用spring ...

GitHub Eclipse配置使用教程詳解

1.egit外掛程式 開啟eclipse,git需要eclipse授權,通過網頁是無法 egit的安裝包的。在選單欄依次開啟eclipse help install new software add,name欄中輸入egit,location欄中輸入 點選ok進行 完成後會提示重啟eclipse 如...