Kudu参数调优

一,Kudu Tablet Servers 参数调节

Flag Vakud Options Default 描述
–block_cache_capacity_mb integer 512 分配给Kudu Tablet服务器块缓存的最大内存量。(虽然较高的值有助于提高读写性能,但是不要将 block_cache_capacity_mb 提高到内存压力阈值以上,因为这将导致即使写吞吐量很低,Kudu也会频繁刷新,建议将block_cache_capacity_mb保持在内存压力阈值的50%以下)
–memory_limit_hard_bytes integer 4294967296 在开始拒绝所有输入的写之前,Tablet Server 可以消耗的最大内存量。(根据机器内存去调整,如果主机有更多的内存可供Kudu使用,那么建议设置大一点。根据系统总内存自动调整大小的值为0,值-1禁用所有内存限制,单位:bytes)
–maintenance_manager_num_threads int32 1 维护管理器线程池的大小。对于旋转磁盘,线程数不应超过设备数。(通常,建议的维护管理器线程与数据目录的比例为1:3)
–default_num_replicas int32 3 每个tablet的默认副本数
–log_dir string /tmp 存放Tablet Server 日志文件

在gflagfile 中配置如下配置:

-unlock_unsafe_flags=true
-unlock_experimental_flags=true
-flush_threshold_secs=86400
-budgeted_compaction_target_rowset_size=67100000
-tablet_delta_store_minor_compact_max=100
-tablet_delta_store_major_compact_min_ratio=0.01

Kudu参数调优_第1张图片
修改此配置时将kudu 的所有数据文件备份清除,配置成功后重启kudu

二,根据生产环境主机配置和实际业务需求参考 (调优)

parameter Modify Before Modify After Modify the reason
memory_limit_hard_bytes 32G 42G 因为Kudu 的4台主机均为网络增强性,而Kudu本身对网络IO要求较高,应将这4台主机应均服务于Kudu,所以将2/3的内存分配给kudu使用。后期PRO环境在修改hostname时,移除其他节点,对节点进行调整。
block_cache_capacity_mb 4G 12G 提高读写性能, 改值建议为 memory_limit_hard_bytes 的 30% 到 50%.

三,Kudu物理内存背压解决
官网:https://kudu.apache.org/docs/troubleshooting.html#memory_limits
尽管官网给出了参数调节的说明,但在实际情况中, 当出现Kudu背压时, 所有业务均停掉, 而Kudu占用内存并没有及时下降, 导致数据无法写入使业务瘫痪.
这一原因目前并没有得到很好的解决方案, 但对以上参数的调节可尽量避免该错误的发生, 后期持续更新.
不成熟的方案: 查看各tablet server 上tablet 的内存使用情况, 查找内存使用较多的tablet 下的 table, 将该table 数据备份后删除, 使内存快速降低, 避免影响全局业务.

jbd2引起IO过高,导致KUDU 平均负载超载,只有重启kudu

参考:kudu官网
kudu官网

你可能感兴趣的:(Kudu)