如何检查TiKV真实占用了内存空间

目前安装的是4.0 RC的版本,在grafana上看到 tikv只有7G,但是我的配置是32G。如何确认TiKV到底占了内存空间。

目前检查的位置有

1、TiKV config


[appdeploy@dcn-tidb-cluster1-p-l-02:/data31/tidb-deploy/tikv-20160/conf]$cat tikv.toml
# WARNING: This file was auto-generated. Do not edit! All your edit might be overwritten!
# You can use 'tiup cluster edit-config' and 'tiup cluster reload' to update the configuration
# All configuration items you want to change can be added to:
# server_configs:
#   tikv:
#     aa.b1.c3: value
#     aa.b2.c4: value
[readpool]
[readpool.coprocessor]
use-unified-pool = true
[readpool.storage]
use-unified-pool = false
[readpool.unified]
max-thread-count = 8

[server]
[server.labels]
host = "tikv1"

[storage]
[storage.block-cache]
capacity = "32GB"

2、TiKV的启动日志也是32G。

3、pd-ctl上,没有发现有占用的内存大小。

监控如下,到底是监控问题还是我配置有问题

这个配置的 shared block-cache-size 大小,你可以理解为是一个桶,可以保留 cache 大小为 32 GB ,读请求像水一样流入 block-cache-size ,但是不会自动释放。当 32 GB 时候根据先进先出原则,将早进来的 cache 数据挤出这个桶。所以如果没有很多读请求时候,或者没有新的物理读请求(将 KV 数据读取到内存),看到的这个大小看起来是恒定的。

我其他系统都能看得到是32G,我都是设置的32G但是grafana上显示7G多。不确定是哪里有问题。如何能确定呢

这个不一定是问题,只能说明占用 7 GB 内存,还没有达到 32 GB 阈值。

谢谢。好像会增长上去,但是设置的32G内存,我看会到35G

  1. 请发送一下监控截图
  2. 在服务器执行top命令看下tikv占用的实际内存,多谢。

监控上的

top中的
image

当前机器中确实是32G的限制
image

这个只是block-cache的内存,还有mem table 等也会占用内存。 一般block cache占了绝大多数内存,所以修改这里基本就可以了

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。