1.美图
2.背景
一个使用kudu api写入程序的时候,报错
Kudu :Service unavailable: Soft memory limit exceeded at xxx% of capacity
3.原因
内存限制问题(Memory Limits):
Kudu都有一个硬性和软性的内存限制。
硬存储器限制是Kudu进程允许使用的最大数量,由--memory_limit_hard_bytes
标志控制。
软内存限制是由硬盘内存限制的一个百分比,由--memory_limit_soft_percentage
标志控制,memory_limit_soft_percentage
默认值为80%,决定进程在开始拒绝某些写入操作之前可能使用的内存量。
那么Kudu就会因为记忆背压而拒绝写入。这可能会导致写入超时。有几种方法可以缓解库杜的内存压力:
4.解决方法
-
如果主机有更多的内存可用于Kudu,增加–memory_limit_hard_bytes。
-
通过增加磁盘数量或增加维护管理器线程的数量,
–maintenance_manager_num_threads
。
通常,维护管理器线程与数据目录的建议比率是1:3
。减少在应用程序端流向Kudu的写入量。