tidb dashboard 流量分析,热点图显示异常。

问题描述:
tidbv4.0.6 dashboard热点显示异常。9月26号,集群没有任何负载时,却一直长时间显示之前插入的热点信息,集群重启之后,问题依然存在。


集群9月25号插入了大量的数据,26号集群没有任何使用。热点图依然显示之前的热点信息。

集群拓扑

集群版本:

tidb_version(): Release Version: v4.0.6
Edition: Community
Git Commit Hash: 51d365fc45fdfc039eb204a96268c5bd1c55075f
Git Branch: heads/refs/tags/v4.0.6
UTC Build Time: 2020-09-15 09:50:30
GoVersion: go1.13
Race Enabled: false
TiKV Min Version: v3.0.0-60965b006877ca7234adaced7890d7b029ed1306
Check Table Before Drop: false

你好,请问一下刷新页面之后也是显式 26 号上有写入热点流量吗?

是的, 刷新了很多次。还是同样的显示 。之后重启了集群,再次测试写入,还是存在同样的问题


目前集群没有任何连接

1.麻烦您这边反馈一下 dashboard 所在的 pd 节点的日志,我们先内部分析下;
2.可以尝试切换下 dashboard 地址到 pd leader 节点上,看下问题是否可以解决,参考链接:
https://docs.pingcap.com/zh/tidb/stable/dashboard-ops-deploy#切换其他-pd-实例提供-tidb-dashboard-服务

pd.log (434.7 KB)

方便切换下 dashboard 地址到 pd leader 节点上吗?看下这个方式是否可以解决问题。

已经切换了,切换了之后。热点信息,还是能显示。


所以我这边重启了集群,等热点信息完全消失之后,再做插入测试。看一下结果情况

麻烦在后面测试时可以从 dashboard 当前时间的热点图中,找一个start key(单击热点线条即可看到),使用 pd-ctl 工具按 key 查询一下 region 信息,命令:tiup ctl pd -u http://{pd-ip}:2379 region key {start-key},看看输出结果中的统计信息情况,谢谢!

测试了一下,还是存在这样的情况。这种情况好像只是出现在索引上面。
部署的另外一套集群也存在类似的情况。热点信息在索引上面一直存在


图中刚开始出现亮点key
? region key 7480000000000000ff4b5f728000000000ff1c2e890000000000fa
{
  "id": 8049,
  "start_key": "7480000000000000FF4B5F728000000000FF1C2E890000000000FA",
  "end_key": "7480000000000000FF4B5F728000000000FF282BFA0000000000FA",
  "epoch": {
    "conf_ver": 68,
    "version": 68
  },
  "peers": [
    {
      "id": 8050,
      "store_id": 4
    },
    {
      "id": 8051,
      "store_id": 1
    },
    {
      "id": 8052,
      "store_id": 10
    }
  ],
  "leader": {
    "id": 8050,
    "store_id": 4
  },
  "written_bytes": 1505,
  "read_bytes": 0,
  "written_keys": 1,
  "read_keys": 0,
  "approximate_size": 98,
  "approximate_keys": 785934
}

? 

图中索引热点key
? region key 7480000000000000ff4b5f698000000000ff00000101434f5000ff00000000fa014e00ff000000000000f803ff8000000001332a6cff000380000000004effbc6a000000000000f9
{
  "id": 8088,
  "start_key": "7480000000000000FF4B5F698000000000FF00000101434F5000FF00000000FA014E00FF000000000000F803FF8000000001332A6CFF000380000000004EFFBC6A000000000000F9",
  "end_key": "7480000000000000FF4B5F698000000000FF0000010144424C00FF00000000FA014E00FF000000000000F803FF80000000013378FFFF000380000000005DFF9729000000000000F9",
  "epoch": {
    "conf_ver": 77,
    "version": 71
  },
  "peers": [
    {
      "id": 8089,
      "store_id": 8
    },
    {
      "id": 8090,
      "store_id": 9
    },
    {
      "id": 8091,
      "store_id": 7
    }
  ],
  "leader": {
    "id": 8089,
    "store_id": 8
  },
  "written_bytes": 3125221,
  "read_bytes": 0,
  "written_keys": 27257,
  "read_keys": 0,
  "approximate_size": 129,
  "approximate_keys": 1371711
}

? 

请问一下索引是在插入数据前就存在的的,还是数据插入完成之后新建的?

和建表语句一起的。索引插入数据之前就存在。建表语句类似于下面sql

create table t(
id int ,
name varchar(20),
UNIQUE KEY idx_n (name)
)

能否尝试升级到 v4.0.7 版本到 TiDB,再观察一下是否有问题存在。如果通过 admin table region 和 TiKV hot write/read 监控以及 PD log 调度信息排查一下这个索引数据是否有写入热点,排查一下是否有真的热点情况。

请问一下,目前tidb dashboard 问题是否还存在?另外麻烦确认下集群有无开启过静默 region 参数: raftstore.hibernate-regions

问题还是存在,升级到v4.0.7 问题依然存在。没有配置过,都是默认的

server_configs:
  tidb:
    binlog.enable: true
    log.slow-threshold: 3000
  tikv: {}
  pd:
    replication.enable-placement-rules: true
    replication.location-labels:
    - zone
    - host
  tiflash: {}
  tiflash-learner: {}
  pump: {}
  drainer: {}
  cdc: {}

好的,我们这边再分析下,有结论了反馈给你哈

你好,这个问题已经确认是 v4.0.5 版本引入的 bug ,在 v4.0.8 之后版本会修复掉,具体请参见 PR:https://github.com/tikv/pd/pull/3116 ,谢谢。

好的,谢谢

:handshake:

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