关于 tikv 内存控制参数的疑问

调整之后,对业务有什么影响呢。

没啥影响

围观一下这个问题 看看

使用memory-usage-limit

疑惑:如果根据block-cache。capacity计算的,那么设置 改参数又报这个错:
set config “10.0.0.182:20160” storage.block-cache.capacity=‘12G’
报错:
bad request to http://10.0.0.182:20180/config: failed to update, error: “The sum of storage.block-cache.capacity and rocksdb.write-buffer-limit is greater than memory-usage-limit: 12GiB + 0KiB > 10GiB”
说明:这个是机器内存由16G扩到32G后,做操作报的错;(已经relod过该节点了)

  • 确定TiKV内存使用上限的方法通常涉及到对storage.block-cache.capacitymemory-usage-limit两个配置项的理解和调整。storage.block-cache.capacity定义了块缓存的大小,它直接影响着TiKV可以缓存的数据量。而memory-usage-limit则是TiKV尝试限制的内存使用上限。根据您提供的信息,memory-usage-limit的计算公式是block-cache * 0.75 / 0.45。这意味着memory-usage-limit是基于块缓存大小的一个百分比,并且考虑到了4KB内存页的情况。如果同时手动设置了这两个参数,理论上应该根据系统的实际内存资源和预期的负载来平衡这两个值。首先,根据系统的可用内存和预期的数据访问模式来设置storage.block-cache.capacity。然后,根据上述公式计算出memory-usage-limit。理想情况下,memory-usage-limit应该略高于实际预期的内存使用量,以留有一定的余量应对突发的高内存需求。然而,由于TiKV的实际内存使用可能会超过memory-usage-limit,因此在设置这两个参数时需要谨慎,确保不会因为内存溢出而导致系统不稳定。