欢迎投稿

今日深度:

配置memtable阈值,memtable阈值

配置memtable阈值,memtable阈值


配置memtable阈值

配置memtable阈值可以提高写入性能。Cassandra将memtables刷新到磁盘,并在超过提交日志空间阈值或memtable清除阈值时创建SSTables 。配置cassandra.yaml中每个节点的提交日志空间阈值 。如何调整memtable的阈值取决于数据和写入负载。在这些条件下增加memtable阈值:

  • 写入负载在较小的一组数据上包含大量的更新。

  • 连续的写入发生。这一行动导致更有效的压缩。

为memtables分配内存将减少可用于缓存和其他内部Cassandra结构的内存,因此请仔细调整并以小增量调整。

Memtable设置

  • 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 很小,结果是在较不活跃的表格上更具活性。

www.htsjk.Com true http://www.htsjk.com/cassandra/35481.html NewsArticle 配置memtable阈值,memtable阈值 配置memtable阈值 配置memtable阈值可以提高写入性能。Cassandra将memtables刷新到磁盘,并在超过提交日志空间阈值或memtable清除阈值时创建SSTables 。配置cassandra...
相关文章
    暂无相关文章
评论暂时关闭